public register()

in src/components/products/product-list/productList.design.module.ts [14:65]


    public register(injector: IInjector): void {
        injector.bind("productListEditor", ProductListEditor);
        injector.bindSingleton("productListModelBinder", ProductListModelBinder);
        injector.bindSingleton("productListViewModelBinder", ProductListViewModelBinder)
        injector.bindSingleton("productListHandlers", ProductListHandlers);
        injector.bindSingleton("productListDropdownHandlers", ProductListDropdownHandlers)
        injector.bindSingleton("productListTilesHandlers", ProductListTilesHandlers)

        const widgetService = injector.resolve<IWidgetService>("widgetService");

        const productListWidget = {
            modelDefinition: ProductListModel,
            componentBinder: ReactComponentBinder,
            componentDefinition: ProductListViewModel,
            modelBinder: ProductListModelBinder,
            viewModelBinder: ProductListViewModelBinder,
            componentFlow: ComponentFlow.Block
        };

        widgetService.registerWidget("product-list", productListWidget);

        widgetService.registerWidgetEditor("product-list", {
            displayName: "List of products",
            category: "Products",
            iconClass: "widget-icon widget-icon-api-management",
            componentBinder: KnockoutComponentBinder,
            componentDefinition: ProductListEditor,
            handlerComponent: ProductListHandlers
        });

        widgetService.registerWidget("productListDropdown", productListWidget);

        widgetService.registerWidgetEditor("productListDropdown", {
            displayName: "List of products (dropdown)",
            category: "Products",
            iconClass: "widget-icon widget-icon-api-management",
            componentBinder: KnockoutComponentBinder,
            componentDefinition: ProductListEditor,
            handlerComponent: ProductListDropdownHandlers
        });

        widgetService.registerWidget("productListTiles", productListWidget);

        widgetService.registerWidgetEditor("productListTiles", {
            displayName: "List of products (tiles)",
            category: "Products",
            iconClass: "widget-icon widget-icon-api-management",
            componentBinder: KnockoutComponentBinder,
            componentDefinition: ProductListEditor,
            handlerComponent: ProductListTilesHandlers
        });
    }