@vendure/admin-ui 1.5.1 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/vendure-admin-ui-catalog.umd.js +206 -172
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +1790 -1300
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-dashboard.umd.js +3 -3
- package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-login.umd.js +2 -2
- package/bundles/vendure-admin-ui-login.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +3 -3
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/catalog/components/collection-contents/collection-contents.component.d.ts +7 -2
- package/catalog/components/collection-detail/collection-detail.component.d.ts +12 -4
- package/catalog/components/collection-list/collection-list.component.d.ts +2 -0
- package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +5 -1
- package/catalog/components/collection-tree/collection-tree.component.d.ts +1 -0
- package/catalog/providers/product-detail/product-detail.service.d.ts +2 -2
- package/catalog/public_api.d.ts +0 -1
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/common/generated-types.d.ts +32 -3
- package/core/common/utilities/selection-manager.d.ts +23 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/data/definitions/collection-definitions.d.ts +1 -0
- package/core/data/providers/collection-data.service.d.ts +6 -2
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/public_api.d.ts +5 -0
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +21 -6
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +7 -2
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +35 -0
- package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +1 -0
- package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +25 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +20 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +3 -1
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +5 -2
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/dashboard/vendure-admin-ui-dashboard.metadata.json +1 -1
- package/esm2015/catalog/catalog.module.js +1 -3
- package/esm2015/catalog/components/assets/assets.component.js +1 -1
- package/esm2015/catalog/components/collection-contents/collection-contents.component.js +51 -14
- package/esm2015/catalog/components/collection-detail/collection-detail.component.js +67 -29
- package/esm2015/catalog/components/collection-list/collection-list.component.js +30 -4
- package/esm2015/catalog/components/collection-tree/array-to-tree.js +3 -3
- package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +27 -4
- package/esm2015/catalog/components/collection-tree/collection-tree.component.js +4 -2
- package/esm2015/catalog/components/product-detail/product-detail.component.js +1 -1
- package/esm2015/catalog/components/product-list/product-list.component.js +3 -3
- package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +1 -1
- package/esm2015/catalog/public_api.js +1 -2
- package/esm2015/core/app.component.module.js +1 -1
- package/esm2015/core/common/base-detail.component.js +1 -1
- package/esm2015/core/common/deactivate-aware.js +1 -1
- package/esm2015/core/common/generated-types.js +1 -1
- package/esm2015/core/common/introspection-result.js +255 -189
- package/esm2015/core/common/utilities/configurable-operation-utils.js +22 -4
- package/esm2015/core/common/utilities/selection-manager.js +64 -0
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/components/app-shell/app-shell.component.js +4 -3
- package/esm2015/core/core.module.js +1 -1
- package/esm2015/core/data/definitions/collection-definitions.js +18 -1
- package/esm2015/core/data/definitions/order-definitions.js +431 -430
- package/esm2015/core/data/definitions/shared-definitions.js +29 -28
- package/esm2015/core/data/providers/collection-data.service.js +5 -2
- package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
- package/esm2015/core/public_api.js +6 -1
- package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +24 -42
- package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +4 -4
- package/esm2015/core/shared/components/configurable-input/configurable-input.component.js +13 -3
- package/esm2015/core/shared/components/help-tooltip/help-tooltip.component.js +1 -1
- package/esm2015/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +129 -0
- package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +104 -0
- package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +1 -1
- package/esm2015/core/shared/components/select-toggle/select-toggle.component.js +5 -3
- package/esm2015/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +45 -0
- package/esm2015/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +53 -0
- package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +5 -1
- package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +8 -7
- package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +1 -1
- package/esm2015/core/shared/shared.module.js +9 -1
- package/esm2015/dashboard/components/dashboard/dashboard.component.js +1 -1
- package/esm2015/dashboard/components/dashboard-widget/dashboard-widget.component.js +2 -2
- package/esm2015/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +1 -1
- package/esm2015/login/components/login/login.component.js +3 -3
- package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +2 -2
- package/esm2015/order/components/order-editor/order-editor.component.js +1 -1
- package/esm2015/order/components/order-list/order-list.component.js +2 -2
- package/esm2015/order/components/order-table/order-table.component.js +1 -1
- package/fesm2015/vendure-admin-ui-catalog.js +181 -157
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +2611 -2129
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-dashboard.js +3 -3
- package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -1
- package/fesm2015/vendure-admin-ui-login.js +2 -2
- package/fesm2015/vendure-admin-ui-login.js.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +3 -3
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/login/vendure-admin-ui-login.metadata.json +1 -1
- package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +5 -5
- package/static/i18n-messages/cs.json +9 -0
- package/static/i18n-messages/de.json +9 -0
- package/static/i18n-messages/en.json +10 -1
- package/static/i18n-messages/es.json +9 -0
- package/static/i18n-messages/fr.json +9 -0
- package/static/i18n-messages/it.json +9 -0
- package/static/i18n-messages/pl.json +9 -0
- package/static/i18n-messages/pt_BR.json +9 -0
- package/static/i18n-messages/pt_PT.json +9 -0
- package/static/i18n-messages/ru.json +9 -0
- package/static/i18n-messages/uk.json +9 -0
- package/static/i18n-messages/zh_Hans.json +9 -0
- package/static/i18n-messages/zh_Hant.json +9 -0
- package/static/styles/global/_forms.scss +4 -5
- package/static/styles/global/_overrides.scss +10 -0
- package/static/styles/theme/default.scss +13 -1
- package/static/theme.min.css +1 -1
- package/esm2015/catalog/components/product-search-input/product-search-input.component.js +0 -104
|
@@ -361,13 +361,13 @@
|
|
|
361
361
|
var UPDATE_ADMINISTRATOR = apolloAngular.gql(templateObject_7$9 || (templateObject_7$9 = __makeTemplateObject(["\n mutation UpdateAdministrator($input: UpdateAdministratorInput!) {\n updateAdministrator(input: $input) {\n ...Administrator\n }\n }\n ", "\n"], ["\n mutation UpdateAdministrator($input: UpdateAdministratorInput!) {\n updateAdministrator(input: $input) {\n ...Administrator\n }\n }\n ", "\n"])), ADMINISTRATOR_FRAGMENT);
|
|
362
362
|
var UPDATE_ACTIVE_ADMINISTRATOR = apolloAngular.gql(templateObject_8$8 || (templateObject_8$8 = __makeTemplateObject(["\n mutation UpdateActiveAdministrator($input: UpdateActiveAdministratorInput!) {\n updateActiveAdministrator(input: $input) {\n ...Administrator\n }\n }\n ", "\n"], ["\n mutation UpdateActiveAdministrator($input: UpdateActiveAdministratorInput!) {\n updateActiveAdministrator(input: $input) {\n ...Administrator\n }\n }\n ", "\n"])), ADMINISTRATOR_FRAGMENT);
|
|
363
363
|
var DELETE_ADMINISTRATOR = apolloAngular.gql(templateObject_9$8 || (templateObject_9$8 = __makeTemplateObject(["\n mutation DeleteAdministrator($id: ID!) {\n deleteAdministrator(id: $id) {\n result\n message\n }\n }\n"], ["\n mutation DeleteAdministrator($id: ID!) {\n deleteAdministrator(id: $id) {\n result\n message\n }\n }\n"])));
|
|
364
|
-
var GET_ROLES = apolloAngular.gql(templateObject_10$
|
|
364
|
+
var GET_ROLES = apolloAngular.gql(templateObject_10$7 || (templateObject_10$7 = __makeTemplateObject(["\n query GetRoles($options: RoleListOptions) {\n roles(options: $options) {\n items {\n ...Role\n }\n totalItems\n }\n }\n ", "\n"], ["\n query GetRoles($options: RoleListOptions) {\n roles(options: $options) {\n items {\n ...Role\n }\n totalItems\n }\n }\n ", "\n"])), ROLE_FRAGMENT);
|
|
365
365
|
var GET_ROLE = apolloAngular.gql(templateObject_11$5 || (templateObject_11$5 = __makeTemplateObject(["\n query GetRole($id: ID!) {\n role(id: $id) {\n ...Role\n }\n }\n ", "\n"], ["\n query GetRole($id: ID!) {\n role(id: $id) {\n ...Role\n }\n }\n ", "\n"])), ROLE_FRAGMENT);
|
|
366
366
|
var CREATE_ROLE = apolloAngular.gql(templateObject_12$5 || (templateObject_12$5 = __makeTemplateObject(["\n mutation CreateRole($input: CreateRoleInput!) {\n createRole(input: $input) {\n ...Role\n }\n }\n ", "\n"], ["\n mutation CreateRole($input: CreateRoleInput!) {\n createRole(input: $input) {\n ...Role\n }\n }\n ", "\n"])), ROLE_FRAGMENT);
|
|
367
367
|
var UPDATE_ROLE = apolloAngular.gql(templateObject_13$5 || (templateObject_13$5 = __makeTemplateObject(["\n mutation UpdateRole($input: UpdateRoleInput!) {\n updateRole(input: $input) {\n ...Role\n }\n }\n ", "\n"], ["\n mutation UpdateRole($input: UpdateRoleInput!) {\n updateRole(input: $input) {\n ...Role\n }\n }\n ", "\n"])), ROLE_FRAGMENT);
|
|
368
368
|
var DELETE_ROLE = apolloAngular.gql(templateObject_14$5 || (templateObject_14$5 = __makeTemplateObject(["\n mutation DeleteRole($id: ID!) {\n deleteRole(id: $id) {\n result\n message\n }\n }\n"], ["\n mutation DeleteRole($id: ID!) {\n deleteRole(id: $id) {\n result\n message\n }\n }\n"])));
|
|
369
369
|
var ASSIGN_ROLE_TO_ADMINISTRATOR = apolloAngular.gql(templateObject_15$5 || (templateObject_15$5 = __makeTemplateObject(["\n mutation AssignRoleToAdministrator($administratorId: ID!, $roleId: ID!) {\n assignRoleToAdministrator(administratorId: $administratorId, roleId: $roleId) {\n ...Administrator\n }\n }\n ", "\n"], ["\n mutation AssignRoleToAdministrator($administratorId: ID!, $roleId: ID!) {\n assignRoleToAdministrator(administratorId: $administratorId, roleId: $roleId) {\n ...Administrator\n }\n }\n ", "\n"])), ADMINISTRATOR_FRAGMENT);
|
|
370
|
-
var templateObject_1$b, templateObject_2$b, templateObject_3$b, templateObject_4$a, templateObject_5$9, templateObject_6$9, templateObject_7$9, templateObject_8$8, templateObject_9$8, templateObject_10$
|
|
370
|
+
var templateObject_1$b, templateObject_2$b, templateObject_3$b, templateObject_4$a, templateObject_5$9, templateObject_6$9, templateObject_7$9, templateObject_8$8, templateObject_9$8, templateObject_10$7, templateObject_11$5, templateObject_12$5, templateObject_13$5, templateObject_14$5, templateObject_15$5;
|
|
371
371
|
|
|
372
372
|
var AdministratorDataService = /** @class */ (function () {
|
|
373
373
|
function AdministratorDataService(baseDataService) {
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
}());
|
|
430
430
|
|
|
431
431
|
var CONFIGURABLE_OPERATION_FRAGMENT = apolloAngular.gql(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n fragment ConfigurableOperation on ConfigurableOperation {\n args {\n name\n value\n }\n code\n }\n"], ["\n fragment ConfigurableOperation on ConfigurableOperation {\n args {\n name\n value\n }\n code\n }\n"])));
|
|
432
|
-
var CONFIGURABLE_OPERATION_DEF_FRAGMENT = apolloAngular.gql(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n fragment ConfigurableOperationDef on ConfigurableOperationDefinition {\n args {\n name\n type\n required\n defaultValue\n list\n ui\n label\n }\n code\n description\n }\n"], ["\n fragment ConfigurableOperationDef on ConfigurableOperationDefinition {\n args {\n name\n type\n required\n defaultValue\n list\n ui\n label\n }\n code\n description\n }\n"])));
|
|
432
|
+
var CONFIGURABLE_OPERATION_DEF_FRAGMENT = apolloAngular.gql(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n fragment ConfigurableOperationDef on ConfigurableOperationDefinition {\n args {\n name\n type\n required\n defaultValue\n list\n ui\n label\n description\n }\n code\n description\n }\n"], ["\n fragment ConfigurableOperationDef on ConfigurableOperationDefinition {\n args {\n name\n type\n required\n defaultValue\n list\n ui\n label\n description\n }\n code\n description\n }\n"])));
|
|
433
433
|
var ERROR_RESULT_FRAGMENT = apolloAngular.gql(templateObject_3$a || (templateObject_3$a = __makeTemplateObject(["\n fragment ErrorResult on ErrorResult {\n errorCode\n message\n }\n"], ["\n fragment ErrorResult on ErrorResult {\n errorCode\n message\n }\n"])));
|
|
434
434
|
var templateObject_1$a, templateObject_2$a, templateObject_3$a;
|
|
435
435
|
|
|
@@ -544,14 +544,14 @@
|
|
|
544
544
|
var SET_UI_LOCALE = apolloAngular.gql(templateObject_7$8 || (templateObject_7$8 = __makeTemplateObject(["\n mutation SetUiLocale($locale: String) {\n setUiLocale(locale: $locale) @client\n }\n"], ["\n mutation SetUiLocale($locale: String) {\n setUiLocale(locale: $locale) @client\n }\n"])));
|
|
545
545
|
var SET_DISPLAY_UI_EXTENSION_POINTS = apolloAngular.gql(templateObject_8$7 || (templateObject_8$7 = __makeTemplateObject(["\n mutation SetDisplayUiExtensionPoints($display: Boolean!) {\n setDisplayUiExtensionPoints(display: $display) @client\n }\n"], ["\n mutation SetDisplayUiExtensionPoints($display: Boolean!) {\n setDisplayUiExtensionPoints(display: $display) @client\n }\n"])));
|
|
546
546
|
var SET_CONTENT_LANGUAGE = apolloAngular.gql(templateObject_9$7 || (templateObject_9$7 = __makeTemplateObject(["\n mutation SetContentLanguage($languageCode: LanguageCode!) {\n setContentLanguage(languageCode: $languageCode) @client\n }\n"], ["\n mutation SetContentLanguage($languageCode: LanguageCode!) {\n setContentLanguage(languageCode: $languageCode) @client\n }\n"])));
|
|
547
|
-
var SET_UI_THEME = apolloAngular.gql(templateObject_10$
|
|
547
|
+
var SET_UI_THEME = apolloAngular.gql(templateObject_10$6 || (templateObject_10$6 = __makeTemplateObject(["\n mutation SetUiTheme($theme: String!) {\n setUiTheme(theme: $theme) @client\n }\n"], ["\n mutation SetUiTheme($theme: String!) {\n setUiTheme(theme: $theme) @client\n }\n"])));
|
|
548
548
|
var GET_NEWTORK_STATUS = apolloAngular.gql(templateObject_11$4 || (templateObject_11$4 = __makeTemplateObject(["\n query GetNetworkStatus {\n networkStatus @client {\n inFlightRequests\n }\n }\n"], ["\n query GetNetworkStatus {\n networkStatus @client {\n inFlightRequests\n }\n }\n"])));
|
|
549
549
|
var GET_USER_STATUS = apolloAngular.gql(templateObject_12$4 || (templateObject_12$4 = __makeTemplateObject(["\n query GetUserStatus {\n userStatus @client {\n ...UserStatus\n }\n }\n ", "\n"], ["\n query GetUserStatus {\n userStatus @client {\n ...UserStatus\n }\n }\n ", "\n"])), USER_STATUS_FRAGMENT);
|
|
550
550
|
var GET_UI_STATE = apolloAngular.gql(templateObject_13$4 || (templateObject_13$4 = __makeTemplateObject(["\n query GetUiState {\n uiState @client {\n language\n locale\n contentLanguage\n theme\n displayUiExtensionPoints\n }\n }\n"], ["\n query GetUiState {\n uiState @client {\n language\n locale\n contentLanguage\n theme\n displayUiExtensionPoints\n }\n }\n"])));
|
|
551
551
|
var GET_CLIENT_STATE = apolloAngular.gql(templateObject_14$4 || (templateObject_14$4 = __makeTemplateObject(["\n query GetClientState {\n networkStatus @client {\n inFlightRequests\n }\n userStatus @client {\n ...UserStatus\n }\n uiState @client {\n language\n locale\n contentLanguage\n theme\n displayUiExtensionPoints\n }\n }\n ", "\n"], ["\n query GetClientState {\n networkStatus @client {\n inFlightRequests\n }\n userStatus @client {\n ...UserStatus\n }\n uiState @client {\n language\n locale\n contentLanguage\n theme\n displayUiExtensionPoints\n }\n }\n ", "\n"])), USER_STATUS_FRAGMENT);
|
|
552
552
|
var SET_ACTIVE_CHANNEL = apolloAngular.gql(templateObject_15$4 || (templateObject_15$4 = __makeTemplateObject(["\n mutation SetActiveChannel($channelId: ID!) {\n setActiveChannel(channelId: $channelId) @client {\n ...UserStatus\n }\n }\n ", "\n"], ["\n mutation SetActiveChannel($channelId: ID!) {\n setActiveChannel(channelId: $channelId) @client {\n ...UserStatus\n }\n }\n ", "\n"])), USER_STATUS_FRAGMENT);
|
|
553
553
|
var UPDATE_USER_CHANNELS = apolloAngular.gql(templateObject_16$4 || (templateObject_16$4 = __makeTemplateObject(["\n mutation UpdateUserChannels($channels: [CurrentUserChannelInput!]!) {\n updateUserChannels(channels: $channels) @client {\n ...UserStatus\n }\n }\n ", "\n"], ["\n mutation UpdateUserChannels($channels: [CurrentUserChannelInput!]!) {\n updateUserChannels(channels: $channels) @client {\n ...UserStatus\n }\n }\n ", "\n"])), USER_STATUS_FRAGMENT);
|
|
554
|
-
var templateObject_1$8, templateObject_2$8, templateObject_3$8, templateObject_4$8, templateObject_5$8, templateObject_6$8, templateObject_7$8, templateObject_8$7, templateObject_9$7, templateObject_10$
|
|
554
|
+
var templateObject_1$8, templateObject_2$8, templateObject_3$8, templateObject_4$8, templateObject_5$8, templateObject_6$8, templateObject_7$8, templateObject_8$7, templateObject_9$7, templateObject_10$6, templateObject_11$4, templateObject_12$4, templateObject_13$4, templateObject_14$4, templateObject_15$4, templateObject_16$4;
|
|
555
555
|
|
|
556
556
|
/**
|
|
557
557
|
* @description
|
|
@@ -650,7 +650,7 @@
|
|
|
650
650
|
var DELETE_COUNTRY = apolloAngular.gql(templateObject_7$7 || (templateObject_7$7 = __makeTemplateObject(["\n mutation DeleteCountry($id: ID!) {\n deleteCountry(id: $id) {\n result\n message\n }\n }\n"], ["\n mutation DeleteCountry($id: ID!) {\n deleteCountry(id: $id) {\n result\n message\n }\n }\n"])));
|
|
651
651
|
var ZONE_FRAGMENT = apolloAngular.gql(templateObject_8$6 || (templateObject_8$6 = __makeTemplateObject(["\n fragment Zone on Zone {\n id\n createdAt\n updatedAt\n name\n members {\n ...Country\n }\n }\n ", "\n"], ["\n fragment Zone on Zone {\n id\n createdAt\n updatedAt\n name\n members {\n ...Country\n }\n }\n ", "\n"])), COUNTRY_FRAGMENT);
|
|
652
652
|
var GET_ZONES = apolloAngular.gql(templateObject_9$6 || (templateObject_9$6 = __makeTemplateObject(["\n query GetZones {\n zones {\n ...Zone\n members {\n createdAt\n updatedAt\n id\n name\n code\n enabled\n }\n }\n }\n ", "\n"], ["\n query GetZones {\n zones {\n ...Zone\n members {\n createdAt\n updatedAt\n id\n name\n code\n enabled\n }\n }\n }\n ", "\n"])), ZONE_FRAGMENT);
|
|
653
|
-
var GET_ZONE = apolloAngular.gql(templateObject_10$
|
|
653
|
+
var GET_ZONE = apolloAngular.gql(templateObject_10$5 || (templateObject_10$5 = __makeTemplateObject(["\n query GetZone($id: ID!) {\n zone(id: $id) {\n ...Zone\n }\n }\n ", "\n"], ["\n query GetZone($id: ID!) {\n zone(id: $id) {\n ...Zone\n }\n }\n ", "\n"])), ZONE_FRAGMENT);
|
|
654
654
|
var CREATE_ZONE = apolloAngular.gql(templateObject_11$3 || (templateObject_11$3 = __makeTemplateObject(["\n mutation CreateZone($input: CreateZoneInput!) {\n createZone(input: $input) {\n ...Zone\n }\n }\n ", "\n"], ["\n mutation CreateZone($input: CreateZoneInput!) {\n createZone(input: $input) {\n ...Zone\n }\n }\n ", "\n"])), ZONE_FRAGMENT);
|
|
655
655
|
var UPDATE_ZONE = apolloAngular.gql(templateObject_12$3 || (templateObject_12$3 = __makeTemplateObject(["\n mutation UpdateZone($input: UpdateZoneInput!) {\n updateZone(input: $input) {\n ...Zone\n }\n }\n ", "\n"], ["\n mutation UpdateZone($input: UpdateZoneInput!) {\n updateZone(input: $input) {\n ...Zone\n }\n }\n ", "\n"])), ZONE_FRAGMENT);
|
|
656
656
|
var DELETE_ZONE = apolloAngular.gql(templateObject_13$3 || (templateObject_13$3 = __makeTemplateObject(["\n mutation DeleteZone($id: ID!) {\n deleteZone(id: $id) {\n message\n result\n }\n }\n"], ["\n mutation DeleteZone($id: ID!) {\n deleteZone(id: $id) {\n message\n result\n }\n }\n"])));
|
|
@@ -706,7 +706,7 @@
|
|
|
706
706
|
var REINDEX = apolloAngular.gql(templateObject_63 || (templateObject_63 = __makeTemplateObject(["\n mutation Reindex {\n reindex {\n ...JobInfo\n }\n }\n ", "\n"], ["\n mutation Reindex {\n reindex {\n ...JobInfo\n }\n }\n ", "\n"])), JOB_INFO_FRAGMENT);
|
|
707
707
|
var GET_PENDING_SEARCH_INDEX_UPDATES = apolloAngular.gql(templateObject_64 || (templateObject_64 = __makeTemplateObject(["\n query GetPendingSearchIndexUpdates {\n pendingSearchIndexUpdates\n }\n"], ["\n query GetPendingSearchIndexUpdates {\n pendingSearchIndexUpdates\n }\n"])));
|
|
708
708
|
var RUN_PENDING_SEARCH_INDEX_UPDATES = apolloAngular.gql(templateObject_65 || (templateObject_65 = __makeTemplateObject(["\n mutation RunPendingSearchIndexUpdates {\n runPendingSearchIndexUpdates {\n success\n }\n }\n"], ["\n mutation RunPendingSearchIndexUpdates {\n runPendingSearchIndexUpdates {\n success\n }\n }\n"])));
|
|
709
|
-
var templateObject_1$7, templateObject_2$7, templateObject_3$7, templateObject_4$7, templateObject_5$7, templateObject_6$7, templateObject_7$7, templateObject_8$6, templateObject_9$6, templateObject_10$
|
|
709
|
+
var templateObject_1$7, templateObject_2$7, templateObject_3$7, templateObject_4$7, templateObject_5$7, templateObject_6$7, templateObject_7$7, templateObject_8$6, templateObject_9$6, templateObject_10$5, templateObject_11$3, templateObject_12$3, templateObject_13$3, templateObject_14$3, templateObject_15$3, templateObject_16$3, templateObject_17$3, templateObject_18$3, templateObject_19$3, templateObject_20$3, templateObject_21$3, templateObject_22$3, templateObject_23$2, templateObject_24$2, templateObject_25$2, templateObject_26$1, templateObject_27$1, templateObject_28$1, templateObject_29$1, templateObject_30$1, templateObject_31$1, templateObject_32$1, templateObject_33$1, templateObject_34$1, templateObject_35$1, templateObject_36$1, templateObject_37$1, templateObject_38$1, templateObject_39$1, templateObject_40$1, templateObject_41$1, templateObject_42$1, templateObject_43$1, templateObject_44$1, templateObject_45, templateObject_46, templateObject_47, templateObject_48, templateObject_49, templateObject_50, templateObject_51, templateObject_52, templateObject_53, templateObject_54, templateObject_55, templateObject_56, templateObject_57, templateObject_58, templateObject_59, templateObject_60, templateObject_61, templateObject_62, templateObject_63, templateObject_64, templateObject_65;
|
|
710
710
|
|
|
711
711
|
function initializeServerConfigService(serverConfigService) {
|
|
712
712
|
return serverConfigService.init();
|
|
@@ -1238,7 +1238,7 @@
|
|
|
1238
1238
|
var PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT = apolloAngular.gql(templateObject_7$6 || (templateObject_7$6 = __makeTemplateObject(["\n fragment ProductOptionGroupWithOptions on ProductOptionGroup {\n id\n createdAt\n updatedAt\n languageCode\n code\n name\n translations {\n id\n name\n }\n options {\n id\n languageCode\n name\n code\n translations {\n name\n }\n }\n }\n"], ["\n fragment ProductOptionGroupWithOptions on ProductOptionGroup {\n id\n createdAt\n updatedAt\n languageCode\n code\n name\n translations {\n id\n name\n }\n options {\n id\n languageCode\n name\n code\n translations {\n name\n }\n }\n }\n"])));
|
|
1239
1239
|
var UPDATE_PRODUCT = apolloAngular.gql(templateObject_8$5 || (templateObject_8$5 = __makeTemplateObject(["\n mutation UpdateProduct($input: UpdateProductInput!, $variantListOptions: ProductVariantListOptions) {\n updateProduct(input: $input) {\n ...ProductDetail\n variantList(options: $variantListOptions) {\n items {\n ...ProductVariant\n }\n totalItems\n }\n }\n }\n ", "\n ", "\n"], ["\n mutation UpdateProduct($input: UpdateProductInput!, $variantListOptions: ProductVariantListOptions) {\n updateProduct(input: $input) {\n ...ProductDetail\n variantList(options: $variantListOptions) {\n items {\n ...ProductVariant\n }\n totalItems\n }\n }\n }\n ", "\n ", "\n"])), PRODUCT_DETAIL_FRAGMENT, PRODUCT_VARIANT_FRAGMENT);
|
|
1240
1240
|
var CREATE_PRODUCT = apolloAngular.gql(templateObject_9$5 || (templateObject_9$5 = __makeTemplateObject(["\n mutation CreateProduct($input: CreateProductInput!, $variantListOptions: ProductVariantListOptions) {\n createProduct(input: $input) {\n ...ProductDetail\n variantList(options: $variantListOptions) {\n items {\n ...ProductVariant\n }\n totalItems\n }\n }\n }\n ", "\n ", "\n"], ["\n mutation CreateProduct($input: CreateProductInput!, $variantListOptions: ProductVariantListOptions) {\n createProduct(input: $input) {\n ...ProductDetail\n variantList(options: $variantListOptions) {\n items {\n ...ProductVariant\n }\n totalItems\n }\n }\n }\n ", "\n ", "\n"])), PRODUCT_DETAIL_FRAGMENT, PRODUCT_VARIANT_FRAGMENT);
|
|
1241
|
-
var DELETE_PRODUCT = apolloAngular.gql(templateObject_10$
|
|
1241
|
+
var DELETE_PRODUCT = apolloAngular.gql(templateObject_10$4 || (templateObject_10$4 = __makeTemplateObject(["\n mutation DeleteProduct($id: ID!) {\n deleteProduct(id: $id) {\n result\n message\n }\n }\n"], ["\n mutation DeleteProduct($id: ID!) {\n deleteProduct(id: $id) {\n result\n message\n }\n }\n"])));
|
|
1242
1242
|
var CREATE_PRODUCT_VARIANTS = apolloAngular.gql(templateObject_11$2 || (templateObject_11$2 = __makeTemplateObject(["\n mutation CreateProductVariants($input: [CreateProductVariantInput!]!) {\n createProductVariants(input: $input) {\n ...ProductVariant\n }\n }\n ", "\n"], ["\n mutation CreateProductVariants($input: [CreateProductVariantInput!]!) {\n createProductVariants(input: $input) {\n ...ProductVariant\n }\n }\n ", "\n"])), PRODUCT_VARIANT_FRAGMENT);
|
|
1243
1243
|
var UPDATE_PRODUCT_VARIANTS = apolloAngular.gql(templateObject_12$2 || (templateObject_12$2 = __makeTemplateObject(["\n mutation UpdateProductVariants($input: [UpdateProductVariantInput!]!) {\n updateProductVariants(input: $input) {\n ...ProductVariant\n }\n }\n ", "\n"], ["\n mutation UpdateProductVariants($input: [UpdateProductVariantInput!]!) {\n updateProductVariants(input: $input) {\n ...ProductVariant\n }\n }\n ", "\n"])), PRODUCT_VARIANT_FRAGMENT);
|
|
1244
1244
|
var CREATE_PRODUCT_OPTION_GROUP = apolloAngular.gql(templateObject_13$2 || (templateObject_13$2 = __makeTemplateObject(["\n mutation CreateProductOptionGroup($input: CreateProductOptionGroupInput!) {\n createProductOptionGroup(input: $input) {\n ...ProductOptionGroupWithOptions\n }\n }\n ", "\n"], ["\n mutation CreateProductOptionGroup($input: CreateProductOptionGroupInput!) {\n createProductOptionGroup(input: $input) {\n ...ProductOptionGroupWithOptions\n }\n }\n ", "\n"])), PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT);
|
|
@@ -1273,7 +1273,7 @@
|
|
|
1273
1273
|
var CREATE_TAG = apolloAngular.gql(templateObject_42 || (templateObject_42 = __makeTemplateObject(["\n mutation CreateTag($input: CreateTagInput!) {\n createTag(input: $input) {\n ...Tag\n }\n }\n ", "\n"], ["\n mutation CreateTag($input: CreateTagInput!) {\n createTag(input: $input) {\n ...Tag\n }\n }\n ", "\n"])), TAG_FRAGMENT);
|
|
1274
1274
|
var UPDATE_TAG = apolloAngular.gql(templateObject_43 || (templateObject_43 = __makeTemplateObject(["\n mutation UpdateTag($input: UpdateTagInput!) {\n updateTag(input: $input) {\n ...Tag\n }\n }\n ", "\n"], ["\n mutation UpdateTag($input: UpdateTagInput!) {\n updateTag(input: $input) {\n ...Tag\n }\n }\n ", "\n"])), TAG_FRAGMENT);
|
|
1275
1275
|
var DELETE_TAG = apolloAngular.gql(templateObject_44 || (templateObject_44 = __makeTemplateObject(["\n mutation DeleteTag($id: ID!) {\n deleteTag(id: $id) {\n message\n result\n }\n }\n"], ["\n mutation DeleteTag($id: ID!) {\n deleteTag(id: $id) {\n message\n result\n }\n }\n"])));
|
|
1276
|
-
var templateObject_1$6, templateObject_2$6, templateObject_3$6, templateObject_4$6, templateObject_5$6, templateObject_6$6, templateObject_7$6, templateObject_8$5, templateObject_9$5, templateObject_10$
|
|
1276
|
+
var templateObject_1$6, templateObject_2$6, templateObject_3$6, templateObject_4$6, templateObject_5$6, templateObject_6$6, templateObject_7$6, templateObject_8$5, templateObject_9$5, templateObject_10$4, templateObject_11$2, templateObject_12$2, templateObject_13$2, templateObject_14$2, templateObject_15$2, templateObject_16$2, templateObject_17$2, templateObject_18$2, templateObject_19$2, templateObject_20$2, templateObject_21$2, templateObject_22$2, templateObject_23$1, templateObject_24$1, templateObject_25$1, templateObject_26, templateObject_27, templateObject_28, templateObject_29, templateObject_30, templateObject_31, templateObject_32, templateObject_33, templateObject_34, templateObject_35, templateObject_36, templateObject_37, templateObject_38, templateObject_39, templateObject_40, templateObject_41, templateObject_42, templateObject_43, templateObject_44;
|
|
1277
1277
|
|
|
1278
1278
|
var GET_COLLECTION_FILTERS = apolloAngular.gql(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["\n query GetCollectionFilters {\n collectionFilters {\n ...ConfigurableOperationDef\n }\n }\n ", "\n"], ["\n query GetCollectionFilters {\n collectionFilters {\n ...ConfigurableOperationDef\n }\n }\n ", "\n"])), CONFIGURABLE_OPERATION_DEF_FRAGMENT);
|
|
1279
1279
|
var COLLECTION_FRAGMENT = apolloAngular.gql(templateObject_2$5 || (templateObject_2$5 = __makeTemplateObject(["\n fragment Collection on Collection {\n id\n createdAt\n updatedAt\n name\n slug\n description\n isPrivate\n languageCode\n featuredAsset {\n ...Asset\n }\n assets {\n ...Asset\n }\n filters {\n ...ConfigurableOperation\n }\n translations {\n id\n languageCode\n name\n slug\n description\n }\n parent {\n id\n name\n }\n children {\n id\n name\n }\n }\n ", "\n ", "\n"], ["\n fragment Collection on Collection {\n id\n createdAt\n updatedAt\n name\n slug\n description\n isPrivate\n languageCode\n featuredAsset {\n ...Asset\n }\n assets {\n ...Asset\n }\n filters {\n ...ConfigurableOperation\n }\n translations {\n id\n languageCode\n name\n slug\n description\n }\n parent {\n id\n name\n }\n children {\n id\n name\n }\n }\n ", "\n ", "\n"])), ASSET_FRAGMENT, CONFIGURABLE_OPERATION_FRAGMENT);
|
|
@@ -1283,8 +1283,9 @@
|
|
|
1283
1283
|
var UPDATE_COLLECTION = apolloAngular.gql(templateObject_6$5 || (templateObject_6$5 = __makeTemplateObject(["\n mutation UpdateCollection($input: UpdateCollectionInput!) {\n updateCollection(input: $input) {\n ...Collection\n }\n }\n ", "\n"], ["\n mutation UpdateCollection($input: UpdateCollectionInput!) {\n updateCollection(input: $input) {\n ...Collection\n }\n }\n ", "\n"])), COLLECTION_FRAGMENT);
|
|
1284
1284
|
var MOVE_COLLECTION = apolloAngular.gql(templateObject_7$5 || (templateObject_7$5 = __makeTemplateObject(["\n mutation MoveCollection($input: MoveCollectionInput!) {\n moveCollection(input: $input) {\n ...Collection\n }\n }\n ", "\n"], ["\n mutation MoveCollection($input: MoveCollectionInput!) {\n moveCollection(input: $input) {\n ...Collection\n }\n }\n ", "\n"])), COLLECTION_FRAGMENT);
|
|
1285
1285
|
var DELETE_COLLECTION = apolloAngular.gql(templateObject_8$4 || (templateObject_8$4 = __makeTemplateObject(["\n mutation DeleteCollection($id: ID!) {\n deleteCollection(id: $id) {\n result\n message\n }\n }\n"], ["\n mutation DeleteCollection($id: ID!) {\n deleteCollection(id: $id) {\n result\n message\n }\n }\n"])));
|
|
1286
|
-
var GET_COLLECTION_CONTENTS = apolloAngular.gql(templateObject_9$4 || (templateObject_9$4 = __makeTemplateObject(["\n query GetCollectionContents($id: ID!, $options: ProductVariantListOptions) {\n collection(id: $id) {\n id\n name\n productVariants(options: $options) {\n items {\n id\n productId\n name\n }\n totalItems\n }\n }\n }\n"], ["\n query GetCollectionContents($id: ID!, $options: ProductVariantListOptions) {\n collection(id: $id) {\n id\n name\n productVariants(options: $options) {\n items {\n id\n productId\n name\n }\n totalItems\n }\n }\n }\n"])));
|
|
1287
|
-
var
|
|
1286
|
+
var GET_COLLECTION_CONTENTS = apolloAngular.gql(templateObject_9$4 || (templateObject_9$4 = __makeTemplateObject(["\n query GetCollectionContents($id: ID!, $options: ProductVariantListOptions) {\n collection(id: $id) {\n id\n name\n productVariants(options: $options) {\n items {\n id\n productId\n name\n sku\n }\n totalItems\n }\n }\n }\n"], ["\n query GetCollectionContents($id: ID!, $options: ProductVariantListOptions) {\n collection(id: $id) {\n id\n name\n productVariants(options: $options) {\n items {\n id\n productId\n name\n sku\n }\n totalItems\n }\n }\n }\n"])));
|
|
1287
|
+
var PREVIEW_COLLECTION_CONTENTS = apolloAngular.gql(templateObject_10$3 || (templateObject_10$3 = __makeTemplateObject(["\n query PreviewCollectionContents(\n $input: PreviewCollectionVariantsInput!\n $options: ProductVariantListOptions\n ) {\n previewCollectionVariants(input: $input, options: $options) {\n items {\n id\n productId\n name\n sku\n }\n totalItems\n }\n }\n"], ["\n query PreviewCollectionContents(\n $input: PreviewCollectionVariantsInput!\n $options: ProductVariantListOptions\n ) {\n previewCollectionVariants(input: $input, options: $options) {\n items {\n id\n productId\n name\n sku\n }\n totalItems\n }\n }\n"])));
|
|
1288
|
+
var templateObject_1$5, templateObject_2$5, templateObject_3$5, templateObject_4$5, templateObject_5$5, templateObject_6$5, templateObject_7$5, templateObject_8$4, templateObject_9$4, templateObject_10$3;
|
|
1288
1289
|
|
|
1289
1290
|
var CollectionDataService = /** @class */ (function () {
|
|
1290
1291
|
function CollectionDataService(baseDataService) {
|
|
@@ -1342,6 +1343,9 @@
|
|
|
1342
1343
|
id: id,
|
|
1343
1344
|
});
|
|
1344
1345
|
};
|
|
1346
|
+
CollectionDataService.prototype.previewCollectionVariants = function (input, options) {
|
|
1347
|
+
return this.baseDataService.query(PREVIEW_COLLECTION_CONTENTS, { input: input, options: options });
|
|
1348
|
+
};
|
|
1345
1349
|
CollectionDataService.prototype.getCollectionContents = function (id, take, skip, filterTerm) {
|
|
1346
1350
|
if (take === void 0) { take = 10; }
|
|
1347
1351
|
if (skip === void 0) { skip = 0; }
|
|
@@ -1578,7 +1582,7 @@
|
|
|
1578
1582
|
var DISCOUNT_FRAGMENT = apolloAngular.gql(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n fragment Discount on Discount {\n adjustmentSource\n amount\n amountWithTax\n description\n type\n }\n"], ["\n fragment Discount on Discount {\n adjustmentSource\n amount\n amountWithTax\n description\n type\n }\n"])));
|
|
1579
1583
|
var REFUND_FRAGMENT = apolloAngular.gql(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n fragment Refund on Refund {\n id\n state\n items\n shipping\n adjustment\n transactionId\n paymentId\n }\n"], ["\n fragment Refund on Refund {\n id\n state\n items\n shipping\n adjustment\n transactionId\n paymentId\n }\n"])));
|
|
1580
1584
|
var ORDER_ADDRESS_FRAGMENT = apolloAngular.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n fragment OrderAddress on OrderAddress {\n fullName\n company\n streetLine1\n streetLine2\n city\n province\n postalCode\n country\n countryCode\n phoneNumber\n }\n"], ["\n fragment OrderAddress on OrderAddress {\n fullName\n company\n streetLine1\n streetLine2\n city\n province\n postalCode\n country\n countryCode\n phoneNumber\n }\n"])));
|
|
1581
|
-
var ORDER_FRAGMENT = apolloAngular.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n fragment Order on Order {\n id\n createdAt\n updatedAt\n orderPlacedAt\n code\n state\n nextStates\n total\n currencyCode\n customer {\n id\n firstName\n lastName\n }\n shippingLines {\n shippingMethod {\n name\n }\n }\n }\n"], ["\n fragment Order on Order {\n id\n createdAt\n updatedAt\n orderPlacedAt\n code\n state\n nextStates\n total\n currencyCode\n customer {\n id\n firstName\n lastName\n }\n shippingLines {\n shippingMethod {\n name\n }\n }\n }\n"])));
|
|
1585
|
+
var ORDER_FRAGMENT = apolloAngular.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n fragment Order on Order {\n id\n createdAt\n updatedAt\n orderPlacedAt\n code\n state\n nextStates\n total\n totalWithTax\n currencyCode\n customer {\n id\n firstName\n lastName\n }\n shippingLines {\n shippingMethod {\n name\n }\n }\n }\n"], ["\n fragment Order on Order {\n id\n createdAt\n updatedAt\n orderPlacedAt\n code\n state\n nextStates\n total\n totalWithTax\n currencyCode\n customer {\n id\n firstName\n lastName\n }\n shippingLines {\n shippingMethod {\n name\n }\n }\n }\n"])));
|
|
1582
1586
|
var FULFILLMENT_FRAGMENT = apolloAngular.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n fragment Fulfillment on Fulfillment {\n id\n state\n nextStates\n createdAt\n updatedAt\n method\n orderItems {\n id\n }\n trackingCode\n }\n"], ["\n fragment Fulfillment on Fulfillment {\n id\n state\n nextStates\n createdAt\n updatedAt\n method\n orderItems {\n id\n }\n trackingCode\n }\n"])));
|
|
1583
1587
|
var ORDER_LINE_FRAGMENT = apolloAngular.gql(templateObject_6$2 || (templateObject_6$2 = __makeTemplateObject(["\n fragment OrderLine on OrderLine {\n id\n featuredAsset {\n preview\n }\n productVariant {\n id\n name\n sku\n trackInventory\n stockOnHand\n }\n discounts {\n ...Discount\n }\n unitPrice\n unitPriceWithTax\n proratedUnitPrice\n proratedUnitPriceWithTax\n quantity\n items {\n id\n unitPrice\n unitPriceWithTax\n taxRate\n refundId\n cancelled\n fulfillment {\n ...Fulfillment\n }\n }\n linePrice\n lineTax\n linePriceWithTax\n discountedLinePrice\n discountedLinePriceWithTax\n }\n"], ["\n fragment OrderLine on OrderLine {\n id\n featuredAsset {\n preview\n }\n productVariant {\n id\n name\n sku\n trackInventory\n stockOnHand\n }\n discounts {\n ...Discount\n }\n unitPrice\n unitPriceWithTax\n proratedUnitPrice\n proratedUnitPriceWithTax\n quantity\n items {\n id\n unitPrice\n unitPriceWithTax\n taxRate\n refundId\n cancelled\n fulfillment {\n ...Fulfillment\n }\n }\n linePrice\n lineTax\n linePriceWithTax\n discountedLinePrice\n discountedLinePriceWithTax\n }\n"])));
|
|
1584
1588
|
var ORDER_DETAIL_FRAGMENT = apolloAngular.gql(templateObject_7$2 || (templateObject_7$2 = __makeTemplateObject(["\n fragment OrderDetail on Order {\n id\n createdAt\n updatedAt\n code\n state\n nextStates\n active\n couponCodes\n customer {\n id\n firstName\n lastName\n }\n lines {\n ...OrderLine\n }\n surcharges {\n id\n sku\n description\n price\n priceWithTax\n taxRate\n }\n discounts {\n ...Discount\n }\n promotions {\n id\n couponCode\n }\n subTotal\n subTotalWithTax\n total\n totalWithTax\n currencyCode\n shipping\n shippingWithTax\n shippingLines {\n shippingMethod {\n id\n code\n name\n fulfillmentHandlerCode\n description\n }\n }\n taxSummary {\n description\n taxBase\n taxRate\n taxTotal\n }\n shippingAddress {\n ...OrderAddress\n }\n billingAddress {\n ...OrderAddress\n }\n payments {\n id\n createdAt\n transactionId\n amount\n method\n state\n nextStates\n errorMessage\n metadata\n refunds {\n id\n createdAt\n state\n items\n adjustment\n total\n paymentId\n reason\n transactionId\n method\n metadata\n orderItems {\n id\n }\n }\n }\n fulfillments {\n ...Fulfillment\n }\n modifications {\n id\n createdAt\n isSettled\n priceChange\n note\n payment {\n id\n amount\n }\n orderItems {\n id\n }\n refund {\n id\n paymentId\n total\n }\n surcharges {\n id\n }\n }\n }\n ", "\n ", "\n ", "\n ", "\n"], ["\n fragment OrderDetail on Order {\n id\n createdAt\n updatedAt\n code\n state\n nextStates\n active\n couponCodes\n customer {\n id\n firstName\n lastName\n }\n lines {\n ...OrderLine\n }\n surcharges {\n id\n sku\n description\n price\n priceWithTax\n taxRate\n }\n discounts {\n ...Discount\n }\n promotions {\n id\n couponCode\n }\n subTotal\n subTotalWithTax\n total\n totalWithTax\n currencyCode\n shipping\n shippingWithTax\n shippingLines {\n shippingMethod {\n id\n code\n name\n fulfillmentHandlerCode\n description\n }\n }\n taxSummary {\n description\n taxBase\n taxRate\n taxTotal\n }\n shippingAddress {\n ...OrderAddress\n }\n billingAddress {\n ...OrderAddress\n }\n payments {\n id\n createdAt\n transactionId\n amount\n method\n state\n nextStates\n errorMessage\n metadata\n refunds {\n id\n createdAt\n state\n items\n adjustment\n total\n paymentId\n reason\n transactionId\n method\n metadata\n orderItems {\n id\n }\n }\n }\n fulfillments {\n ...Fulfillment\n }\n modifications {\n id\n createdAt\n isSettled\n priceChange\n note\n payment {\n id\n amount\n }\n orderItems {\n id\n }\n refund {\n id\n paymentId\n total\n }\n surcharges {\n id\n }\n }\n }\n ", "\n ", "\n ", "\n ", "\n"])), DISCOUNT_FRAGMENT, ORDER_ADDRESS_FRAGMENT, FULFILLMENT_FRAGMENT, ORDER_LINE_FRAGMENT);
|
|
@@ -4148,6 +4152,7 @@
|
|
|
4148
4152
|
this.modalService = modalService;
|
|
4149
4153
|
this.localStorageService = localStorageService;
|
|
4150
4154
|
this.availableLanguages = [];
|
|
4155
|
+
this.hideVendureBranding = getAppConfig().hideVendureBranding;
|
|
4151
4156
|
}
|
|
4152
4157
|
AppShellComponent.prototype.ngOnInit = function () {
|
|
4153
4158
|
this.userName$ = this.dataService.client
|
|
@@ -4203,8 +4208,8 @@
|
|
|
4203
4208
|
AppShellComponent.decorators = [
|
|
4204
4209
|
{ type: i0.Component, args: [{
|
|
4205
4210
|
selector: 'vdr-app-shell',
|
|
4206
|
-
template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\"
|
|
4207
|
-
styles: [".branding{min-width:0}.logo{width:
|
|
4211
|
+
template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\" /><span class=\"wordmark\" *ngIf=\"!hideVendureBranding\">vendure</span></a>\r\n </div>\r\n <div class=\"header-nav\"></div>\r\n <div class=\"header-actions\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n <vdr-user-menu [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"></vdr-user-menu>\r\n </div>\r\n </clr-header>\r\n <nav class=\"subnav\"><vdr-breadcrumb></vdr-breadcrumb></nav>\r\n\r\n <div class=\"content-container\">\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n <vdr-main-nav></vdr-main-nav>\r\n </div>\r\n</clr-main-container>\r\n",
|
|
4212
|
+
styles: [".branding{min-width:0}.logo{width:40px}.wordmark{font-weight:bold;margin-left:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (min-width: 768px){vdr-breadcrumb{margin-left:10.8rem}}.header-actions{align-items:center}.content-area{position:relative}::ng-deep .header{background-image:linear-gradient(to right,var(--color-header-gradient-from),var(--color-header-gradient-to))}\n"]
|
|
4208
4213
|
},] }
|
|
4209
4214
|
];
|
|
4210
4215
|
AppShellComponent.ctorParameters = function () { return [
|
|
@@ -5260,194 +5265,260 @@
|
|
|
5260
5265
|
|
|
5261
5266
|
// tslint:disable
|
|
5262
5267
|
var result = {
|
|
5263
|
-
possibleTypes: {
|
|
5264
|
-
AddFulfillmentToOrderResult: [
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5268
|
+
"possibleTypes": {
|
|
5269
|
+
"AddFulfillmentToOrderResult": [
|
|
5270
|
+
"Fulfillment",
|
|
5271
|
+
"EmptyOrderLineSelectionError",
|
|
5272
|
+
"ItemsAlreadyFulfilledError",
|
|
5273
|
+
"InsufficientStockOnHandError",
|
|
5274
|
+
"InvalidFulfillmentHandlerError",
|
|
5275
|
+
"FulfillmentStateTransitionError",
|
|
5276
|
+
"CreateFulfillmentError"
|
|
5272
5277
|
],
|
|
5273
|
-
AddManualPaymentToOrderResult: [
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
'Order',
|
|
5277
|
-
'EmptyOrderLineSelectionError',
|
|
5278
|
-
'QuantityTooGreatError',
|
|
5279
|
-
'MultipleOrderError',
|
|
5280
|
-
'CancelActiveOrderError',
|
|
5281
|
-
'OrderStateTransitionError',
|
|
5278
|
+
"AddManualPaymentToOrderResult": [
|
|
5279
|
+
"Order",
|
|
5280
|
+
"ManualPaymentStateError"
|
|
5282
5281
|
],
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
CreatePromotionResult: ['Promotion', 'MissingConditionsError'],
|
|
5287
|
-
CustomField: [
|
|
5288
|
-
'BooleanCustomFieldConfig',
|
|
5289
|
-
'DateTimeCustomFieldConfig',
|
|
5290
|
-
'FloatCustomFieldConfig',
|
|
5291
|
-
'IntCustomFieldConfig',
|
|
5292
|
-
'LocaleStringCustomFieldConfig',
|
|
5293
|
-
'RelationCustomFieldConfig',
|
|
5294
|
-
'StringCustomFieldConfig',
|
|
5295
|
-
'TextCustomFieldConfig',
|
|
5282
|
+
"AuthenticationResult": [
|
|
5283
|
+
"CurrentUser",
|
|
5284
|
+
"InvalidCredentialsError"
|
|
5296
5285
|
],
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
'RelationCustomFieldConfig',
|
|
5305
|
-
'TextCustomFieldConfig',
|
|
5286
|
+
"CancelOrderResult": [
|
|
5287
|
+
"Order",
|
|
5288
|
+
"EmptyOrderLineSelectionError",
|
|
5289
|
+
"QuantityTooGreatError",
|
|
5290
|
+
"MultipleOrderError",
|
|
5291
|
+
"CancelActiveOrderError",
|
|
5292
|
+
"OrderStateTransitionError"
|
|
5306
5293
|
],
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
'ChannelDefaultLanguageError',
|
|
5311
|
-
'CouponCodeExpiredError',
|
|
5312
|
-
'CouponCodeInvalidError',
|
|
5313
|
-
'CouponCodeLimitError',
|
|
5314
|
-
'CreateFulfillmentError',
|
|
5315
|
-
'EmailAddressConflictError',
|
|
5316
|
-
'EmptyOrderLineSelectionError',
|
|
5317
|
-
'FulfillmentStateTransitionError',
|
|
5318
|
-
'InsufficientStockError',
|
|
5319
|
-
'InsufficientStockOnHandError',
|
|
5320
|
-
'InvalidCredentialsError',
|
|
5321
|
-
'InvalidFulfillmentHandlerError',
|
|
5322
|
-
'ItemsAlreadyFulfilledError',
|
|
5323
|
-
'LanguageNotAvailableError',
|
|
5324
|
-
'ManualPaymentStateError',
|
|
5325
|
-
'MimeTypeError',
|
|
5326
|
-
'MissingConditionsError',
|
|
5327
|
-
'MultipleOrderError',
|
|
5328
|
-
'NativeAuthStrategyError',
|
|
5329
|
-
'NegativeQuantityError',
|
|
5330
|
-
'NoChangesSpecifiedError',
|
|
5331
|
-
'NothingToRefundError',
|
|
5332
|
-
'OrderLimitError',
|
|
5333
|
-
'OrderModificationStateError',
|
|
5334
|
-
'OrderStateTransitionError',
|
|
5335
|
-
'PaymentMethodMissingError',
|
|
5336
|
-
'PaymentOrderMismatchError',
|
|
5337
|
-
'PaymentStateTransitionError',
|
|
5338
|
-
'ProductOptionInUseError',
|
|
5339
|
-
'QuantityTooGreatError',
|
|
5340
|
-
'RefundOrderStateError',
|
|
5341
|
-
'RefundPaymentIdMissingError',
|
|
5342
|
-
'RefundStateTransitionError',
|
|
5343
|
-
'SettlePaymentError',
|
|
5294
|
+
"CreateAssetResult": [
|
|
5295
|
+
"Asset",
|
|
5296
|
+
"MimeTypeError"
|
|
5344
5297
|
],
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
'OrderModificationStateError',
|
|
5349
|
-
'PaymentMethodMissingError',
|
|
5350
|
-
'RefundPaymentIdMissingError',
|
|
5351
|
-
'OrderLimitError',
|
|
5352
|
-
'NegativeQuantityError',
|
|
5353
|
-
'InsufficientStockError',
|
|
5354
|
-
'CouponCodeExpiredError',
|
|
5355
|
-
'CouponCodeInvalidError',
|
|
5356
|
-
'CouponCodeLimitError',
|
|
5298
|
+
"CreateChannelResult": [
|
|
5299
|
+
"Channel",
|
|
5300
|
+
"LanguageNotAvailableError"
|
|
5357
5301
|
],
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
'Administrator',
|
|
5362
|
-
'Allocation',
|
|
5363
|
-
'Asset',
|
|
5364
|
-
'AuthenticationMethod',
|
|
5365
|
-
'Cancellation',
|
|
5366
|
-
'Channel',
|
|
5367
|
-
'Collection',
|
|
5368
|
-
'Country',
|
|
5369
|
-
'Customer',
|
|
5370
|
-
'CustomerGroup',
|
|
5371
|
-
'Facet',
|
|
5372
|
-
'FacetValue',
|
|
5373
|
-
'Fulfillment',
|
|
5374
|
-
'HistoryEntry',
|
|
5375
|
-
'Job',
|
|
5376
|
-
'Order',
|
|
5377
|
-
'OrderItem',
|
|
5378
|
-
'OrderLine',
|
|
5379
|
-
'OrderModification',
|
|
5380
|
-
'Payment',
|
|
5381
|
-
'PaymentMethod',
|
|
5382
|
-
'Product',
|
|
5383
|
-
'ProductOption',
|
|
5384
|
-
'ProductOptionGroup',
|
|
5385
|
-
'ProductVariant',
|
|
5386
|
-
'Promotion',
|
|
5387
|
-
'Refund',
|
|
5388
|
-
'Release',
|
|
5389
|
-
'Return',
|
|
5390
|
-
'Role',
|
|
5391
|
-
'Sale',
|
|
5392
|
-
'ShippingMethod',
|
|
5393
|
-
'StockAdjustment',
|
|
5394
|
-
'Surcharge',
|
|
5395
|
-
'Tag',
|
|
5396
|
-
'TaxCategory',
|
|
5397
|
-
'TaxRate',
|
|
5398
|
-
'User',
|
|
5399
|
-
'Zone',
|
|
5302
|
+
"CreateCustomerResult": [
|
|
5303
|
+
"Customer",
|
|
5304
|
+
"EmailAddressConflictError"
|
|
5400
5305
|
],
|
|
5401
|
-
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
'CollectionList',
|
|
5405
|
-
'CountryList',
|
|
5406
|
-
'CustomerGroupList',
|
|
5407
|
-
'CustomerList',
|
|
5408
|
-
'FacetList',
|
|
5409
|
-
'HistoryEntryList',
|
|
5410
|
-
'JobList',
|
|
5411
|
-
'OrderList',
|
|
5412
|
-
'PaymentMethodList',
|
|
5413
|
-
'ProductList',
|
|
5414
|
-
'ProductVariantList',
|
|
5415
|
-
'PromotionList',
|
|
5416
|
-
'RoleList',
|
|
5417
|
-
'ShippingMethodList',
|
|
5418
|
-
'TagList',
|
|
5419
|
-
'TaxRateList',
|
|
5306
|
+
"CreatePromotionResult": [
|
|
5307
|
+
"Promotion",
|
|
5308
|
+
"MissingConditionsError"
|
|
5420
5309
|
],
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
|
|
5430
|
-
'RefundStateTransitionError',
|
|
5310
|
+
"CustomField": [
|
|
5311
|
+
"BooleanCustomFieldConfig",
|
|
5312
|
+
"DateTimeCustomFieldConfig",
|
|
5313
|
+
"FloatCustomFieldConfig",
|
|
5314
|
+
"IntCustomFieldConfig",
|
|
5315
|
+
"LocaleStringCustomFieldConfig",
|
|
5316
|
+
"RelationCustomFieldConfig",
|
|
5317
|
+
"StringCustomFieldConfig",
|
|
5318
|
+
"TextCustomFieldConfig"
|
|
5431
5319
|
],
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5438
|
-
|
|
5320
|
+
"CustomFieldConfig": [
|
|
5321
|
+
"StringCustomFieldConfig",
|
|
5322
|
+
"LocaleStringCustomFieldConfig",
|
|
5323
|
+
"IntCustomFieldConfig",
|
|
5324
|
+
"FloatCustomFieldConfig",
|
|
5325
|
+
"BooleanCustomFieldConfig",
|
|
5326
|
+
"DateTimeCustomFieldConfig",
|
|
5327
|
+
"RelationCustomFieldConfig",
|
|
5328
|
+
"TextCustomFieldConfig"
|
|
5439
5329
|
],
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5330
|
+
"ErrorResult": [
|
|
5331
|
+
"AlreadyRefundedError",
|
|
5332
|
+
"CancelActiveOrderError",
|
|
5333
|
+
"ChannelDefaultLanguageError",
|
|
5334
|
+
"CouponCodeExpiredError",
|
|
5335
|
+
"CouponCodeInvalidError",
|
|
5336
|
+
"CouponCodeLimitError",
|
|
5337
|
+
"CreateFulfillmentError",
|
|
5338
|
+
"EmailAddressConflictError",
|
|
5339
|
+
"EmptyOrderLineSelectionError",
|
|
5340
|
+
"FulfillmentStateTransitionError",
|
|
5341
|
+
"InsufficientStockError",
|
|
5342
|
+
"InsufficientStockOnHandError",
|
|
5343
|
+
"InvalidCredentialsError",
|
|
5344
|
+
"InvalidFulfillmentHandlerError",
|
|
5345
|
+
"ItemsAlreadyFulfilledError",
|
|
5346
|
+
"LanguageNotAvailableError",
|
|
5347
|
+
"ManualPaymentStateError",
|
|
5348
|
+
"MimeTypeError",
|
|
5349
|
+
"MissingConditionsError",
|
|
5350
|
+
"MultipleOrderError",
|
|
5351
|
+
"NativeAuthStrategyError",
|
|
5352
|
+
"NegativeQuantityError",
|
|
5353
|
+
"NoChangesSpecifiedError",
|
|
5354
|
+
"NothingToRefundError",
|
|
5355
|
+
"OrderLimitError",
|
|
5356
|
+
"OrderModificationStateError",
|
|
5357
|
+
"OrderStateTransitionError",
|
|
5358
|
+
"PaymentMethodMissingError",
|
|
5359
|
+
"PaymentOrderMismatchError",
|
|
5360
|
+
"PaymentStateTransitionError",
|
|
5361
|
+
"ProductOptionInUseError",
|
|
5362
|
+
"QuantityTooGreatError",
|
|
5363
|
+
"RefundOrderStateError",
|
|
5364
|
+
"RefundPaymentIdMissingError",
|
|
5365
|
+
"RefundStateTransitionError",
|
|
5366
|
+
"SettlePaymentError"
|
|
5367
|
+
],
|
|
5368
|
+
"ModifyOrderResult": [
|
|
5369
|
+
"Order",
|
|
5370
|
+
"NoChangesSpecifiedError",
|
|
5371
|
+
"OrderModificationStateError",
|
|
5372
|
+
"PaymentMethodMissingError",
|
|
5373
|
+
"RefundPaymentIdMissingError",
|
|
5374
|
+
"OrderLimitError",
|
|
5375
|
+
"NegativeQuantityError",
|
|
5376
|
+
"InsufficientStockError",
|
|
5377
|
+
"CouponCodeExpiredError",
|
|
5378
|
+
"CouponCodeInvalidError",
|
|
5379
|
+
"CouponCodeLimitError"
|
|
5380
|
+
],
|
|
5381
|
+
"NativeAuthenticationResult": [
|
|
5382
|
+
"CurrentUser",
|
|
5383
|
+
"InvalidCredentialsError",
|
|
5384
|
+
"NativeAuthStrategyError"
|
|
5385
|
+
],
|
|
5386
|
+
"Node": [
|
|
5387
|
+
"Address",
|
|
5388
|
+
"Administrator",
|
|
5389
|
+
"Allocation",
|
|
5390
|
+
"Asset",
|
|
5391
|
+
"AuthenticationMethod",
|
|
5392
|
+
"Cancellation",
|
|
5393
|
+
"Channel",
|
|
5394
|
+
"Collection",
|
|
5395
|
+
"Country",
|
|
5396
|
+
"Customer",
|
|
5397
|
+
"CustomerGroup",
|
|
5398
|
+
"Facet",
|
|
5399
|
+
"FacetValue",
|
|
5400
|
+
"Fulfillment",
|
|
5401
|
+
"HistoryEntry",
|
|
5402
|
+
"Job",
|
|
5403
|
+
"Order",
|
|
5404
|
+
"OrderItem",
|
|
5405
|
+
"OrderLine",
|
|
5406
|
+
"OrderModification",
|
|
5407
|
+
"Payment",
|
|
5408
|
+
"PaymentMethod",
|
|
5409
|
+
"Product",
|
|
5410
|
+
"ProductOption",
|
|
5411
|
+
"ProductOptionGroup",
|
|
5412
|
+
"ProductVariant",
|
|
5413
|
+
"Promotion",
|
|
5414
|
+
"Refund",
|
|
5415
|
+
"Release",
|
|
5416
|
+
"Return",
|
|
5417
|
+
"Role",
|
|
5418
|
+
"Sale",
|
|
5419
|
+
"ShippingMethod",
|
|
5420
|
+
"StockAdjustment",
|
|
5421
|
+
"Surcharge",
|
|
5422
|
+
"Tag",
|
|
5423
|
+
"TaxCategory",
|
|
5424
|
+
"TaxRate",
|
|
5425
|
+
"User",
|
|
5426
|
+
"Zone"
|
|
5427
|
+
],
|
|
5428
|
+
"PaginatedList": [
|
|
5429
|
+
"AdministratorList",
|
|
5430
|
+
"AssetList",
|
|
5431
|
+
"CollectionList",
|
|
5432
|
+
"CountryList",
|
|
5433
|
+
"CustomerGroupList",
|
|
5434
|
+
"CustomerList",
|
|
5435
|
+
"FacetList",
|
|
5436
|
+
"HistoryEntryList",
|
|
5437
|
+
"JobList",
|
|
5438
|
+
"OrderList",
|
|
5439
|
+
"PaymentMethodList",
|
|
5440
|
+
"ProductList",
|
|
5441
|
+
"ProductVariantList",
|
|
5442
|
+
"PromotionList",
|
|
5443
|
+
"RoleList",
|
|
5444
|
+
"ShippingMethodList",
|
|
5445
|
+
"TagList",
|
|
5446
|
+
"TaxRateList"
|
|
5447
|
+
],
|
|
5448
|
+
"RefundOrderResult": [
|
|
5449
|
+
"Refund",
|
|
5450
|
+
"QuantityTooGreatError",
|
|
5451
|
+
"NothingToRefundError",
|
|
5452
|
+
"OrderStateTransitionError",
|
|
5453
|
+
"MultipleOrderError",
|
|
5454
|
+
"PaymentOrderMismatchError",
|
|
5455
|
+
"RefundOrderStateError",
|
|
5456
|
+
"AlreadyRefundedError",
|
|
5457
|
+
"RefundStateTransitionError"
|
|
5458
|
+
],
|
|
5459
|
+
"RemoveOptionGroupFromProductResult": [
|
|
5460
|
+
"Product",
|
|
5461
|
+
"ProductOptionInUseError"
|
|
5462
|
+
],
|
|
5463
|
+
"SearchResultPrice": [
|
|
5464
|
+
"PriceRange",
|
|
5465
|
+
"SinglePrice"
|
|
5466
|
+
],
|
|
5467
|
+
"SettlePaymentResult": [
|
|
5468
|
+
"Payment",
|
|
5469
|
+
"SettlePaymentError",
|
|
5470
|
+
"PaymentStateTransitionError",
|
|
5471
|
+
"OrderStateTransitionError"
|
|
5472
|
+
],
|
|
5473
|
+
"SettleRefundResult": [
|
|
5474
|
+
"Refund",
|
|
5475
|
+
"RefundStateTransitionError"
|
|
5476
|
+
],
|
|
5477
|
+
"StockMovement": [
|
|
5478
|
+
"Allocation",
|
|
5479
|
+
"Cancellation",
|
|
5480
|
+
"Release",
|
|
5481
|
+
"Return",
|
|
5482
|
+
"Sale",
|
|
5483
|
+
"StockAdjustment"
|
|
5484
|
+
],
|
|
5485
|
+
"StockMovementItem": [
|
|
5486
|
+
"StockAdjustment",
|
|
5487
|
+
"Allocation",
|
|
5488
|
+
"Sale",
|
|
5489
|
+
"Cancellation",
|
|
5490
|
+
"Return",
|
|
5491
|
+
"Release"
|
|
5492
|
+
],
|
|
5493
|
+
"TransitionFulfillmentToStateResult": [
|
|
5494
|
+
"Fulfillment",
|
|
5495
|
+
"FulfillmentStateTransitionError"
|
|
5496
|
+
],
|
|
5497
|
+
"TransitionOrderToStateResult": [
|
|
5498
|
+
"Order",
|
|
5499
|
+
"OrderStateTransitionError"
|
|
5500
|
+
],
|
|
5501
|
+
"TransitionPaymentToStateResult": [
|
|
5502
|
+
"Payment",
|
|
5503
|
+
"PaymentStateTransitionError"
|
|
5504
|
+
],
|
|
5505
|
+
"UpdateChannelResult": [
|
|
5506
|
+
"Channel",
|
|
5507
|
+
"LanguageNotAvailableError"
|
|
5508
|
+
],
|
|
5509
|
+
"UpdateCustomerResult": [
|
|
5510
|
+
"Customer",
|
|
5511
|
+
"EmailAddressConflictError"
|
|
5512
|
+
],
|
|
5513
|
+
"UpdateGlobalSettingsResult": [
|
|
5514
|
+
"GlobalSettings",
|
|
5515
|
+
"ChannelDefaultLanguageError"
|
|
5516
|
+
],
|
|
5517
|
+
"UpdatePromotionResult": [
|
|
5518
|
+
"Promotion",
|
|
5519
|
+
"MissingConditionsError"
|
|
5520
|
+
]
|
|
5521
|
+
}
|
|
5451
5522
|
};
|
|
5452
5523
|
|
|
5453
5524
|
// Allows the introspectionResult to be imported as a named symbol
|
|
@@ -5519,7 +5590,7 @@
|
|
|
5519
5590
|
};
|
|
5520
5591
|
}
|
|
5521
5592
|
|
|
5522
|
-
var ɵ0$
|
|
5593
|
+
var ɵ0$3 = function (_, args, _b) {
|
|
5523
5594
|
var cache = _b.cache;
|
|
5524
5595
|
return updateRequestsInFlight(cache, 1);
|
|
5525
5596
|
}, ɵ1 = function (_, args, _b) {
|
|
@@ -5620,7 +5691,7 @@
|
|
|
5620
5691
|
};
|
|
5621
5692
|
var clientResolvers = {
|
|
5622
5693
|
Mutation: {
|
|
5623
|
-
requestStarted: ɵ0$
|
|
5694
|
+
requestStarted: ɵ0$3,
|
|
5624
5695
|
requestCompleted: ɵ1,
|
|
5625
5696
|
setAsLoggedIn: ɵ2,
|
|
5626
5697
|
setAsLoggedOut: ɵ3,
|
|
@@ -6080,7 +6151,7 @@
|
|
|
6080
6151
|
resolvers: clientResolvers,
|
|
6081
6152
|
};
|
|
6082
6153
|
}
|
|
6083
|
-
var ɵ0$
|
|
6154
|
+
var ɵ0$2 = initializeServerConfigService;
|
|
6084
6155
|
/**
|
|
6085
6156
|
* The DataModule is responsible for all API calls *and* serves as the source of truth for global app
|
|
6086
6157
|
* state via the apollo-link-state package.
|
|
@@ -6109,7 +6180,7 @@
|
|
|
6109
6180
|
{
|
|
6110
6181
|
provide: i0.APP_INITIALIZER,
|
|
6111
6182
|
multi: true,
|
|
6112
|
-
useFactory: ɵ0$
|
|
6183
|
+
useFactory: ɵ0$2,
|
|
6113
6184
|
deps: [ServerConfigService],
|
|
6114
6185
|
},
|
|
6115
6186
|
],
|
|
@@ -6410,399 +6481,498 @@
|
|
|
6410
6481
|
};
|
|
6411
6482
|
|
|
6412
6483
|
/**
|
|
6413
|
-
*
|
|
6414
|
-
*
|
|
6415
|
-
*
|
|
6416
|
-
* @docsCategory custom-input-components
|
|
6417
|
-
* @docsPage default-inputs
|
|
6484
|
+
* ConfigArg values are always stored as strings. If they are not primitives, then
|
|
6485
|
+
* they are JSON-encoded. This function unwraps them back into their original
|
|
6486
|
+
* data type.
|
|
6418
6487
|
*/
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
this.currencyCode$ = this.dataService.settings
|
|
6423
|
-
.getActiveChannel()
|
|
6424
|
-
.mapStream(function (data) { return data.activeChannel.currencyCode; });
|
|
6488
|
+
function getConfigArgValue(value) {
|
|
6489
|
+
try {
|
|
6490
|
+
return value ? JSON.parse(value) : undefined;
|
|
6425
6491
|
}
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6434
|
-
styles: [""]
|
|
6435
|
-
},] }
|
|
6436
|
-
];
|
|
6437
|
-
CurrencyFormInputComponent.ctorParameters = function () { return [
|
|
6438
|
-
{ type: DataService }
|
|
6439
|
-
]; };
|
|
6440
|
-
CurrencyFormInputComponent.propDecorators = {
|
|
6441
|
-
readonly: [{ type: i0.Input }]
|
|
6442
|
-
};
|
|
6443
|
-
|
|
6492
|
+
catch (e) {
|
|
6493
|
+
return value;
|
|
6494
|
+
}
|
|
6495
|
+
}
|
|
6496
|
+
function encodeConfigArgValue(value) {
|
|
6497
|
+
return Array.isArray(value) ? JSON.stringify(value) : (value !== null && value !== void 0 ? value : '').toString();
|
|
6498
|
+
}
|
|
6444
6499
|
/**
|
|
6445
|
-
*
|
|
6446
|
-
* Allows the selection of a Customer via an autocomplete select input.
|
|
6447
|
-
* Should be used with `ID` type fields which represent Customer IDs.
|
|
6448
|
-
*
|
|
6449
|
-
* @docsCategory custom-input-components
|
|
6450
|
-
* @docsPage default-inputs
|
|
6500
|
+
* Creates an empty ConfigurableOperation object based on the definition.
|
|
6451
6501
|
*/
|
|
6452
|
-
|
|
6453
|
-
function
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
this.customerGroups$ = this.dataService.customer
|
|
6458
|
-
.getCustomerGroupList({
|
|
6459
|
-
take: 1000,
|
|
6460
|
-
})
|
|
6461
|
-
.mapSingle(function (res) { return res.customerGroups.items; })
|
|
6462
|
-
.pipe(operators.startWith([]));
|
|
6463
|
-
};
|
|
6464
|
-
CustomerGroupFormInputComponent.prototype.selectGroup = function (group) {
|
|
6465
|
-
this.formControl.setValue(group.id);
|
|
6466
|
-
};
|
|
6467
|
-
return CustomerGroupFormInputComponent;
|
|
6468
|
-
}());
|
|
6469
|
-
CustomerGroupFormInputComponent.id = 'customer-group-form-input';
|
|
6470
|
-
CustomerGroupFormInputComponent.decorators = [
|
|
6471
|
-
{ type: i0.Component, args: [{
|
|
6472
|
-
selector: 'vdr-customer-group-form-input',
|
|
6473
|
-
template: "<ng-select\r\n [items]=\"customerGroups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"false\"\r\n bindValue=\"id\"\r\n [clearable]=\"true\"\r\n [searchable]=\"false\"\r\n [ngModel]=\"formControl.value\"\r\n (change)=\"selectGroup($event)\"\r\n>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n</ng-select>\r\n",
|
|
6474
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6475
|
-
styles: [""]
|
|
6476
|
-
},] }
|
|
6477
|
-
];
|
|
6478
|
-
CustomerGroupFormInputComponent.ctorParameters = function () { return [
|
|
6479
|
-
{ type: DataService }
|
|
6480
|
-
]; };
|
|
6481
|
-
CustomerGroupFormInputComponent.propDecorators = {
|
|
6482
|
-
readonly: [{ type: i0.Input }]
|
|
6483
|
-
};
|
|
6484
|
-
|
|
6502
|
+
function configurableDefinitionToInstance(def) {
|
|
6503
|
+
return Object.assign(Object.assign({}, def), { args: def.args.map(function (arg) {
|
|
6504
|
+
return Object.assign(Object.assign({}, arg), { value: getDefaultConfigArgValue(arg) });
|
|
6505
|
+
}) });
|
|
6506
|
+
}
|
|
6485
6507
|
/**
|
|
6486
|
-
*
|
|
6487
|
-
*
|
|
6488
|
-
*
|
|
6489
|
-
*
|
|
6490
|
-
*
|
|
6508
|
+
* Converts an object of the type:
|
|
6509
|
+
* ```
|
|
6510
|
+
* {
|
|
6511
|
+
* code: 'my-operation',
|
|
6512
|
+
* args: {
|
|
6513
|
+
* someProperty: 'foo'
|
|
6514
|
+
* }
|
|
6515
|
+
* }
|
|
6516
|
+
* ```
|
|
6517
|
+
* to the format defined by the ConfigurableOperationInput GraphQL input type:
|
|
6518
|
+
* ```
|
|
6519
|
+
* {
|
|
6520
|
+
* code: 'my-operation',
|
|
6521
|
+
* args: [
|
|
6522
|
+
* { name: 'someProperty', value: 'foo' }
|
|
6523
|
+
* ]
|
|
6524
|
+
* }
|
|
6525
|
+
* ```
|
|
6491
6526
|
*/
|
|
6492
|
-
|
|
6493
|
-
|
|
6527
|
+
function toConfigurableOperationInput(operation, formValueOperations) {
|
|
6528
|
+
return {
|
|
6529
|
+
code: operation.code,
|
|
6530
|
+
arguments: Object.values(formValueOperations.args || {}).map(function (value, j) { return ({
|
|
6531
|
+
name: operation.args[j].name,
|
|
6532
|
+
value: (value === null || value === void 0 ? void 0 : value.hasOwnProperty('value'))
|
|
6533
|
+
? encodeConfigArgValue(value.value)
|
|
6534
|
+
: encodeConfigArgValue(value),
|
|
6535
|
+
}); }),
|
|
6536
|
+
};
|
|
6537
|
+
}
|
|
6538
|
+
function configurableOperationValueIsValid(def, value) {
|
|
6539
|
+
var e_1, _a;
|
|
6540
|
+
if (!def || !value) {
|
|
6541
|
+
return false;
|
|
6494
6542
|
}
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
enumerable: false,
|
|
6517
|
-
configurable: true
|
|
6518
|
-
});
|
|
6519
|
-
return DateFormInputComponent;
|
|
6520
|
-
}());
|
|
6521
|
-
DateFormInputComponent.id = 'date-form-input';
|
|
6522
|
-
DateFormInputComponent.decorators = [
|
|
6523
|
-
{ type: i0.Component, args: [{
|
|
6524
|
-
selector: 'vdr-date-form-input',
|
|
6525
|
-
template: "<vdr-datetime-picker\r\n [formControl]=\"formControl\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [yearRange]=\"yearRange\"\r\n [readonly]=\"readonly\"\r\n>\r\n</vdr-datetime-picker>\r\n",
|
|
6526
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6527
|
-
styles: [""]
|
|
6528
|
-
},] }
|
|
6529
|
-
];
|
|
6530
|
-
DateFormInputComponent.propDecorators = {
|
|
6531
|
-
readonly: [{ type: i0.Input }]
|
|
6532
|
-
};
|
|
6533
|
-
|
|
6543
|
+
if (def.code !== value.code) {
|
|
6544
|
+
return false;
|
|
6545
|
+
}
|
|
6546
|
+
try {
|
|
6547
|
+
for (var _b = __values(def.args), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
6548
|
+
var argDef = _c.value;
|
|
6549
|
+
var argVal = value.args[argDef.name];
|
|
6550
|
+
if (argDef.required && (argVal == null || argVal === '' || argVal === '0')) {
|
|
6551
|
+
return false;
|
|
6552
|
+
}
|
|
6553
|
+
}
|
|
6554
|
+
}
|
|
6555
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
6556
|
+
finally {
|
|
6557
|
+
try {
|
|
6558
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
6559
|
+
}
|
|
6560
|
+
finally { if (e_1) throw e_1.error; }
|
|
6561
|
+
}
|
|
6562
|
+
return true;
|
|
6563
|
+
}
|
|
6534
6564
|
/**
|
|
6535
|
-
*
|
|
6536
|
-
* Allows the selection of multiple FacetValues via an autocomplete select input.
|
|
6537
|
-
* Should be used with `ID` type **list** fields which represent FacetValue IDs.
|
|
6538
|
-
*
|
|
6539
|
-
* @docsCategory custom-input-components
|
|
6540
|
-
* @docsPage default-inputs
|
|
6565
|
+
* Returns a default value based on the type of the config arg.
|
|
6541
6566
|
*/
|
|
6542
|
-
|
|
6543
|
-
|
|
6544
|
-
|
|
6545
|
-
this.isListInput = true;
|
|
6567
|
+
function getDefaultConfigArgValue(arg) {
|
|
6568
|
+
if (arg.list) {
|
|
6569
|
+
return [];
|
|
6546
6570
|
}
|
|
6547
|
-
|
|
6548
|
-
|
|
6549
|
-
|
|
6550
|
-
|
|
6551
|
-
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
|
|
6559
|
-
|
|
6560
|
-
|
|
6561
|
-
|
|
6562
|
-
|
|
6563
|
-
|
|
6564
|
-
FacetValueFormInputComponent.ctorParameters = function () { return [
|
|
6565
|
-
{ type: DataService }
|
|
6566
|
-
]; };
|
|
6571
|
+
if (arg.defaultValue) {
|
|
6572
|
+
return arg.defaultValue;
|
|
6573
|
+
}
|
|
6574
|
+
var type = arg.type;
|
|
6575
|
+
switch (type) {
|
|
6576
|
+
case 'string':
|
|
6577
|
+
case 'datetime':
|
|
6578
|
+
case 'float':
|
|
6579
|
+
case 'ID':
|
|
6580
|
+
case 'int':
|
|
6581
|
+
return null;
|
|
6582
|
+
case 'boolean':
|
|
6583
|
+
return false;
|
|
6584
|
+
default:
|
|
6585
|
+
sharedUtils.assertNever(type);
|
|
6586
|
+
}
|
|
6587
|
+
}
|
|
6567
6588
|
|
|
6568
6589
|
/**
|
|
6569
|
-
*
|
|
6570
|
-
* Displays a number input. Default input for `int` and `float` type fields.
|
|
6571
|
-
*
|
|
6572
|
-
* @docsCategory custom-input-components
|
|
6573
|
-
* @docsPage default-inputs
|
|
6590
|
+
* Interpolates the description of an ConfigurableOperation with the given values.
|
|
6574
6591
|
*/
|
|
6575
|
-
|
|
6576
|
-
|
|
6592
|
+
function interpolateDescription(operation, values) {
|
|
6593
|
+
if (!operation) {
|
|
6594
|
+
return '';
|
|
6577
6595
|
}
|
|
6578
|
-
|
|
6579
|
-
|
|
6580
|
-
|
|
6581
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
Object.defineProperty(NumberFormInputComponent.prototype, "min", {
|
|
6595
|
-
get: function () {
|
|
6596
|
-
var _a;
|
|
6597
|
-
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.min) || this.config.min;
|
|
6598
|
-
},
|
|
6599
|
-
enumerable: false,
|
|
6600
|
-
configurable: true
|
|
6601
|
-
});
|
|
6602
|
-
Object.defineProperty(NumberFormInputComponent.prototype, "max", {
|
|
6603
|
-
get: function () {
|
|
6604
|
-
var _a;
|
|
6605
|
-
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.max) || this.config.max;
|
|
6606
|
-
},
|
|
6607
|
-
enumerable: false,
|
|
6608
|
-
configurable: true
|
|
6609
|
-
});
|
|
6610
|
-
Object.defineProperty(NumberFormInputComponent.prototype, "step", {
|
|
6611
|
-
get: function () {
|
|
6612
|
-
var _a;
|
|
6613
|
-
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.step) || this.config.step;
|
|
6614
|
-
},
|
|
6615
|
-
enumerable: false,
|
|
6616
|
-
configurable: true
|
|
6596
|
+
var templateString = operation.description;
|
|
6597
|
+
var interpolated = templateString.replace(/{\s*([a-zA-Z0-9]+)\s*}/gi, function (substring, argName) {
|
|
6598
|
+
var normalizedArgName = argName.toLowerCase();
|
|
6599
|
+
var value = values[normalizedArgName];
|
|
6600
|
+
if (value == null) {
|
|
6601
|
+
return '_';
|
|
6602
|
+
}
|
|
6603
|
+
var formatted = value;
|
|
6604
|
+
var argDef = operation.args.find(function (arg) { return arg.name === normalizedArgName; });
|
|
6605
|
+
if (argDef && argDef.type === 'int' && argDef.ui && argDef.ui.component === 'currency-form-input') {
|
|
6606
|
+
formatted = value / 100;
|
|
6607
|
+
}
|
|
6608
|
+
if (argDef && argDef.type === 'datetime' && value instanceof Date) {
|
|
6609
|
+
formatted = value.toLocaleDateString();
|
|
6610
|
+
}
|
|
6611
|
+
return formatted;
|
|
6617
6612
|
});
|
|
6618
|
-
return
|
|
6613
|
+
return interpolated;
|
|
6614
|
+
}
|
|
6615
|
+
|
|
6616
|
+
/**
|
|
6617
|
+
* A form input which renders a card with the internal form fields of the given ConfigurableOperation.
|
|
6618
|
+
*/
|
|
6619
|
+
var ConfigurableInputComponent = /** @class */ (function () {
|
|
6620
|
+
function ConfigurableInputComponent() {
|
|
6621
|
+
this.readonly = false;
|
|
6622
|
+
this.removable = true;
|
|
6623
|
+
this.position = 0;
|
|
6624
|
+
this.remove = new i0.EventEmitter();
|
|
6625
|
+
this.argValues = {};
|
|
6626
|
+
this.form = new forms.FormGroup({});
|
|
6627
|
+
this.positionChangeSubject = new rxjs.BehaviorSubject(0);
|
|
6628
|
+
}
|
|
6629
|
+
ConfigurableInputComponent.prototype.interpolateDescription = function () {
|
|
6630
|
+
if (this.operationDefinition) {
|
|
6631
|
+
return interpolateDescription(this.operationDefinition, this.form.value);
|
|
6632
|
+
}
|
|
6633
|
+
else {
|
|
6634
|
+
return '';
|
|
6635
|
+
}
|
|
6636
|
+
};
|
|
6637
|
+
ConfigurableInputComponent.prototype.ngOnInit = function () {
|
|
6638
|
+
this.positionChange$ = this.positionChangeSubject.asObservable();
|
|
6639
|
+
};
|
|
6640
|
+
ConfigurableInputComponent.prototype.ngOnChanges = function (changes) {
|
|
6641
|
+
if ('operation' in changes || 'operationDefinition' in changes) {
|
|
6642
|
+
this.createForm();
|
|
6643
|
+
}
|
|
6644
|
+
if ('position' in changes) {
|
|
6645
|
+
this.positionChangeSubject.next(this.position);
|
|
6646
|
+
}
|
|
6647
|
+
};
|
|
6648
|
+
ConfigurableInputComponent.prototype.ngOnDestroy = function () {
|
|
6649
|
+
if (this.subscription) {
|
|
6650
|
+
this.subscription.unsubscribe();
|
|
6651
|
+
}
|
|
6652
|
+
};
|
|
6653
|
+
ConfigurableInputComponent.prototype.registerOnChange = function (fn) {
|
|
6654
|
+
this.onChange = fn;
|
|
6655
|
+
};
|
|
6656
|
+
ConfigurableInputComponent.prototype.registerOnTouched = function (fn) {
|
|
6657
|
+
this.onTouch = fn;
|
|
6658
|
+
};
|
|
6659
|
+
ConfigurableInputComponent.prototype.setDisabledState = function (isDisabled) {
|
|
6660
|
+
if (isDisabled) {
|
|
6661
|
+
this.form.disable();
|
|
6662
|
+
}
|
|
6663
|
+
else {
|
|
6664
|
+
this.form.enable();
|
|
6665
|
+
}
|
|
6666
|
+
};
|
|
6667
|
+
ConfigurableInputComponent.prototype.writeValue = function (value) {
|
|
6668
|
+
if (value) {
|
|
6669
|
+
this.form.patchValue(value);
|
|
6670
|
+
}
|
|
6671
|
+
};
|
|
6672
|
+
ConfigurableInputComponent.prototype.trackByName = function (index, arg) {
|
|
6673
|
+
return arg.name;
|
|
6674
|
+
};
|
|
6675
|
+
ConfigurableInputComponent.prototype.getArgDef = function (arg) {
|
|
6676
|
+
var _a;
|
|
6677
|
+
return (_a = this.operationDefinition) === null || _a === void 0 ? void 0 : _a.args.find(function (a) { return a.name === arg.name; });
|
|
6678
|
+
};
|
|
6679
|
+
ConfigurableInputComponent.prototype.createForm = function () {
|
|
6680
|
+
var e_1, _c;
|
|
6681
|
+
var _this = this;
|
|
6682
|
+
var _a, _b;
|
|
6683
|
+
if (!this.operation) {
|
|
6684
|
+
return;
|
|
6685
|
+
}
|
|
6686
|
+
if (this.subscription) {
|
|
6687
|
+
this.subscription.unsubscribe();
|
|
6688
|
+
}
|
|
6689
|
+
this.form = new forms.FormGroup({});
|
|
6690
|
+
this.form.__id = Math.random().toString(36).substr(10);
|
|
6691
|
+
if (this.operation.args) {
|
|
6692
|
+
var _loop_1 = function (arg) {
|
|
6693
|
+
var value = (_b = this_1.operation.args.find(function (a) { return a.name === arg.name; })) === null || _b === void 0 ? void 0 : _b.value;
|
|
6694
|
+
if (value === undefined) {
|
|
6695
|
+
value = getDefaultConfigArgValue(arg);
|
|
6696
|
+
}
|
|
6697
|
+
var validators = arg.list ? undefined : arg.required ? forms.Validators.required : undefined;
|
|
6698
|
+
this_1.form.addControl(arg.name, new forms.FormControl(value, validators));
|
|
6699
|
+
};
|
|
6700
|
+
var this_1 = this;
|
|
6701
|
+
try {
|
|
6702
|
+
for (var _d = __values(((_a = this.operationDefinition) === null || _a === void 0 ? void 0 : _a.args) || []), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
6703
|
+
var arg = _e.value;
|
|
6704
|
+
_loop_1(arg);
|
|
6705
|
+
}
|
|
6706
|
+
}
|
|
6707
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
6708
|
+
finally {
|
|
6709
|
+
try {
|
|
6710
|
+
if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
|
|
6711
|
+
}
|
|
6712
|
+
finally { if (e_1) throw e_1.error; }
|
|
6713
|
+
}
|
|
6714
|
+
}
|
|
6715
|
+
this.subscription = this.form.valueChanges.subscribe(function (value) {
|
|
6716
|
+
if (_this.onChange) {
|
|
6717
|
+
_this.onChange({
|
|
6718
|
+
code: _this.operation && _this.operation.code,
|
|
6719
|
+
args: value,
|
|
6720
|
+
});
|
|
6721
|
+
}
|
|
6722
|
+
if (_this.onTouch) {
|
|
6723
|
+
_this.onTouch();
|
|
6724
|
+
}
|
|
6725
|
+
});
|
|
6726
|
+
};
|
|
6727
|
+
ConfigurableInputComponent.prototype.validate = function (c) {
|
|
6728
|
+
if (this.form.invalid) {
|
|
6729
|
+
return {
|
|
6730
|
+
required: true,
|
|
6731
|
+
};
|
|
6732
|
+
}
|
|
6733
|
+
return null;
|
|
6734
|
+
};
|
|
6735
|
+
return ConfigurableInputComponent;
|
|
6619
6736
|
}());
|
|
6620
|
-
|
|
6621
|
-
NumberFormInputComponent.decorators = [
|
|
6737
|
+
ConfigurableInputComponent.decorators = [
|
|
6622
6738
|
{ type: i0.Component, args: [{
|
|
6623
|
-
selector: 'vdr-
|
|
6624
|
-
template: "<
|
|
6739
|
+
selector: 'vdr-configurable-input',
|
|
6740
|
+
template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"btn btn-sm btn-link btn-warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
6625
6741
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6626
|
-
|
|
6742
|
+
providers: [
|
|
6743
|
+
{
|
|
6744
|
+
provide: forms.NG_VALUE_ACCESSOR,
|
|
6745
|
+
useExisting: ConfigurableInputComponent,
|
|
6746
|
+
multi: true,
|
|
6747
|
+
},
|
|
6748
|
+
{
|
|
6749
|
+
provide: forms.NG_VALIDATORS,
|
|
6750
|
+
useExisting: i0.forwardRef(function () { return ConfigurableInputComponent; }),
|
|
6751
|
+
multi: true,
|
|
6752
|
+
},
|
|
6753
|
+
],
|
|
6754
|
+
styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-right:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"]
|
|
6627
6755
|
},] }
|
|
6628
6756
|
];
|
|
6629
|
-
|
|
6630
|
-
|
|
6757
|
+
ConfigurableInputComponent.propDecorators = {
|
|
6758
|
+
operation: [{ type: i0.Input }],
|
|
6759
|
+
operationDefinition: [{ type: i0.Input }],
|
|
6760
|
+
readonly: [{ type: i0.Input }],
|
|
6761
|
+
removable: [{ type: i0.Input }],
|
|
6762
|
+
position: [{ type: i0.Input }],
|
|
6763
|
+
remove: [{ type: i0.Output }]
|
|
6631
6764
|
};
|
|
6632
6765
|
|
|
6633
6766
|
/**
|
|
6634
6767
|
* @description
|
|
6635
|
-
*
|
|
6768
|
+
* A special input used to display the "Combination mode" AND/OR toggle.
|
|
6636
6769
|
*
|
|
6637
6770
|
* @docsCategory custom-input-components
|
|
6638
6771
|
* @docsPage default-inputs
|
|
6639
6772
|
*/
|
|
6640
|
-
var
|
|
6641
|
-
function
|
|
6773
|
+
var CombinationModeFormInputComponent = /** @class */ (function () {
|
|
6774
|
+
function CombinationModeFormInputComponent(configurableInputComponent) {
|
|
6775
|
+
this.configurableInputComponent = configurableInputComponent;
|
|
6642
6776
|
}
|
|
6643
|
-
|
|
6777
|
+
CombinationModeFormInputComponent.prototype.ngOnInit = function () {
|
|
6778
|
+
var _this = this;
|
|
6779
|
+
var selectable$ = this.configurableInputComponent
|
|
6780
|
+
? this.configurableInputComponent.positionChange$.pipe(operators.map(function (position) { return 0 < position; }))
|
|
6781
|
+
: rxjs.of(true);
|
|
6782
|
+
this.selectable$ = selectable$.pipe(operators.tap(function (selectable) {
|
|
6783
|
+
if (!selectable) {
|
|
6784
|
+
_this.formControl.setValue(true, { emitEvent: false });
|
|
6785
|
+
}
|
|
6786
|
+
}));
|
|
6787
|
+
};
|
|
6788
|
+
CombinationModeFormInputComponent.prototype.setCombinationModeAnd = function () {
|
|
6789
|
+
this.formControl.setValue(true);
|
|
6790
|
+
};
|
|
6791
|
+
CombinationModeFormInputComponent.prototype.setCombinationModeOr = function () {
|
|
6792
|
+
this.formControl.setValue(false);
|
|
6793
|
+
};
|
|
6794
|
+
return CombinationModeFormInputComponent;
|
|
6644
6795
|
}());
|
|
6645
|
-
|
|
6646
|
-
|
|
6796
|
+
CombinationModeFormInputComponent.id = 'combination-mode-form-input';
|
|
6797
|
+
CombinationModeFormInputComponent.decorators = [
|
|
6647
6798
|
{ type: i0.Component, args: [{
|
|
6648
|
-
selector: 'vdr-
|
|
6649
|
-
template: "<
|
|
6799
|
+
selector: 'vdr-combination-mode-form-input',
|
|
6800
|
+
template: "<ng-container *ngIf=\"selectable$ | async; else default\">\r\n <div class=\"btn-group btn-outline-primary btn-sm mode-select\">\r\n <button\r\n class=\"btn\"\r\n (click)=\"setCombinationModeAnd()\"\r\n [class.btn-primary]=\"formControl.value === true\"\r\n >\r\n {{ 'common.boolean-and' | translate }}\r\n </button>\r\n <button\r\n class=\"btn\"\r\n (click)=\"setCombinationModeOr()\"\r\n [class.btn-primary]=\"formControl.value === false\"\r\n >\r\n {{ 'common.boolean-or' | translate }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n<ng-template #default>\r\n <small>{{ 'common.not-applicable' | translate }}</small>\r\n</ng-template>\r\n",
|
|
6650
6801
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6651
|
-
styles: [""]
|
|
6802
|
+
styles: [".mode-select{text-transform:uppercase}\n"]
|
|
6652
6803
|
},] }
|
|
6653
|
-
];
|
|
6804
|
+
];
|
|
6805
|
+
CombinationModeFormInputComponent.ctorParameters = function () { return [
|
|
6806
|
+
{ type: ConfigurableInputComponent, decorators: [{ type: i0.Optional }] }
|
|
6807
|
+
]; };
|
|
6654
6808
|
|
|
6655
6809
|
/**
|
|
6656
6810
|
* @description
|
|
6657
|
-
*
|
|
6658
|
-
* Should be used with `ID` type **list** fields which represent ProductVariant IDs.
|
|
6811
|
+
* An input for monetary values. Should be used with `int` type fields.
|
|
6659
6812
|
*
|
|
6660
6813
|
* @docsCategory custom-input-components
|
|
6661
6814
|
* @docsPage default-inputs
|
|
6662
6815
|
*/
|
|
6663
|
-
var
|
|
6664
|
-
function
|
|
6816
|
+
var CurrencyFormInputComponent = /** @class */ (function () {
|
|
6817
|
+
function CurrencyFormInputComponent(dataService) {
|
|
6665
6818
|
this.dataService = dataService;
|
|
6666
|
-
this.
|
|
6819
|
+
this.currencyCode$ = this.dataService.settings
|
|
6820
|
+
.getActiveChannel()
|
|
6821
|
+
.mapStream(function (data) { return data.activeChannel.currencyCode; });
|
|
6667
6822
|
}
|
|
6668
|
-
|
|
6669
|
-
var _this = this;
|
|
6670
|
-
this.formControl.setValidators([
|
|
6671
|
-
function (control) {
|
|
6672
|
-
if (!control.value || !control.value.length) {
|
|
6673
|
-
return {
|
|
6674
|
-
atLeastOne: { length: control.value.length },
|
|
6675
|
-
};
|
|
6676
|
-
}
|
|
6677
|
-
return null;
|
|
6678
|
-
},
|
|
6679
|
-
]);
|
|
6680
|
-
this.selection$ = this.formControl.valueChanges.pipe(operators.startWith(this.formControl.value), operators.switchMap(function (value) {
|
|
6681
|
-
if (Array.isArray(value) && 0 < value.length) {
|
|
6682
|
-
return rxjs.forkJoin(value.map(function (id) { return _this.dataService.product
|
|
6683
|
-
.getProductVariant(id)
|
|
6684
|
-
.mapSingle(function (data) { return data.productVariant; }); }));
|
|
6685
|
-
}
|
|
6686
|
-
return rxjs.of([]);
|
|
6687
|
-
}), operators.map(function (variants) { return variants.filter(sharedUtils.notNullOrUndefined); }));
|
|
6688
|
-
};
|
|
6689
|
-
ProductSelectorFormInputComponent.prototype.addProductVariant = function (product) {
|
|
6690
|
-
var value = this.formControl.value;
|
|
6691
|
-
this.formControl.setValue(__spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(value)), [product.productVariantId])))));
|
|
6692
|
-
};
|
|
6693
|
-
ProductSelectorFormInputComponent.prototype.removeProductVariant = function (id) {
|
|
6694
|
-
var value = this.formControl.value;
|
|
6695
|
-
this.formControl.setValue(value.filter(function (_id) { return _id !== id; }));
|
|
6696
|
-
};
|
|
6697
|
-
return ProductSelectorFormInputComponent;
|
|
6823
|
+
return CurrencyFormInputComponent;
|
|
6698
6824
|
}());
|
|
6699
|
-
|
|
6700
|
-
|
|
6825
|
+
CurrencyFormInputComponent.id = 'currency-form-input';
|
|
6826
|
+
CurrencyFormInputComponent.decorators = [
|
|
6701
6827
|
{ type: i0.Component, args: [{
|
|
6702
|
-
selector: 'vdr-
|
|
6703
|
-
template: "<
|
|
6828
|
+
selector: 'vdr-currency-form-input',
|
|
6829
|
+
template: "<vdr-currency-input\r\n [formControl]=\"formControl\"\r\n [readonly]=\"readonly\"\r\n [currencyCode]=\"currencyCode$ | async\"\r\n></vdr-currency-input>\r\n",
|
|
6704
6830
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6705
|
-
styles: ["
|
|
6831
|
+
styles: [""]
|
|
6706
6832
|
},] }
|
|
6707
6833
|
];
|
|
6708
|
-
|
|
6834
|
+
CurrencyFormInputComponent.ctorParameters = function () { return [
|
|
6709
6835
|
{ type: DataService }
|
|
6710
|
-
]; };
|
|
6836
|
+
]; };
|
|
6837
|
+
CurrencyFormInputComponent.propDecorators = {
|
|
6838
|
+
readonly: [{ type: i0.Input }]
|
|
6839
|
+
};
|
|
6711
6840
|
|
|
6712
6841
|
/**
|
|
6713
6842
|
* @description
|
|
6714
|
-
*
|
|
6715
|
-
*
|
|
6716
|
-
* implementation will need to be defined. See {@link registerFormInputComponent}.
|
|
6843
|
+
* Allows the selection of a Customer via an autocomplete select input.
|
|
6844
|
+
* Should be used with `ID` type fields which represent Customer IDs.
|
|
6717
6845
|
*
|
|
6718
6846
|
* @docsCategory custom-input-components
|
|
6719
6847
|
* @docsPage default-inputs
|
|
6720
6848
|
*/
|
|
6721
|
-
var
|
|
6722
|
-
function
|
|
6849
|
+
var CustomerGroupFormInputComponent = /** @class */ (function () {
|
|
6850
|
+
function CustomerGroupFormInputComponent(dataService) {
|
|
6851
|
+
this.dataService = dataService;
|
|
6723
6852
|
}
|
|
6724
|
-
|
|
6853
|
+
CustomerGroupFormInputComponent.prototype.ngOnInit = function () {
|
|
6854
|
+
this.customerGroups$ = this.dataService.customer
|
|
6855
|
+
.getCustomerGroupList({
|
|
6856
|
+
take: 1000,
|
|
6857
|
+
})
|
|
6858
|
+
.mapSingle(function (res) { return res.customerGroups.items; })
|
|
6859
|
+
.pipe(operators.startWith([]));
|
|
6860
|
+
};
|
|
6861
|
+
CustomerGroupFormInputComponent.prototype.selectGroup = function (group) {
|
|
6862
|
+
this.formControl.setValue(group.id);
|
|
6863
|
+
};
|
|
6864
|
+
return CustomerGroupFormInputComponent;
|
|
6725
6865
|
}());
|
|
6726
|
-
|
|
6727
|
-
|
|
6866
|
+
CustomerGroupFormInputComponent.id = 'customer-group-form-input';
|
|
6867
|
+
CustomerGroupFormInputComponent.decorators = [
|
|
6728
6868
|
{ type: i0.Component, args: [{
|
|
6729
|
-
selector: 'vdr-
|
|
6730
|
-
template: "<
|
|
6869
|
+
selector: 'vdr-customer-group-form-input',
|
|
6870
|
+
template: "<ng-select\r\n [items]=\"customerGroups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"false\"\r\n bindValue=\"id\"\r\n [clearable]=\"true\"\r\n [searchable]=\"false\"\r\n [ngModel]=\"formControl.value\"\r\n (change)=\"selectGroup($event)\"\r\n>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n</ng-select>\r\n",
|
|
6731
6871
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6732
|
-
styles: ["
|
|
6872
|
+
styles: [""]
|
|
6733
6873
|
},] }
|
|
6734
6874
|
];
|
|
6735
|
-
|
|
6875
|
+
CustomerGroupFormInputComponent.ctorParameters = function () { return [
|
|
6876
|
+
{ type: DataService }
|
|
6877
|
+
]; };
|
|
6878
|
+
CustomerGroupFormInputComponent.propDecorators = {
|
|
6736
6879
|
readonly: [{ type: i0.Input }]
|
|
6737
6880
|
};
|
|
6738
6881
|
|
|
6739
6882
|
/**
|
|
6740
6883
|
* @description
|
|
6741
|
-
*
|
|
6884
|
+
* Allows selection of a datetime. Default input for `datetime` type fields.
|
|
6742
6885
|
*
|
|
6743
6886
|
* @docsCategory custom-input-components
|
|
6744
6887
|
* @docsPage default-inputs
|
|
6745
6888
|
*/
|
|
6746
|
-
var
|
|
6747
|
-
function
|
|
6889
|
+
var DateFormInputComponent = /** @class */ (function () {
|
|
6890
|
+
function DateFormInputComponent() {
|
|
6748
6891
|
}
|
|
6749
|
-
|
|
6892
|
+
Object.defineProperty(DateFormInputComponent.prototype, "min", {
|
|
6893
|
+
get: function () {
|
|
6894
|
+
var _a;
|
|
6895
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.min) || this.config.min;
|
|
6896
|
+
},
|
|
6897
|
+
enumerable: false,
|
|
6898
|
+
configurable: true
|
|
6899
|
+
});
|
|
6900
|
+
Object.defineProperty(DateFormInputComponent.prototype, "max", {
|
|
6901
|
+
get: function () {
|
|
6902
|
+
var _a;
|
|
6903
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.max) || this.config.max;
|
|
6904
|
+
},
|
|
6905
|
+
enumerable: false,
|
|
6906
|
+
configurable: true
|
|
6907
|
+
});
|
|
6908
|
+
Object.defineProperty(DateFormInputComponent.prototype, "yearRange", {
|
|
6909
|
+
get: function () {
|
|
6910
|
+
var _a;
|
|
6911
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.yearRange) || this.config.yearRange;
|
|
6912
|
+
},
|
|
6913
|
+
enumerable: false,
|
|
6914
|
+
configurable: true
|
|
6915
|
+
});
|
|
6916
|
+
return DateFormInputComponent;
|
|
6750
6917
|
}());
|
|
6751
|
-
|
|
6752
|
-
|
|
6918
|
+
DateFormInputComponent.id = 'date-form-input';
|
|
6919
|
+
DateFormInputComponent.decorators = [
|
|
6753
6920
|
{ type: i0.Component, args: [{
|
|
6754
|
-
selector: 'vdr-
|
|
6755
|
-
template: "<vdr-
|
|
6921
|
+
selector: 'vdr-date-form-input',
|
|
6922
|
+
template: "<vdr-datetime-picker\r\n [formControl]=\"formControl\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [yearRange]=\"yearRange\"\r\n [readonly]=\"readonly\"\r\n>\r\n</vdr-datetime-picker>\r\n",
|
|
6756
6923
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6757
|
-
styles: ["
|
|
6924
|
+
styles: [""]
|
|
6758
6925
|
},] }
|
|
6759
|
-
];
|
|
6926
|
+
];
|
|
6927
|
+
DateFormInputComponent.propDecorators = {
|
|
6928
|
+
readonly: [{ type: i0.Input }]
|
|
6929
|
+
};
|
|
6760
6930
|
|
|
6761
6931
|
/**
|
|
6762
6932
|
* @description
|
|
6763
|
-
*
|
|
6764
|
-
* `
|
|
6933
|
+
* Allows the selection of multiple FacetValues via an autocomplete select input.
|
|
6934
|
+
* Should be used with `ID` type **list** fields which represent FacetValue IDs.
|
|
6765
6935
|
*
|
|
6766
6936
|
* @docsCategory custom-input-components
|
|
6767
6937
|
* @docsPage default-inputs
|
|
6768
6938
|
*/
|
|
6769
|
-
var
|
|
6770
|
-
function
|
|
6939
|
+
var FacetValueFormInputComponent = /** @class */ (function () {
|
|
6940
|
+
function FacetValueFormInputComponent(dataService) {
|
|
6941
|
+
this.dataService = dataService;
|
|
6942
|
+
this.isListInput = true;
|
|
6771
6943
|
}
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
});
|
|
6780
|
-
return SelectFormInputComponent;
|
|
6944
|
+
FacetValueFormInputComponent.prototype.ngOnInit = function () {
|
|
6945
|
+
this.facets$ = this.dataService.facet
|
|
6946
|
+
.getAllFacets()
|
|
6947
|
+
.mapSingle(function (data) { return data.facets.items; })
|
|
6948
|
+
.pipe(operators.shareReplay(1));
|
|
6949
|
+
};
|
|
6950
|
+
return FacetValueFormInputComponent;
|
|
6781
6951
|
}());
|
|
6782
|
-
|
|
6783
|
-
|
|
6952
|
+
FacetValueFormInputComponent.id = 'facet-value-form-input';
|
|
6953
|
+
FacetValueFormInputComponent.decorators = [
|
|
6784
6954
|
{ type: i0.Component, args: [{
|
|
6785
|
-
selector: 'vdr-
|
|
6786
|
-
template: "<
|
|
6955
|
+
selector: 'vdr-facet-value-form-input',
|
|
6956
|
+
template: "<vdr-facet-value-selector\r\n *ngIf=\"facets$ | async as facets\"\r\n [readonly]=\"readonly\"\r\n [facets]=\"facets\"\r\n [formControl]=\"formControl\"\r\n></vdr-facet-value-selector>\r\n",
|
|
6787
6957
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6788
|
-
styles: ["
|
|
6958
|
+
styles: [""]
|
|
6789
6959
|
},] }
|
|
6790
6960
|
];
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
};
|
|
6961
|
+
FacetValueFormInputComponent.ctorParameters = function () { return [
|
|
6962
|
+
{ type: DataService }
|
|
6963
|
+
]; };
|
|
6794
6964
|
|
|
6795
6965
|
/**
|
|
6796
6966
|
* @description
|
|
6797
|
-
*
|
|
6967
|
+
* Displays a number input. Default input for `int` and `float` type fields.
|
|
6798
6968
|
*
|
|
6799
6969
|
* @docsCategory custom-input-components
|
|
6800
6970
|
* @docsPage default-inputs
|
|
6801
6971
|
*/
|
|
6802
|
-
var
|
|
6803
|
-
function
|
|
6972
|
+
var NumberFormInputComponent = /** @class */ (function () {
|
|
6973
|
+
function NumberFormInputComponent() {
|
|
6804
6974
|
}
|
|
6805
|
-
Object.defineProperty(
|
|
6975
|
+
Object.defineProperty(NumberFormInputComponent.prototype, "prefix", {
|
|
6806
6976
|
get: function () {
|
|
6807
6977
|
var _a;
|
|
6808
6978
|
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.prefix) || this.config.prefix;
|
|
@@ -6810,7 +6980,7 @@
|
|
|
6810
6980
|
enumerable: false,
|
|
6811
6981
|
configurable: true
|
|
6812
6982
|
});
|
|
6813
|
-
Object.defineProperty(
|
|
6983
|
+
Object.defineProperty(NumberFormInputComponent.prototype, "suffix", {
|
|
6814
6984
|
get: function () {
|
|
6815
6985
|
var _a;
|
|
6816
6986
|
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.suffix) || this.config.suffix;
|
|
@@ -6818,488 +6988,969 @@
|
|
|
6818
6988
|
enumerable: false,
|
|
6819
6989
|
configurable: true
|
|
6820
6990
|
});
|
|
6821
|
-
|
|
6991
|
+
Object.defineProperty(NumberFormInputComponent.prototype, "min", {
|
|
6992
|
+
get: function () {
|
|
6993
|
+
var _a;
|
|
6994
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.min) || this.config.min;
|
|
6995
|
+
},
|
|
6996
|
+
enumerable: false,
|
|
6997
|
+
configurable: true
|
|
6998
|
+
});
|
|
6999
|
+
Object.defineProperty(NumberFormInputComponent.prototype, "max", {
|
|
7000
|
+
get: function () {
|
|
7001
|
+
var _a;
|
|
7002
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.max) || this.config.max;
|
|
7003
|
+
},
|
|
7004
|
+
enumerable: false,
|
|
7005
|
+
configurable: true
|
|
7006
|
+
});
|
|
7007
|
+
Object.defineProperty(NumberFormInputComponent.prototype, "step", {
|
|
7008
|
+
get: function () {
|
|
7009
|
+
var _a;
|
|
7010
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.step) || this.config.step;
|
|
7011
|
+
},
|
|
7012
|
+
enumerable: false,
|
|
7013
|
+
configurable: true
|
|
7014
|
+
});
|
|
7015
|
+
return NumberFormInputComponent;
|
|
6822
7016
|
}());
|
|
6823
|
-
|
|
6824
|
-
|
|
7017
|
+
NumberFormInputComponent.id = 'number-form-input';
|
|
7018
|
+
NumberFormInputComponent.decorators = [
|
|
6825
7019
|
{ type: i0.Component, args: [{
|
|
6826
|
-
selector: 'vdr-
|
|
6827
|
-
template: "<vdr-affixed-input\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n>\r\n <input
|
|
7020
|
+
selector: 'vdr-number-form-input',
|
|
7021
|
+
template: "<vdr-affixed-input\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n>\r\n <input\r\n type=\"number\"\r\n [readonly]=\"readonly\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n [formControl]=\"formControl\"\r\n />\r\n</vdr-affixed-input>\r\n",
|
|
6828
7022
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6829
|
-
styles: ["
|
|
7023
|
+
styles: [""]
|
|
6830
7024
|
},] }
|
|
6831
|
-
];
|
|
7025
|
+
];
|
|
7026
|
+
NumberFormInputComponent.propDecorators = {
|
|
7027
|
+
readonly: [{ type: i0.Input }]
|
|
7028
|
+
};
|
|
6832
7029
|
|
|
6833
7030
|
/**
|
|
6834
7031
|
* @description
|
|
6835
|
-
*
|
|
7032
|
+
* Displays a password text input. Should be used with `string` type fields.
|
|
6836
7033
|
*
|
|
6837
7034
|
* @docsCategory custom-input-components
|
|
6838
7035
|
* @docsPage default-inputs
|
|
6839
7036
|
*/
|
|
6840
|
-
var
|
|
6841
|
-
function
|
|
7037
|
+
var PasswordFormInputComponent = /** @class */ (function () {
|
|
7038
|
+
function PasswordFormInputComponent() {
|
|
6842
7039
|
}
|
|
6843
|
-
|
|
6844
|
-
get: function () {
|
|
6845
|
-
return this.config.spellcheck === true;
|
|
6846
|
-
},
|
|
6847
|
-
enumerable: false,
|
|
6848
|
-
configurable: true
|
|
6849
|
-
});
|
|
6850
|
-
return TextareaFormInputComponent;
|
|
7040
|
+
return PasswordFormInputComponent;
|
|
6851
7041
|
}());
|
|
6852
|
-
|
|
6853
|
-
|
|
7042
|
+
PasswordFormInputComponent.id = 'password-form-input';
|
|
7043
|
+
PasswordFormInputComponent.decorators = [
|
|
6854
7044
|
{ type: i0.Component, args: [{
|
|
6855
|
-
selector: 'vdr-
|
|
6856
|
-
template: "<
|
|
7045
|
+
selector: 'vdr-password-form-input',
|
|
7046
|
+
template: "<input\r\n type=\"password\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"formControl\"\r\n/>\r\n",
|
|
6857
7047
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6858
|
-
styles: ["
|
|
7048
|
+
styles: [""]
|
|
6859
7049
|
},] }
|
|
6860
7050
|
];
|
|
6861
7051
|
|
|
6862
|
-
var defaultFormInputs = [
|
|
6863
|
-
BooleanFormInputComponent,
|
|
6864
|
-
CurrencyFormInputComponent,
|
|
6865
|
-
DateFormInputComponent,
|
|
6866
|
-
FacetValueFormInputComponent,
|
|
6867
|
-
NumberFormInputComponent,
|
|
6868
|
-
SelectFormInputComponent,
|
|
6869
|
-
TextFormInputComponent,
|
|
6870
|
-
ProductSelectorFormInputComponent,
|
|
6871
|
-
CustomerGroupFormInputComponent,
|
|
6872
|
-
PasswordFormInputComponent,
|
|
6873
|
-
RelationFormInputComponent,
|
|
6874
|
-
TextareaFormInputComponent,
|
|
6875
|
-
RichTextFormInputComponent,
|
|
6876
|
-
JsonEditorFormInputComponent,
|
|
6877
|
-
];
|
|
6878
7052
|
/**
|
|
6879
7053
|
* @description
|
|
6880
|
-
*
|
|
6881
|
-
*
|
|
6882
|
-
* a custom field.
|
|
6883
|
-
*
|
|
6884
|
-
* @example
|
|
6885
|
-
* ```TypeScript
|
|
6886
|
-
* \@NgModule({
|
|
6887
|
-
* imports: [SharedModule],
|
|
6888
|
-
* declarations: [MyCustomFieldControl],
|
|
6889
|
-
* providers: [
|
|
6890
|
-
* registerFormInputComponent('my-custom-input', MyCustomFieldControl),
|
|
6891
|
-
* ],
|
|
6892
|
-
* })
|
|
6893
|
-
* export class MyUiExtensionModule {}
|
|
6894
|
-
* ```
|
|
6895
|
-
*
|
|
6896
|
-
* This input component can then be used in a custom field:
|
|
6897
|
-
*
|
|
6898
|
-
* @example
|
|
6899
|
-
* ```TypeScript
|
|
6900
|
-
* const config = {
|
|
6901
|
-
* // ...
|
|
6902
|
-
* customFields: {
|
|
6903
|
-
* ProductVariant: [
|
|
6904
|
-
* {
|
|
6905
|
-
* name: 'rrp',
|
|
6906
|
-
* type: 'int',
|
|
6907
|
-
* ui: { component: 'my-custom-input' },
|
|
6908
|
-
* },
|
|
6909
|
-
* ]
|
|
6910
|
-
* }
|
|
6911
|
-
* }
|
|
6912
|
-
* ```
|
|
6913
|
-
*
|
|
6914
|
-
* or with an argument of a {@link ConfigurableOperationDef}:
|
|
6915
|
-
*
|
|
6916
|
-
* @example
|
|
6917
|
-
* ```TypeScript
|
|
6918
|
-
* args: {
|
|
6919
|
-
* rrp: { type: 'int', ui: { component: 'my-custom-input' } },
|
|
6920
|
-
* }
|
|
6921
|
-
* ```
|
|
6922
|
-
*
|
|
6923
|
-
* @docsCategory custom-input-components
|
|
7054
|
+
* A helper class used to manage selection of list items. Supports multiple selection via
|
|
7055
|
+
* cmd/ctrl/shift key.
|
|
6924
7056
|
*/
|
|
6925
|
-
function
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
7057
|
+
var SelectionManager = /** @class */ (function () {
|
|
7058
|
+
function SelectionManager(options) {
|
|
7059
|
+
this.options = options;
|
|
7060
|
+
this._selection = [];
|
|
7061
|
+
this.items = [];
|
|
7062
|
+
}
|
|
7063
|
+
Object.defineProperty(SelectionManager.prototype, "selection", {
|
|
7064
|
+
get: function () {
|
|
7065
|
+
return this._selection;
|
|
7066
|
+
},
|
|
7067
|
+
enumerable: false,
|
|
7068
|
+
configurable: true
|
|
7069
|
+
});
|
|
7070
|
+
SelectionManager.prototype.setMultiSelect = function (isMultiSelect) {
|
|
7071
|
+
this.options.multiSelect = isMultiSelect;
|
|
6933
7072
|
};
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
* @description
|
|
6937
|
-
* **Deprecated** use `registerFormInputComponent()` in combination with the customField `ui` config instead.
|
|
6938
|
-
*
|
|
6939
|
-
* Registers a custom component to act as the form input control for the given custom field.
|
|
6940
|
-
* This should be used in the NgModule `providers` array of your ui extension module.
|
|
6941
|
-
*
|
|
6942
|
-
* @example
|
|
6943
|
-
* ```TypeScript
|
|
6944
|
-
* \@NgModule({
|
|
6945
|
-
* imports: [SharedModule],
|
|
6946
|
-
* declarations: [MyCustomFieldControl],
|
|
6947
|
-
* providers: [
|
|
6948
|
-
* registerCustomFieldComponent('Product', 'someCustomField', MyCustomFieldControl),
|
|
6949
|
-
* ],
|
|
6950
|
-
* })
|
|
6951
|
-
* export class MyUiExtensionModule {}
|
|
6952
|
-
* ```
|
|
6953
|
-
*
|
|
6954
|
-
* @deprecated use `registerFormInputComponent()` in combination with the customField `ui` config instead.
|
|
6955
|
-
*
|
|
6956
|
-
* @docsCategory custom-input-components
|
|
6957
|
-
*/
|
|
6958
|
-
function registerCustomFieldComponent(entity, fieldName, component) {
|
|
6959
|
-
return {
|
|
6960
|
-
provide: i0.APP_INITIALIZER,
|
|
6961
|
-
multi: true,
|
|
6962
|
-
useFactory: function (customFieldComponentService) { return function () {
|
|
6963
|
-
customFieldComponentService.registerCustomFieldComponent(entity, fieldName, component);
|
|
6964
|
-
}; },
|
|
6965
|
-
deps: [CustomFieldComponentService],
|
|
7073
|
+
SelectionManager.prototype.setCurrentItems = function (items) {
|
|
7074
|
+
this.items = items;
|
|
6966
7075
|
};
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
7076
|
+
SelectionManager.prototype.toggleSelection = function (item, event) {
|
|
7077
|
+
var _a;
|
|
7078
|
+
var _this = this;
|
|
7079
|
+
var _b = this.options, multiSelect = _b.multiSelect, itemsAreEqual = _b.itemsAreEqual, additiveMode = _b.additiveMode;
|
|
7080
|
+
var index = this._selection.findIndex(function (a) { return itemsAreEqual(a, item); });
|
|
7081
|
+
if (multiSelect && (event === null || event === void 0 ? void 0 : event.shiftKey) && 1 <= this._selection.length) {
|
|
7082
|
+
var lastSelection_1 = this._selection[this._selection.length - 1];
|
|
7083
|
+
var lastSelectionIndex = this.items.findIndex(function (a) { return itemsAreEqual(a, lastSelection_1); });
|
|
7084
|
+
var currentIndex = this.items.findIndex(function (a) { return itemsAreEqual(a, item); });
|
|
7085
|
+
var start = currentIndex < lastSelectionIndex ? currentIndex : lastSelectionIndex;
|
|
7086
|
+
var end = currentIndex > lastSelectionIndex ? currentIndex + 1 : lastSelectionIndex;
|
|
7087
|
+
(_a = this._selection).push.apply(_a, __spreadArray([], __read(this.items.slice(start, end).filter(function (a) { return !_this._selection.find(function (s) { return itemsAreEqual(a, s); }); }))));
|
|
7088
|
+
}
|
|
7089
|
+
else if (index === -1) {
|
|
7090
|
+
if (multiSelect && ((event === null || event === void 0 ? void 0 : event.ctrlKey) || (event === null || event === void 0 ? void 0 : event.shiftKey) || additiveMode)) {
|
|
7091
|
+
this._selection.push(item);
|
|
7092
|
+
}
|
|
7093
|
+
else {
|
|
7094
|
+
this._selection = [item];
|
|
7095
|
+
}
|
|
7096
|
+
}
|
|
7097
|
+
else {
|
|
7098
|
+
if (multiSelect && (event === null || event === void 0 ? void 0 : event.ctrlKey)) {
|
|
7099
|
+
this._selection.splice(index, 1);
|
|
7100
|
+
}
|
|
7101
|
+
else if (1 < this._selection.length && !additiveMode) {
|
|
7102
|
+
this._selection = [item];
|
|
7103
|
+
}
|
|
7104
|
+
else {
|
|
7105
|
+
this._selection.splice(index, 1);
|
|
7106
|
+
}
|
|
7107
|
+
}
|
|
7108
|
+
// Make the selection mutable
|
|
7109
|
+
this._selection = this._selection.map(function (x) { return (Object.assign({}, x)); });
|
|
7110
|
+
};
|
|
7111
|
+
SelectionManager.prototype.selectMultiple = function (items) {
|
|
7112
|
+
this._selection = items;
|
|
7113
|
+
};
|
|
7114
|
+
SelectionManager.prototype.isSelected = function (item) {
|
|
7115
|
+
var _this = this;
|
|
7116
|
+
return !!this._selection.find(function (a) { return _this.options.itemsAreEqual(a, item); });
|
|
7117
|
+
};
|
|
7118
|
+
SelectionManager.prototype.lastSelected = function () {
|
|
7119
|
+
return this._selection[this._selection.length - 1];
|
|
7120
|
+
};
|
|
7121
|
+
return SelectionManager;
|
|
7122
|
+
}());
|
|
6974
7123
|
|
|
6975
|
-
var
|
|
6976
|
-
function
|
|
6977
|
-
this.navBuilderService = navBuilderService;
|
|
6978
|
-
this.route = route;
|
|
7124
|
+
var ProductMultiSelectorDialogComponent = /** @class */ (function () {
|
|
7125
|
+
function ProductMultiSelectorDialogComponent(dataService, changeDetector) {
|
|
6979
7126
|
this.dataService = dataService;
|
|
6980
|
-
this.
|
|
6981
|
-
this.
|
|
7127
|
+
this.changeDetector = changeDetector;
|
|
7128
|
+
this.mode = 'product';
|
|
7129
|
+
this.initialSelectionIds = [];
|
|
7130
|
+
this.searchTerm$ = new rxjs.BehaviorSubject('');
|
|
7131
|
+
this.searchFacetValueIds$ = new rxjs.BehaviorSubject([]);
|
|
7132
|
+
this.paginationConfig = {
|
|
7133
|
+
currentPage: 1,
|
|
7134
|
+
itemsPerPage: 25,
|
|
7135
|
+
totalItems: 1,
|
|
7136
|
+
};
|
|
7137
|
+
this.paginationConfig$ = new rxjs.BehaviorSubject(this.paginationConfig);
|
|
6982
7138
|
}
|
|
6983
|
-
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
}
|
|
6993
|
-
|
|
6994
|
-
|
|
6995
|
-
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7139
|
+
ProductMultiSelectorDialogComponent.prototype.ngOnInit = function () {
|
|
7140
|
+
var _this = this;
|
|
7141
|
+
var idFn = this.mode === 'product'
|
|
7142
|
+
? function (a, b) { return a.productId === b.productId; }
|
|
7143
|
+
: function (a, b) { return a.productVariantId === b.productVariantId; };
|
|
7144
|
+
this.selectionManager = new SelectionManager({
|
|
7145
|
+
multiSelect: true,
|
|
7146
|
+
itemsAreEqual: idFn,
|
|
7147
|
+
additiveMode: true,
|
|
7148
|
+
});
|
|
7149
|
+
var searchQueryResult = this.dataService.product.searchProducts('', this.paginationConfig.itemsPerPage, 0);
|
|
7150
|
+
var result$ = rxjs.combineLatest(this.searchTerm$, this.searchFacetValueIds$, this.paginationConfig$).subscribe(function (_a) {
|
|
7151
|
+
var _b = __read(_a, 3), term = _b[0], facetValueIds = _b[1], pagination = _b[2];
|
|
7152
|
+
var take = +pagination.itemsPerPage;
|
|
7153
|
+
var skip = (pagination.currentPage - 1) * take;
|
|
7154
|
+
return searchQueryResult.ref.refetch({
|
|
7155
|
+
input: { skip: skip, take: take, term: term, facetValueIds: facetValueIds, groupByProduct: _this.mode === 'product' },
|
|
7000
7156
|
});
|
|
7157
|
+
});
|
|
7158
|
+
this.items$ = searchQueryResult.stream$.pipe(operators.tap(function (data) {
|
|
7159
|
+
_this.paginationConfig.totalItems = data.search.totalItems;
|
|
7160
|
+
_this.selectionManager.setCurrentItems(data.search.items);
|
|
7161
|
+
}), operators.map(function (data) { return data.search.items; }));
|
|
7162
|
+
this.facetValues$ = searchQueryResult.stream$.pipe(operators.map(function (data) { return data.search.facetValues; }));
|
|
7163
|
+
if (this.initialSelectionIds.length) {
|
|
7164
|
+
if (this.mode === 'product') {
|
|
7165
|
+
this.dataService.product
|
|
7166
|
+
.getProducts({
|
|
7167
|
+
filter: {
|
|
7168
|
+
id: {
|
|
7169
|
+
in: this.initialSelectionIds,
|
|
7170
|
+
},
|
|
7171
|
+
},
|
|
7172
|
+
})
|
|
7173
|
+
.single$.subscribe(function (_a) {
|
|
7174
|
+
var products = _a.products;
|
|
7175
|
+
_this.selectionManager.selectMultiple(products.items.map(function (product) { return ({
|
|
7176
|
+
productId: product.id,
|
|
7177
|
+
productName: product.name,
|
|
7178
|
+
}); }));
|
|
7179
|
+
_this.changeDetector.markForCheck();
|
|
7180
|
+
});
|
|
7181
|
+
}
|
|
7182
|
+
else {
|
|
7183
|
+
this.dataService.product
|
|
7184
|
+
.getProductVariants({
|
|
7185
|
+
filter: {
|
|
7186
|
+
id: {
|
|
7187
|
+
in: this.initialSelectionIds,
|
|
7188
|
+
},
|
|
7189
|
+
},
|
|
7190
|
+
})
|
|
7191
|
+
.single$.subscribe(function (_a) {
|
|
7192
|
+
var productVariants = _a.productVariants;
|
|
7193
|
+
_this.selectionManager.selectMultiple(productVariants.items.map(function (variant) { return ({
|
|
7194
|
+
productVariantId: variant.id,
|
|
7195
|
+
productVariantName: variant.name,
|
|
7196
|
+
}); }));
|
|
7197
|
+
_this.changeDetector.markForCheck();
|
|
7198
|
+
});
|
|
7199
|
+
}
|
|
7001
7200
|
}
|
|
7002
7201
|
};
|
|
7003
|
-
|
|
7004
|
-
return
|
|
7202
|
+
ProductMultiSelectorDialogComponent.prototype.trackByFn = function (index, item) {
|
|
7203
|
+
return item.productId;
|
|
7005
7204
|
};
|
|
7006
|
-
|
|
7007
|
-
|
|
7008
|
-
if (item.buttonStyle && item.buttonStyle === 'link') {
|
|
7009
|
-
styles.push('btn-link');
|
|
7010
|
-
return styles;
|
|
7011
|
-
}
|
|
7012
|
-
styles.push(this.getButtonColorClass(item));
|
|
7013
|
-
return styles;
|
|
7205
|
+
ProductMultiSelectorDialogComponent.prototype.setSearchTerm = function (term) {
|
|
7206
|
+
this.searchTerm$.next(term);
|
|
7014
7207
|
};
|
|
7015
|
-
|
|
7016
|
-
|
|
7017
|
-
case undefined:
|
|
7018
|
-
case 'primary':
|
|
7019
|
-
return item.buttonStyle === 'outline' ? 'btn-outline' : 'btn-primary';
|
|
7020
|
-
case 'success':
|
|
7021
|
-
return item.buttonStyle === 'outline' ? 'btn-success-outline' : 'btn-success';
|
|
7022
|
-
case 'warning':
|
|
7023
|
-
return item.buttonStyle === 'outline' ? 'btn-warning-outline' : 'btn-warning';
|
|
7024
|
-
default:
|
|
7025
|
-
sharedUtils.assertNever(item.buttonColor);
|
|
7026
|
-
return '';
|
|
7027
|
-
}
|
|
7208
|
+
ProductMultiSelectorDialogComponent.prototype.setFacetValueIds = function (ids) {
|
|
7209
|
+
this.searchFacetValueIds$.next(ids);
|
|
7028
7210
|
};
|
|
7029
|
-
|
|
7211
|
+
ProductMultiSelectorDialogComponent.prototype.toggleSelection = function (item, event) {
|
|
7212
|
+
this.selectionManager.toggleSelection(item, event);
|
|
7213
|
+
};
|
|
7214
|
+
ProductMultiSelectorDialogComponent.prototype.clearSelection = function () {
|
|
7215
|
+
this.selectionManager.selectMultiple([]);
|
|
7216
|
+
};
|
|
7217
|
+
ProductMultiSelectorDialogComponent.prototype.isSelected = function (item) {
|
|
7218
|
+
return this.selectionManager.isSelected(item);
|
|
7219
|
+
};
|
|
7220
|
+
ProductMultiSelectorDialogComponent.prototype.entityInfoClick = function (event) {
|
|
7221
|
+
event.preventDefault();
|
|
7222
|
+
event.stopPropagation();
|
|
7223
|
+
};
|
|
7224
|
+
ProductMultiSelectorDialogComponent.prototype.pageChange = function (page) {
|
|
7225
|
+
this.paginationConfig.currentPage = page;
|
|
7226
|
+
this.paginationConfig$.next(this.paginationConfig);
|
|
7227
|
+
};
|
|
7228
|
+
ProductMultiSelectorDialogComponent.prototype.itemsPerPageChange = function (itemsPerPage) {
|
|
7229
|
+
this.paginationConfig.itemsPerPage = itemsPerPage;
|
|
7230
|
+
this.paginationConfig$.next(this.paginationConfig);
|
|
7231
|
+
};
|
|
7232
|
+
ProductMultiSelectorDialogComponent.prototype.select = function () {
|
|
7233
|
+
this.resolveWith(this.selectionManager.selection);
|
|
7234
|
+
};
|
|
7235
|
+
ProductMultiSelectorDialogComponent.prototype.cancel = function () {
|
|
7236
|
+
this.resolveWith();
|
|
7237
|
+
};
|
|
7238
|
+
return ProductMultiSelectorDialogComponent;
|
|
7030
7239
|
}());
|
|
7031
|
-
|
|
7240
|
+
ProductMultiSelectorDialogComponent.decorators = [
|
|
7032
7241
|
{ type: i0.Component, args: [{
|
|
7033
|
-
selector: 'vdr-
|
|
7034
|
-
template: "<
|
|
7242
|
+
selector: 'vdr-product-multi-selector-dialog',
|
|
7243
|
+
template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n",
|
|
7035
7244
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7036
|
-
styles: [":host{display:
|
|
7245
|
+
styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-left:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-left:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"]
|
|
7037
7246
|
},] }
|
|
7038
7247
|
];
|
|
7039
|
-
|
|
7040
|
-
{ type: NavBuilderService },
|
|
7041
|
-
{ type: i1$3.ActivatedRoute },
|
|
7248
|
+
ProductMultiSelectorDialogComponent.ctorParameters = function () { return [
|
|
7042
7249
|
{ type: DataService },
|
|
7043
|
-
{ type:
|
|
7044
|
-
]; };
|
|
7045
|
-
ActionBarItemsComponent.propDecorators = {
|
|
7046
|
-
locationId: [{ type: i0.HostBinding, args: ['attr.data-location-id',] }, { type: i0.Input }]
|
|
7047
|
-
};
|
|
7250
|
+
{ type: i0.ChangeDetectorRef }
|
|
7251
|
+
]; };
|
|
7048
7252
|
|
|
7049
|
-
var
|
|
7050
|
-
function
|
|
7051
|
-
this.
|
|
7253
|
+
var ProductMultiSelectorFormInputComponent = /** @class */ (function () {
|
|
7254
|
+
function ProductMultiSelectorFormInputComponent(modalService, dataService, changeDetector) {
|
|
7255
|
+
this.modalService = modalService;
|
|
7256
|
+
this.dataService = dataService;
|
|
7257
|
+
this.changeDetector = changeDetector;
|
|
7258
|
+
this.mode = 'product';
|
|
7259
|
+
this.isListInput = true;
|
|
7052
7260
|
}
|
|
7053
|
-
|
|
7261
|
+
ProductMultiSelectorFormInputComponent.prototype.ngOnInit = function () {
|
|
7262
|
+
var _a, _b;
|
|
7263
|
+
this.mode = (_b = (_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.selectionMode) !== null && _b !== void 0 ? _b : 'product';
|
|
7264
|
+
};
|
|
7265
|
+
ProductMultiSelectorFormInputComponent.prototype.select = function () {
|
|
7266
|
+
var _this = this;
|
|
7267
|
+
this.modalService
|
|
7268
|
+
.fromComponent(ProductMultiSelectorDialogComponent, {
|
|
7269
|
+
size: 'xl',
|
|
7270
|
+
locals: {
|
|
7271
|
+
mode: this.mode,
|
|
7272
|
+
initialSelectionIds: this.formControl.value,
|
|
7273
|
+
},
|
|
7274
|
+
})
|
|
7275
|
+
.subscribe(function (selection) {
|
|
7276
|
+
if (selection) {
|
|
7277
|
+
_this.formControl.setValue(selection.map(function (item) { return _this.mode === 'product' ? item.productId : item.productVariantId; }));
|
|
7278
|
+
_this.changeDetector.markForCheck();
|
|
7279
|
+
}
|
|
7280
|
+
});
|
|
7281
|
+
};
|
|
7282
|
+
return ProductMultiSelectorFormInputComponent;
|
|
7054
7283
|
}());
|
|
7055
|
-
|
|
7284
|
+
ProductMultiSelectorFormInputComponent.id = 'product-multi-form-input';
|
|
7285
|
+
ProductMultiSelectorFormInputComponent.decorators = [
|
|
7056
7286
|
{ type: i0.Component, args: [{
|
|
7057
|
-
selector: 'vdr-
|
|
7058
|
-
template: "\n
|
|
7287
|
+
selector: 'vdr-product-multi-selector-form-input',
|
|
7288
|
+
template: "<div class=\"flex\">\r\n <button (click)=\"select()\" class=\"btn btn-sm btn-secondary\">\r\n {{ 'common.items-selected-count' | translate: { count: formControl.value?.length ?? 0 } }}...\r\n </button>\r\n</div>\r\n",
|
|
7289
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7290
|
+
styles: [""]
|
|
7059
7291
|
},] }
|
|
7060
7292
|
];
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7293
|
+
ProductMultiSelectorFormInputComponent.ctorParameters = function () { return [
|
|
7294
|
+
{ type: ModalService },
|
|
7295
|
+
{ type: DataService },
|
|
7296
|
+
{ type: i0.ChangeDetectorRef }
|
|
7297
|
+
]; };
|
|
7298
|
+
ProductMultiSelectorFormInputComponent.propDecorators = {
|
|
7299
|
+
config: [{ type: i0.Input }],
|
|
7300
|
+
formControl: [{ type: i0.Input }],
|
|
7301
|
+
readonly: [{ type: i0.Input }]
|
|
7302
|
+
};
|
|
7303
|
+
|
|
7304
|
+
/**
|
|
7305
|
+
* @description
|
|
7306
|
+
* Allows the selection of multiple ProductVariants via an autocomplete select input.
|
|
7307
|
+
* Should be used with `ID` type **list** fields which represent ProductVariant IDs.
|
|
7308
|
+
*
|
|
7309
|
+
* @docsCategory custom-input-components
|
|
7310
|
+
* @docsPage default-inputs
|
|
7311
|
+
*/
|
|
7312
|
+
var ProductSelectorFormInputComponent = /** @class */ (function () {
|
|
7313
|
+
function ProductSelectorFormInputComponent(dataService) {
|
|
7314
|
+
this.dataService = dataService;
|
|
7315
|
+
this.isListInput = true;
|
|
7067
7316
|
}
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7317
|
+
ProductSelectorFormInputComponent.prototype.ngOnInit = function () {
|
|
7318
|
+
var _this = this;
|
|
7319
|
+
this.formControl.setValidators([
|
|
7320
|
+
function (control) {
|
|
7321
|
+
if (!control.value || !control.value.length) {
|
|
7322
|
+
return {
|
|
7323
|
+
atLeastOne: { length: control.value.length },
|
|
7324
|
+
};
|
|
7325
|
+
}
|
|
7326
|
+
return null;
|
|
7327
|
+
},
|
|
7328
|
+
]);
|
|
7329
|
+
this.selection$ = this.formControl.valueChanges.pipe(operators.startWith(this.formControl.value), operators.switchMap(function (value) {
|
|
7330
|
+
if (Array.isArray(value) && 0 < value.length) {
|
|
7331
|
+
return rxjs.forkJoin(value.map(function (id) { return _this.dataService.product
|
|
7332
|
+
.getProductVariant(id)
|
|
7333
|
+
.mapSingle(function (data) { return data.productVariant; }); }));
|
|
7334
|
+
}
|
|
7335
|
+
return rxjs.of([]);
|
|
7336
|
+
}), operators.map(function (variants) { return variants.filter(sharedUtils.notNullOrUndefined); }));
|
|
7337
|
+
};
|
|
7338
|
+
ProductSelectorFormInputComponent.prototype.addProductVariant = function (product) {
|
|
7339
|
+
var value = this.formControl.value;
|
|
7340
|
+
this.formControl.setValue(__spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(value)), [product.productVariantId])))));
|
|
7341
|
+
};
|
|
7342
|
+
ProductSelectorFormInputComponent.prototype.removeProductVariant = function (id) {
|
|
7343
|
+
var value = this.formControl.value;
|
|
7344
|
+
this.formControl.setValue(value.filter(function (_id) { return _id !== id; }));
|
|
7345
|
+
};
|
|
7346
|
+
return ProductSelectorFormInputComponent;
|
|
7347
|
+
}());
|
|
7348
|
+
ProductSelectorFormInputComponent.id = 'product-selector-form-input';
|
|
7349
|
+
ProductSelectorFormInputComponent.decorators = [
|
|
7350
|
+
{ type: i0.Component, args: [{
|
|
7351
|
+
selector: 'vdr-product-selector-form-input',
|
|
7352
|
+
template: "<ul class=\"list-unstyled\">\r\n <li *ngFor=\"let variant of selection$ | async\" class=\"variant\">\r\n <div class=\"thumb\">\r\n <img [src]=\"variant.product.featuredAsset | assetPreview: 32\" />\r\n </div>\r\n <div class=\"detail\">\r\n <div>{{ variant.name }}</div>\r\n <div class=\"sku\">{{ variant.sku }}</div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button\r\n class=\"btn btn-link btn-sm btn-warning\"\r\n (click)=\"removeProductVariant(variant.id)\"\r\n [title]=\"'common.remove-item-from-list' | translate\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n </li>\r\n</ul>\r\n<vdr-product-selector (productSelected)=\"addProductVariant($event)\"></vdr-product-selector>\r\n",
|
|
7353
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7354
|
+
styles: [".variant{margin-bottom:6px;display:flex;align-items:center;transition:background-color .2s}.variant:hover{background-color:var(--color-component-bg-200)}.thumb{margin-right:6px}.sku{color:var(--color-grey-400);font-size:smaller;line-height:1em}\n"]
|
|
7074
7355
|
},] }
|
|
7075
7356
|
];
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
};
|
|
7079
|
-
|
|
7080
|
-
|
|
7357
|
+
ProductSelectorFormInputComponent.ctorParameters = function () { return [
|
|
7358
|
+
{ type: DataService }
|
|
7359
|
+
]; };
|
|
7360
|
+
|
|
7361
|
+
/**
|
|
7362
|
+
* @description
|
|
7363
|
+
* The default input component for `relation` type custom fields. Allows the selection
|
|
7364
|
+
* of a ProductVariant, Product, Customer or Asset. For other entity types, a custom
|
|
7365
|
+
* implementation will need to be defined. See {@link registerFormInputComponent}.
|
|
7366
|
+
*
|
|
7367
|
+
* @docsCategory custom-input-components
|
|
7368
|
+
* @docsPage default-inputs
|
|
7369
|
+
*/
|
|
7370
|
+
var RelationFormInputComponent = /** @class */ (function () {
|
|
7371
|
+
function RelationFormInputComponent() {
|
|
7081
7372
|
}
|
|
7082
|
-
return
|
|
7373
|
+
return RelationFormInputComponent;
|
|
7083
7374
|
}());
|
|
7084
|
-
|
|
7375
|
+
RelationFormInputComponent.id = 'relation-form-input';
|
|
7376
|
+
RelationFormInputComponent.decorators = [
|
|
7085
7377
|
{ type: i0.Component, args: [{
|
|
7086
|
-
selector: 'vdr-
|
|
7087
|
-
template: "<div
|
|
7088
|
-
|
|
7378
|
+
selector: 'vdr-relation-form-input',
|
|
7379
|
+
template: "<div [ngSwitch]=\"config.entity\">\r\n <vdr-relation-asset-input\r\n *ngSwitchCase=\"'Asset'\"\r\n [parentFormControl]=\"formControl\"\r\n [config]=\"config\"\r\n [readonly]=\"readonly\"\r\n ></vdr-relation-asset-input>\r\n <vdr-relation-product-input\r\n *ngSwitchCase=\"'Product'\"\r\n [parentFormControl]=\"formControl\"\r\n [config]=\"config\"\r\n [readonly]=\"readonly\"\r\n ></vdr-relation-product-input>\r\n <vdr-relation-customer-input\r\n *ngSwitchCase=\"'Customer'\"\r\n [parentFormControl]=\"formControl\"\r\n [config]=\"config\"\r\n [readonly]=\"readonly\"\r\n ></vdr-relation-customer-input>\r\n <vdr-relation-product-variant-input\r\n *ngSwitchCase=\"'ProductVariant'\"\r\n [parentFormControl]=\"formControl\"\r\n [config]=\"config\"\r\n [readonly]=\"readonly\"\r\n ></vdr-relation-product-variant-input>\r\n <ng-template ngSwitchDefault>\r\n <vdr-relation-generic-input\r\n [parentFormControl]=\"formControl\"\r\n [config]=\"config\"\r\n [readonly]=\"readonly\"\r\n ></vdr-relation-generic-input>\r\n </ng-template>\r\n</div>\r\n",
|
|
7380
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7381
|
+
styles: [":host{display:block;background-color:var(--color-component-bg-200);padding:3px}\n"]
|
|
7089
7382
|
},] }
|
|
7090
7383
|
];
|
|
7091
|
-
|
|
7092
|
-
|
|
7093
|
-
right: [{ type: i0.ContentChild, args: [ActionBarRightComponent,] }]
|
|
7384
|
+
RelationFormInputComponent.propDecorators = {
|
|
7385
|
+
readonly: [{ type: i0.Input }]
|
|
7094
7386
|
};
|
|
7095
7387
|
|
|
7096
|
-
|
|
7097
|
-
|
|
7388
|
+
/**
|
|
7389
|
+
* @description
|
|
7390
|
+
* Uses the {@link RichTextEditorComponent} as in input for `text` type fields.
|
|
7391
|
+
*
|
|
7392
|
+
* @docsCategory custom-input-components
|
|
7393
|
+
* @docsPage default-inputs
|
|
7394
|
+
*/
|
|
7395
|
+
var RichTextFormInputComponent = /** @class */ (function () {
|
|
7396
|
+
function RichTextFormInputComponent() {
|
|
7098
7397
|
}
|
|
7099
|
-
return
|
|
7398
|
+
return RichTextFormInputComponent;
|
|
7100
7399
|
}());
|
|
7101
|
-
|
|
7400
|
+
RichTextFormInputComponent.id = 'rich-text-form-input';
|
|
7401
|
+
RichTextFormInputComponent.decorators = [
|
|
7102
7402
|
{ type: i0.Component, args: [{
|
|
7103
|
-
selector: 'vdr-
|
|
7104
|
-
template: "<
|
|
7403
|
+
selector: 'vdr-rich-text-form-input',
|
|
7404
|
+
template: "<vdr-rich-text-editor\r\n [readonly]=\"readonly\"\r\n [formControl]=\"formControl\"\r\n></vdr-rich-text-editor>\r\n",
|
|
7105
7405
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7106
|
-
styles: [""]
|
|
7406
|
+
styles: [":host textarea{resize:both;height:6rem;width:100%}\n"]
|
|
7107
7407
|
},] }
|
|
7108
|
-
];
|
|
7109
|
-
AddressFormComponent.propDecorators = {
|
|
7110
|
-
customFields: [{ type: i0.Input }],
|
|
7111
|
-
formGroup: [{ type: i0.Input }],
|
|
7112
|
-
availableCountries: [{ type: i0.Input }]
|
|
7113
|
-
};
|
|
7408
|
+
];
|
|
7114
7409
|
|
|
7115
7410
|
/**
|
|
7116
|
-
*
|
|
7411
|
+
* @description
|
|
7412
|
+
* Uses a select input to allow the selection of a string value. Should be used with
|
|
7413
|
+
* `string` type fields with options.
|
|
7414
|
+
*
|
|
7415
|
+
* @docsCategory custom-input-components
|
|
7416
|
+
* @docsPage default-inputs
|
|
7117
7417
|
*/
|
|
7118
|
-
var
|
|
7119
|
-
function
|
|
7418
|
+
var SelectFormInputComponent = /** @class */ (function () {
|
|
7419
|
+
function SelectFormInputComponent() {
|
|
7120
7420
|
}
|
|
7121
|
-
|
|
7421
|
+
Object.defineProperty(SelectFormInputComponent.prototype, "options", {
|
|
7422
|
+
get: function () {
|
|
7423
|
+
var _a;
|
|
7424
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.options) || this.config.options;
|
|
7425
|
+
},
|
|
7426
|
+
enumerable: false,
|
|
7427
|
+
configurable: true
|
|
7428
|
+
});
|
|
7429
|
+
return SelectFormInputComponent;
|
|
7122
7430
|
}());
|
|
7123
|
-
|
|
7431
|
+
SelectFormInputComponent.id = 'select-form-input';
|
|
7432
|
+
SelectFormInputComponent.decorators = [
|
|
7124
7433
|
{ type: i0.Component, args: [{
|
|
7125
|
-
selector: 'vdr-
|
|
7126
|
-
template: "<
|
|
7434
|
+
selector: 'vdr-select-form-input',
|
|
7435
|
+
template: "<select clrSelect [formControl]=\"formControl\" [vdrDisabled]=\"readonly\">\r\n <option *ngIf=\"config.nullable\" [ngValue]=\"null\"></option>\r\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\r\n {{ (option | customFieldLabel) || option.label || option.value }}\r\n </option>\r\n</select>\r\n",
|
|
7127
7436
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7128
|
-
styles: ["
|
|
7437
|
+
styles: ["select{width:100%}\n"]
|
|
7129
7438
|
},] }
|
|
7130
7439
|
];
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
suffix: [{ type: i0.Input }]
|
|
7440
|
+
SelectFormInputComponent.propDecorators = {
|
|
7441
|
+
readonly: [{ type: i0.Input }]
|
|
7134
7442
|
};
|
|
7135
7443
|
|
|
7136
7444
|
/**
|
|
7137
|
-
*
|
|
7445
|
+
* @description
|
|
7446
|
+
* Uses a regular text form input. This is the default input for `string` and `localeString` type fields.
|
|
7447
|
+
*
|
|
7448
|
+
* @docsCategory custom-input-components
|
|
7449
|
+
* @docsPage default-inputs
|
|
7138
7450
|
*/
|
|
7139
|
-
var
|
|
7140
|
-
function
|
|
7141
|
-
this.disabled = false;
|
|
7142
|
-
this.readonly = false;
|
|
7451
|
+
var TextFormInputComponent = /** @class */ (function () {
|
|
7452
|
+
function TextFormInputComponent() {
|
|
7143
7453
|
}
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
};
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
PercentageSuffixInputComponent.prototype.writeValue = function (value) {
|
|
7162
|
-
var numericValue = +value;
|
|
7163
|
-
if (!Number.isNaN(numericValue)) {
|
|
7164
|
-
this._value = numericValue;
|
|
7165
|
-
}
|
|
7166
|
-
};
|
|
7167
|
-
return PercentageSuffixInputComponent;
|
|
7454
|
+
Object.defineProperty(TextFormInputComponent.prototype, "prefix", {
|
|
7455
|
+
get: function () {
|
|
7456
|
+
var _a;
|
|
7457
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.prefix) || this.config.prefix;
|
|
7458
|
+
},
|
|
7459
|
+
enumerable: false,
|
|
7460
|
+
configurable: true
|
|
7461
|
+
});
|
|
7462
|
+
Object.defineProperty(TextFormInputComponent.prototype, "suffix", {
|
|
7463
|
+
get: function () {
|
|
7464
|
+
var _a;
|
|
7465
|
+
return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.suffix) || this.config.suffix;
|
|
7466
|
+
},
|
|
7467
|
+
enumerable: false,
|
|
7468
|
+
configurable: true
|
|
7469
|
+
});
|
|
7470
|
+
return TextFormInputComponent;
|
|
7168
7471
|
}());
|
|
7169
|
-
|
|
7472
|
+
TextFormInputComponent.id = 'text-form-input';
|
|
7473
|
+
TextFormInputComponent.decorators = [
|
|
7170
7474
|
{ type: i0.Component, args: [{
|
|
7171
|
-
selector: 'vdr-
|
|
7172
|
-
template: "
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
provide: forms.NG_VALUE_ACCESSOR,
|
|
7176
|
-
useExisting: PercentageSuffixInputComponent,
|
|
7177
|
-
multi: true,
|
|
7178
|
-
},
|
|
7179
|
-
],
|
|
7180
|
-
styles: ["\n :host {\n padding: 0;\n }\n "]
|
|
7475
|
+
selector: 'vdr-text-form-input',
|
|
7476
|
+
template: "<vdr-affixed-input\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n>\r\n <input type=\"text\" [readonly]=\"readonly\" [formControl]=\"formControl\" />\r\n</vdr-affixed-input>\r\n",
|
|
7477
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7478
|
+
styles: ["input{width:100%}\n"]
|
|
7181
7479
|
},] }
|
|
7182
|
-
];
|
|
7183
|
-
PercentageSuffixInputComponent.propDecorators = {
|
|
7184
|
-
disabled: [{ type: i0.Input }],
|
|
7185
|
-
readonly: [{ type: i0.Input }],
|
|
7186
|
-
value: [{ type: i0.Input }]
|
|
7187
|
-
};
|
|
7480
|
+
];
|
|
7188
7481
|
|
|
7189
7482
|
/**
|
|
7190
|
-
*
|
|
7483
|
+
* @description
|
|
7484
|
+
* Uses textarea form input. This is the default input for `text` type fields.
|
|
7485
|
+
*
|
|
7486
|
+
* @docsCategory custom-input-components
|
|
7487
|
+
* @docsPage default-inputs
|
|
7191
7488
|
*/
|
|
7192
|
-
var
|
|
7193
|
-
function
|
|
7194
|
-
this.serverConfig = serverConfig;
|
|
7195
|
-
/**
|
|
7196
|
-
* CSS selector of the DOM element which will be masked by the file
|
|
7197
|
-
* drop zone. Defaults to `body`.
|
|
7198
|
-
*/
|
|
7199
|
-
this.dropZoneTarget = 'body';
|
|
7200
|
-
this.uploading = false;
|
|
7201
|
-
this.selectFiles = new i0.EventEmitter();
|
|
7202
|
-
this.dragging = false;
|
|
7203
|
-
this.overDropZone = false;
|
|
7204
|
-
this.dropZoneStyle = {
|
|
7205
|
-
'width.px': 0,
|
|
7206
|
-
'height.px': 0,
|
|
7207
|
-
'top.px': 0,
|
|
7208
|
-
'left.px': 0,
|
|
7209
|
-
};
|
|
7489
|
+
var TextareaFormInputComponent = /** @class */ (function () {
|
|
7490
|
+
function TextareaFormInputComponent() {
|
|
7210
7491
|
}
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7492
|
+
Object.defineProperty(TextareaFormInputComponent.prototype, "spellcheck", {
|
|
7493
|
+
get: function () {
|
|
7494
|
+
return this.config.spellcheck === true;
|
|
7495
|
+
},
|
|
7496
|
+
enumerable: false,
|
|
7497
|
+
configurable: true
|
|
7498
|
+
});
|
|
7499
|
+
return TextareaFormInputComponent;
|
|
7500
|
+
}());
|
|
7501
|
+
TextareaFormInputComponent.id = 'textarea-form-input';
|
|
7502
|
+
TextareaFormInputComponent.decorators = [
|
|
7503
|
+
{ type: i0.Component, args: [{
|
|
7504
|
+
selector: 'vdr-textarea-form-input',
|
|
7505
|
+
template: "<textarea [spellcheck]=\"spellcheck\" autocomplete=\"off\" autocorrect=\"off\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"formControl\"\r\n></textarea>\r\n",
|
|
7506
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7507
|
+
styles: [":host textarea{resize:both;height:6rem;width:100%}\n"]
|
|
7508
|
+
},] }
|
|
7509
|
+
];
|
|
7510
|
+
|
|
7511
|
+
var defaultFormInputs = [
|
|
7512
|
+
BooleanFormInputComponent,
|
|
7513
|
+
CurrencyFormInputComponent,
|
|
7514
|
+
DateFormInputComponent,
|
|
7515
|
+
FacetValueFormInputComponent,
|
|
7516
|
+
NumberFormInputComponent,
|
|
7517
|
+
SelectFormInputComponent,
|
|
7518
|
+
TextFormInputComponent,
|
|
7519
|
+
ProductSelectorFormInputComponent,
|
|
7520
|
+
CustomerGroupFormInputComponent,
|
|
7521
|
+
PasswordFormInputComponent,
|
|
7522
|
+
RelationFormInputComponent,
|
|
7523
|
+
TextareaFormInputComponent,
|
|
7524
|
+
RichTextFormInputComponent,
|
|
7525
|
+
JsonEditorFormInputComponent,
|
|
7526
|
+
ProductMultiSelectorFormInputComponent,
|
|
7527
|
+
CombinationModeFormInputComponent,
|
|
7528
|
+
];
|
|
7529
|
+
/**
|
|
7530
|
+
* @description
|
|
7531
|
+
* Registers a custom FormInputComponent which can be used to control the argument inputs
|
|
7532
|
+
* of a {@link ConfigurableOperationDef} (e.g. CollectionFilter, ShippingMethod etc) or for
|
|
7533
|
+
* a custom field.
|
|
7534
|
+
*
|
|
7535
|
+
* @example
|
|
7536
|
+
* ```TypeScript
|
|
7537
|
+
* \@NgModule({
|
|
7538
|
+
* imports: [SharedModule],
|
|
7539
|
+
* declarations: [MyCustomFieldControl],
|
|
7540
|
+
* providers: [
|
|
7541
|
+
* registerFormInputComponent('my-custom-input', MyCustomFieldControl),
|
|
7542
|
+
* ],
|
|
7543
|
+
* })
|
|
7544
|
+
* export class MyUiExtensionModule {}
|
|
7545
|
+
* ```
|
|
7546
|
+
*
|
|
7547
|
+
* This input component can then be used in a custom field:
|
|
7548
|
+
*
|
|
7549
|
+
* @example
|
|
7550
|
+
* ```TypeScript
|
|
7551
|
+
* const config = {
|
|
7552
|
+
* // ...
|
|
7553
|
+
* customFields: {
|
|
7554
|
+
* ProductVariant: [
|
|
7555
|
+
* {
|
|
7556
|
+
* name: 'rrp',
|
|
7557
|
+
* type: 'int',
|
|
7558
|
+
* ui: { component: 'my-custom-input' },
|
|
7559
|
+
* },
|
|
7560
|
+
* ]
|
|
7561
|
+
* }
|
|
7562
|
+
* }
|
|
7563
|
+
* ```
|
|
7564
|
+
*
|
|
7565
|
+
* or with an argument of a {@link ConfigurableOperationDef}:
|
|
7566
|
+
*
|
|
7567
|
+
* @example
|
|
7568
|
+
* ```TypeScript
|
|
7569
|
+
* args: {
|
|
7570
|
+
* rrp: { type: 'int', ui: { component: 'my-custom-input' } },
|
|
7571
|
+
* }
|
|
7572
|
+
* ```
|
|
7573
|
+
*
|
|
7574
|
+
* @docsCategory custom-input-components
|
|
7575
|
+
*/
|
|
7576
|
+
function registerFormInputComponent(id, component) {
|
|
7577
|
+
return {
|
|
7578
|
+
provide: i0.APP_INITIALIZER,
|
|
7579
|
+
multi: true,
|
|
7580
|
+
useFactory: function (registry) { return function () {
|
|
7581
|
+
registry.registerInputComponent(id, component);
|
|
7582
|
+
}; },
|
|
7583
|
+
deps: [ComponentRegistryService],
|
|
7584
|
+
};
|
|
7585
|
+
}
|
|
7586
|
+
/**
|
|
7587
|
+
* @description
|
|
7588
|
+
* **Deprecated** use `registerFormInputComponent()` in combination with the customField `ui` config instead.
|
|
7589
|
+
*
|
|
7590
|
+
* Registers a custom component to act as the form input control for the given custom field.
|
|
7591
|
+
* This should be used in the NgModule `providers` array of your ui extension module.
|
|
7592
|
+
*
|
|
7593
|
+
* @example
|
|
7594
|
+
* ```TypeScript
|
|
7595
|
+
* \@NgModule({
|
|
7596
|
+
* imports: [SharedModule],
|
|
7597
|
+
* declarations: [MyCustomFieldControl],
|
|
7598
|
+
* providers: [
|
|
7599
|
+
* registerCustomFieldComponent('Product', 'someCustomField', MyCustomFieldControl),
|
|
7600
|
+
* ],
|
|
7601
|
+
* })
|
|
7602
|
+
* export class MyUiExtensionModule {}
|
|
7603
|
+
* ```
|
|
7604
|
+
*
|
|
7605
|
+
* @deprecated use `registerFormInputComponent()` in combination with the customField `ui` config instead.
|
|
7606
|
+
*
|
|
7607
|
+
* @docsCategory custom-input-components
|
|
7608
|
+
*/
|
|
7609
|
+
function registerCustomFieldComponent(entity, fieldName, component) {
|
|
7610
|
+
return {
|
|
7611
|
+
provide: i0.APP_INITIALIZER,
|
|
7612
|
+
multi: true,
|
|
7613
|
+
useFactory: function (customFieldComponentService) { return function () {
|
|
7614
|
+
customFieldComponentService.registerCustomFieldComponent(entity, fieldName, component);
|
|
7615
|
+
}; },
|
|
7616
|
+
deps: [CustomFieldComponentService],
|
|
7617
|
+
};
|
|
7618
|
+
}
|
|
7619
|
+
/**
|
|
7620
|
+
* Registers the default form input components.
|
|
7621
|
+
*/
|
|
7622
|
+
function registerDefaultFormInputs() {
|
|
7623
|
+
return defaultFormInputs.map(function (cmp) { return registerFormInputComponent(cmp.id, cmp); });
|
|
7624
|
+
}
|
|
7625
|
+
|
|
7626
|
+
var ActionBarItemsComponent = /** @class */ (function () {
|
|
7627
|
+
function ActionBarItemsComponent(navBuilderService, route, dataService, notificationService) {
|
|
7628
|
+
this.navBuilderService = navBuilderService;
|
|
7629
|
+
this.route = route;
|
|
7630
|
+
this.dataService = dataService;
|
|
7631
|
+
this.notificationService = notificationService;
|
|
7632
|
+
this.locationId$ = new rxjs.BehaviorSubject('');
|
|
7633
|
+
}
|
|
7634
|
+
ActionBarItemsComponent.prototype.ngOnInit = function () {
|
|
7635
|
+
this.items$ = rxjs.combineLatest(this.navBuilderService.actionBarConfig$, this.locationId$).pipe(operators.map(function (_a) {
|
|
7636
|
+
var _b = __read(_a, 2), items = _b[0], locationId = _b[1];
|
|
7637
|
+
return items.filter(function (config) { return config.locationId === locationId; });
|
|
7638
|
+
}));
|
|
7639
|
+
};
|
|
7640
|
+
ActionBarItemsComponent.prototype.ngOnChanges = function (changes) {
|
|
7641
|
+
if ('locationId' in changes) {
|
|
7642
|
+
this.locationId$.next(changes['locationId'].currentValue);
|
|
7223
7643
|
}
|
|
7224
7644
|
};
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7645
|
+
ActionBarItemsComponent.prototype.handleClick = function (event, item) {
|
|
7646
|
+
if (typeof item.onClick === 'function') {
|
|
7647
|
+
item.onClick(event, {
|
|
7648
|
+
route: this.route,
|
|
7649
|
+
dataService: this.dataService,
|
|
7650
|
+
notificationService: this.notificationService,
|
|
7651
|
+
});
|
|
7652
|
+
}
|
|
7231
7653
|
};
|
|
7232
|
-
|
|
7233
|
-
|
|
7234
|
-
event.preventDefault();
|
|
7235
|
-
this.dragging = false;
|
|
7236
|
-
this.overDropZone = false;
|
|
7237
|
-
var files = Array.from(event.dataTransfer ? event.dataTransfer.items : [])
|
|
7238
|
-
.map(function (i) { return i.getAsFile(); })
|
|
7239
|
-
.filter(sharedUtils.notNullOrUndefined);
|
|
7240
|
-
this.selectFiles.emit(files);
|
|
7654
|
+
ActionBarItemsComponent.prototype.getRouterLink = function (item) {
|
|
7655
|
+
return this.navBuilderService.getRouterLink(item, this.route);
|
|
7241
7656
|
};
|
|
7242
|
-
|
|
7243
|
-
var
|
|
7244
|
-
if (
|
|
7245
|
-
|
|
7657
|
+
ActionBarItemsComponent.prototype.getButtonStyles = function (item) {
|
|
7658
|
+
var styles = ['btn'];
|
|
7659
|
+
if (item.buttonStyle && item.buttonStyle === 'link') {
|
|
7660
|
+
styles.push('btn-link');
|
|
7661
|
+
return styles;
|
|
7246
7662
|
}
|
|
7663
|
+
styles.push(this.getButtonColorClass(item));
|
|
7664
|
+
return styles;
|
|
7247
7665
|
};
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
|
|
7255
|
-
|
|
7666
|
+
ActionBarItemsComponent.prototype.getButtonColorClass = function (item) {
|
|
7667
|
+
switch (item.buttonColor) {
|
|
7668
|
+
case undefined:
|
|
7669
|
+
case 'primary':
|
|
7670
|
+
return item.buttonStyle === 'outline' ? 'btn-outline' : 'btn-primary';
|
|
7671
|
+
case 'success':
|
|
7672
|
+
return item.buttonStyle === 'outline' ? 'btn-success-outline' : 'btn-success';
|
|
7673
|
+
case 'warning':
|
|
7674
|
+
return item.buttonStyle === 'outline' ? 'btn-warning-outline' : 'btn-warning';
|
|
7675
|
+
default:
|
|
7676
|
+
sharedUtils.assertNever(item.buttonColor);
|
|
7677
|
+
return '';
|
|
7256
7678
|
}
|
|
7257
7679
|
};
|
|
7258
|
-
return
|
|
7680
|
+
return ActionBarItemsComponent;
|
|
7259
7681
|
}());
|
|
7260
|
-
|
|
7682
|
+
ActionBarItemsComponent.decorators = [
|
|
7261
7683
|
{ type: i0.Component, args: [{
|
|
7262
|
-
selector: 'vdr-
|
|
7263
|
-
template: "<
|
|
7684
|
+
selector: 'vdr-action-bar-items',
|
|
7685
|
+
template: "<vdr-ui-extension-point [locationId]=\"locationId\" api=\"actionBar\" [leftPx]=\"-24\" [topPx]=\"-6\">\r\n <ng-container *ngFor=\"let item of items$ | async\">\r\n <button\r\n *vdrIfPermissions=\"item.requiresPermission\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n [disabled]=\"item.disabled ? (item.disabled | async) : false\"\r\n (click)=\"handleClick($event, item)\"\r\n [ngClass]=\"getButtonStyles(item)\"\r\n >\r\n <clr-icon *ngIf=\"item.icon\" [attr.shape]=\"item.icon\"></clr-icon>\r\n {{ item.label | translate }}\r\n </button>\r\n </ng-container>\r\n</vdr-ui-extension-point>\r\n",
|
|
7264
7686
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7265
|
-
styles: ["
|
|
7687
|
+
styles: [":host{display:inline-block;min-height:36px}\n"]
|
|
7266
7688
|
},] }
|
|
7267
7689
|
];
|
|
7268
|
-
|
|
7269
|
-
{ type:
|
|
7690
|
+
ActionBarItemsComponent.ctorParameters = function () { return [
|
|
7691
|
+
{ type: NavBuilderService },
|
|
7692
|
+
{ type: i1$3.ActivatedRoute },
|
|
7693
|
+
{ type: DataService },
|
|
7694
|
+
{ type: NotificationService }
|
|
7270
7695
|
]; };
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
uploading: [{ type: i0.Input }],
|
|
7274
|
-
selectFiles: [{ type: i0.Output }],
|
|
7275
|
-
onDragEnter: [{ type: i0.HostListener, args: ['document:dragenter',] }],
|
|
7276
|
-
onDragLeave: [{ type: i0.HostListener, args: ['document:dragleave', ['$event'],] }]
|
|
7696
|
+
ActionBarItemsComponent.propDecorators = {
|
|
7697
|
+
locationId: [{ type: i0.HostBinding, args: ['attr.data-location-id',] }, { type: i0.Input }]
|
|
7277
7698
|
};
|
|
7278
7699
|
|
|
7279
|
-
var
|
|
7280
|
-
function
|
|
7281
|
-
this.
|
|
7700
|
+
var ActionBarLeftComponent = /** @class */ (function () {
|
|
7701
|
+
function ActionBarLeftComponent() {
|
|
7702
|
+
this.grow = false;
|
|
7282
7703
|
}
|
|
7283
|
-
|
|
7284
|
-
var _this = this;
|
|
7285
|
-
this.assetWithTags$ = rxjs.of(this.asset).pipe(operators.mergeMap(function (asset) {
|
|
7286
|
-
if (_this.hasTags(asset)) {
|
|
7287
|
-
return rxjs.of(asset);
|
|
7288
|
-
}
|
|
7289
|
-
else {
|
|
7290
|
-
// tslint:disable-next-line:no-non-null-assertion
|
|
7291
|
-
return _this.dataService.product.getAsset(asset.id).mapSingle(function (data) { return data.asset; });
|
|
7292
|
-
}
|
|
7293
|
-
}));
|
|
7294
|
-
};
|
|
7295
|
-
AssetPreviewDialogComponent.prototype.hasTags = function (asset) {
|
|
7296
|
-
return asset.hasOwnProperty('tags');
|
|
7297
|
-
};
|
|
7298
|
-
return AssetPreviewDialogComponent;
|
|
7704
|
+
return ActionBarLeftComponent;
|
|
7299
7705
|
}());
|
|
7300
|
-
|
|
7706
|
+
ActionBarLeftComponent.decorators = [
|
|
7301
7707
|
{ type: i0.Component, args: [{
|
|
7302
|
-
selector: 'vdr-
|
|
7708
|
+
selector: 'vdr-ab-left',
|
|
7709
|
+
template: "\n <ng-content></ng-content>\n "
|
|
7710
|
+
},] }
|
|
7711
|
+
];
|
|
7712
|
+
ActionBarLeftComponent.propDecorators = {
|
|
7713
|
+
grow: [{ type: i0.Input }]
|
|
7714
|
+
};
|
|
7715
|
+
var ActionBarRightComponent = /** @class */ (function () {
|
|
7716
|
+
function ActionBarRightComponent() {
|
|
7717
|
+
this.grow = false;
|
|
7718
|
+
}
|
|
7719
|
+
return ActionBarRightComponent;
|
|
7720
|
+
}());
|
|
7721
|
+
ActionBarRightComponent.decorators = [
|
|
7722
|
+
{ type: i0.Component, args: [{
|
|
7723
|
+
selector: 'vdr-ab-right',
|
|
7724
|
+
template: "\n <ng-content></ng-content>\n "
|
|
7725
|
+
},] }
|
|
7726
|
+
];
|
|
7727
|
+
ActionBarRightComponent.propDecorators = {
|
|
7728
|
+
grow: [{ type: i0.Input }]
|
|
7729
|
+
};
|
|
7730
|
+
var ActionBarComponent = /** @class */ (function () {
|
|
7731
|
+
function ActionBarComponent() {
|
|
7732
|
+
}
|
|
7733
|
+
return ActionBarComponent;
|
|
7734
|
+
}());
|
|
7735
|
+
ActionBarComponent.decorators = [
|
|
7736
|
+
{ type: i0.Component, args: [{
|
|
7737
|
+
selector: 'vdr-action-bar',
|
|
7738
|
+
template: "<div class=\"left-content\" [class.grow]=\"left?.grow\"><ng-content select=\"vdr-ab-left\"></ng-content></div>\r\n<div class=\"right-content\" [class.grow]=\"right?.grow\"><ng-content select=\"vdr-ab-right\"></ng-content></div>\r\n",
|
|
7739
|
+
styles: [":host{display:flex;justify-content:space-between;align-items:baseline;background-color:var(--color-component-bg-100);position:sticky;top:-24px;z-index:25;border-bottom:1px solid var(--color-component-border-200)}:host>.grow{flex:1}\n"]
|
|
7740
|
+
},] }
|
|
7741
|
+
];
|
|
7742
|
+
ActionBarComponent.propDecorators = {
|
|
7743
|
+
left: [{ type: i0.ContentChild, args: [ActionBarLeftComponent,] }],
|
|
7744
|
+
right: [{ type: i0.ContentChild, args: [ActionBarRightComponent,] }]
|
|
7745
|
+
};
|
|
7746
|
+
|
|
7747
|
+
var AddressFormComponent = /** @class */ (function () {
|
|
7748
|
+
function AddressFormComponent() {
|
|
7749
|
+
}
|
|
7750
|
+
return AddressFormComponent;
|
|
7751
|
+
}());
|
|
7752
|
+
AddressFormComponent.decorators = [
|
|
7753
|
+
{ type: i0.Component, args: [{
|
|
7754
|
+
selector: 'vdr-address-form',
|
|
7755
|
+
template: "<form [formGroup]=\"formGroup\">\r\n <clr-input-container>\r\n <label>{{ 'customer.full-name' | translate }}</label>\r\n <input formControlName=\"fullName\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.street-line-1' | translate }}</label>\r\n <input formControlName=\"streetLine1\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n </div>\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.street-line-2' | translate }}</label>\r\n <input formControlName=\"streetLine2\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n </div>\r\n </div>\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.city' | translate }}</label>\r\n <input formControlName=\"city\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n </div>\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.province' | translate }}</label>\r\n <input formControlName=\"province\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n </div>\r\n </div>\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.postal-code' | translate }}</label>\r\n <input formControlName=\"postalCode\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n </div>\r\n <div class=\"clr-col-md-4\">\r\n <clr-input-container>\r\n <label>{{ 'customer.country' | translate }}</label>\r\n <select name=\"countryCode\" formControlName=\"countryCode\" clrInput clrSelect>\r\n <option *ngFor=\"let country of availableCountries\" [value]=\"country.code\">\r\n {{ country.name }}\r\n </option>\r\n </select>\r\n </clr-input-container>\r\n </div>\r\n </div>\r\n <clr-input-container>\r\n <label>{{ 'customer.phone-number' | translate }}</label>\r\n <input formControlName=\"phoneNumber\" type=\"text\" clrInput/>\r\n </clr-input-container>\r\n <section formGroupName=\"customFields\" *ngIf=\"formGroup.get('customFields') as customFieldsGroup\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Address\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsGroup\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\r\n",
|
|
7756
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7757
|
+
styles: [""]
|
|
7758
|
+
},] }
|
|
7759
|
+
];
|
|
7760
|
+
AddressFormComponent.propDecorators = {
|
|
7761
|
+
customFields: [{ type: i0.Input }],
|
|
7762
|
+
formGroup: [{ type: i0.Input }],
|
|
7763
|
+
availableCountries: [{ type: i0.Input }]
|
|
7764
|
+
};
|
|
7765
|
+
|
|
7766
|
+
/**
|
|
7767
|
+
* A wrapper around an <input> element which adds a prefix and/or a suffix element.
|
|
7768
|
+
*/
|
|
7769
|
+
var AffixedInputComponent = /** @class */ (function () {
|
|
7770
|
+
function AffixedInputComponent() {
|
|
7771
|
+
}
|
|
7772
|
+
return AffixedInputComponent;
|
|
7773
|
+
}());
|
|
7774
|
+
AffixedInputComponent.decorators = [
|
|
7775
|
+
{ type: i0.Component, args: [{
|
|
7776
|
+
selector: 'vdr-affixed-input',
|
|
7777
|
+
template: "<div [class.has-prefix]=\"!!prefix\" [class.has-suffix]=\"!!suffix\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div class=\"affix prefix\" *ngIf=\"prefix\">{{ prefix }}</div>\r\n<div class=\"affix suffix\" *ngIf=\"suffix\">{{ suffix }}</div>\r\n",
|
|
7778
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7779
|
+
styles: [":host{display:inline-flex}.affix{color:var(--color-grey-800);display:flex;align-items:center;background-color:var(--color-grey-200);border:1px solid var(--color-component-border-300);top:1px;padding:3px;line-height:.58333rem;transition:border .2s}::ng-deep .has-prefix input{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.prefix{order:-1;border-radius:3px 0 0 3px;border-right:none}::ng-deep .has-suffix input{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.suffix{border-radius:0 3px 3px 0;border-left:none}\n"]
|
|
7780
|
+
},] }
|
|
7781
|
+
];
|
|
7782
|
+
AffixedInputComponent.propDecorators = {
|
|
7783
|
+
prefix: [{ type: i0.Input }],
|
|
7784
|
+
suffix: [{ type: i0.Input }]
|
|
7785
|
+
};
|
|
7786
|
+
|
|
7787
|
+
/**
|
|
7788
|
+
* A form input control which displays a number input with a percentage sign suffix.
|
|
7789
|
+
*/
|
|
7790
|
+
var PercentageSuffixInputComponent = /** @class */ (function () {
|
|
7791
|
+
function PercentageSuffixInputComponent() {
|
|
7792
|
+
this.disabled = false;
|
|
7793
|
+
this.readonly = false;
|
|
7794
|
+
}
|
|
7795
|
+
PercentageSuffixInputComponent.prototype.ngOnChanges = function (changes) {
|
|
7796
|
+
if ('value' in changes) {
|
|
7797
|
+
this.writeValue(changes['value'].currentValue);
|
|
7798
|
+
}
|
|
7799
|
+
};
|
|
7800
|
+
PercentageSuffixInputComponent.prototype.registerOnChange = function (fn) {
|
|
7801
|
+
this.onChange = fn;
|
|
7802
|
+
};
|
|
7803
|
+
PercentageSuffixInputComponent.prototype.registerOnTouched = function (fn) {
|
|
7804
|
+
this.onTouch = fn;
|
|
7805
|
+
};
|
|
7806
|
+
PercentageSuffixInputComponent.prototype.setDisabledState = function (isDisabled) {
|
|
7807
|
+
this.disabled = isDisabled;
|
|
7808
|
+
};
|
|
7809
|
+
PercentageSuffixInputComponent.prototype.onInput = function (value) {
|
|
7810
|
+
this.onChange(value);
|
|
7811
|
+
};
|
|
7812
|
+
PercentageSuffixInputComponent.prototype.writeValue = function (value) {
|
|
7813
|
+
var numericValue = +value;
|
|
7814
|
+
if (!Number.isNaN(numericValue)) {
|
|
7815
|
+
this._value = numericValue;
|
|
7816
|
+
}
|
|
7817
|
+
};
|
|
7818
|
+
return PercentageSuffixInputComponent;
|
|
7819
|
+
}());
|
|
7820
|
+
PercentageSuffixInputComponent.decorators = [
|
|
7821
|
+
{ type: i0.Component, args: [{
|
|
7822
|
+
selector: 'vdr-percentage-suffix-input',
|
|
7823
|
+
template: "\n <vdr-affixed-input suffix=\"%\">\n <input\n type=\"number\"\n step=\"1\"\n [value]=\"_value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (input)=\"onInput($event.target.value)\"\n (focus)=\"onTouch()\"\n />\n </vdr-affixed-input>\n ",
|
|
7824
|
+
providers: [
|
|
7825
|
+
{
|
|
7826
|
+
provide: forms.NG_VALUE_ACCESSOR,
|
|
7827
|
+
useExisting: PercentageSuffixInputComponent,
|
|
7828
|
+
multi: true,
|
|
7829
|
+
},
|
|
7830
|
+
],
|
|
7831
|
+
styles: ["\n :host {\n padding: 0;\n }\n "]
|
|
7832
|
+
},] }
|
|
7833
|
+
];
|
|
7834
|
+
PercentageSuffixInputComponent.propDecorators = {
|
|
7835
|
+
disabled: [{ type: i0.Input }],
|
|
7836
|
+
readonly: [{ type: i0.Input }],
|
|
7837
|
+
value: [{ type: i0.Input }]
|
|
7838
|
+
};
|
|
7839
|
+
|
|
7840
|
+
/**
|
|
7841
|
+
* A component for selecting files to upload as new Assets.
|
|
7842
|
+
*/
|
|
7843
|
+
var AssetFileInputComponent = /** @class */ (function () {
|
|
7844
|
+
function AssetFileInputComponent(serverConfig) {
|
|
7845
|
+
this.serverConfig = serverConfig;
|
|
7846
|
+
/**
|
|
7847
|
+
* CSS selector of the DOM element which will be masked by the file
|
|
7848
|
+
* drop zone. Defaults to `body`.
|
|
7849
|
+
*/
|
|
7850
|
+
this.dropZoneTarget = 'body';
|
|
7851
|
+
this.uploading = false;
|
|
7852
|
+
this.selectFiles = new i0.EventEmitter();
|
|
7853
|
+
this.dragging = false;
|
|
7854
|
+
this.overDropZone = false;
|
|
7855
|
+
this.dropZoneStyle = {
|
|
7856
|
+
'width.px': 0,
|
|
7857
|
+
'height.px': 0,
|
|
7858
|
+
'top.px': 0,
|
|
7859
|
+
'left.px': 0,
|
|
7860
|
+
};
|
|
7861
|
+
}
|
|
7862
|
+
AssetFileInputComponent.prototype.ngOnInit = function () {
|
|
7863
|
+
this.accept = this.serverConfig.serverConfig.permittedAssetTypes.join(',');
|
|
7864
|
+
this.fitDropZoneToTarget();
|
|
7865
|
+
};
|
|
7866
|
+
AssetFileInputComponent.prototype.onDragEnter = function () {
|
|
7867
|
+
this.dragging = true;
|
|
7868
|
+
this.fitDropZoneToTarget();
|
|
7869
|
+
};
|
|
7870
|
+
// DragEvent is not supported in Safari, see https://github.com/vendure-ecommerce/vendure/pull/284
|
|
7871
|
+
AssetFileInputComponent.prototype.onDragLeave = function (event) {
|
|
7872
|
+
if (!event.clientX && !event.clientY) {
|
|
7873
|
+
this.dragging = false;
|
|
7874
|
+
}
|
|
7875
|
+
};
|
|
7876
|
+
/**
|
|
7877
|
+
* Preventing this event is required to make dropping work.
|
|
7878
|
+
* See https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API#Define_a_drop_zone
|
|
7879
|
+
*/
|
|
7880
|
+
AssetFileInputComponent.prototype.onDragOver = function (event) {
|
|
7881
|
+
event.preventDefault();
|
|
7882
|
+
};
|
|
7883
|
+
// DragEvent is not supported in Safari, see https://github.com/vendure-ecommerce/vendure/pull/284
|
|
7884
|
+
AssetFileInputComponent.prototype.onDrop = function (event) {
|
|
7885
|
+
event.preventDefault();
|
|
7886
|
+
this.dragging = false;
|
|
7887
|
+
this.overDropZone = false;
|
|
7888
|
+
var files = Array.from(event.dataTransfer ? event.dataTransfer.items : [])
|
|
7889
|
+
.map(function (i) { return i.getAsFile(); })
|
|
7890
|
+
.filter(sharedUtils.notNullOrUndefined);
|
|
7891
|
+
this.selectFiles.emit(files);
|
|
7892
|
+
};
|
|
7893
|
+
AssetFileInputComponent.prototype.select = function (event) {
|
|
7894
|
+
var files = event.target.files;
|
|
7895
|
+
if (files) {
|
|
7896
|
+
this.selectFiles.emit(Array.from(files));
|
|
7897
|
+
}
|
|
7898
|
+
};
|
|
7899
|
+
AssetFileInputComponent.prototype.fitDropZoneToTarget = function () {
|
|
7900
|
+
var target = document.querySelector(this.dropZoneTarget);
|
|
7901
|
+
if (target) {
|
|
7902
|
+
var rect = target.getBoundingClientRect();
|
|
7903
|
+
this.dropZoneStyle['width.px'] = rect.width;
|
|
7904
|
+
this.dropZoneStyle['height.px'] = rect.height;
|
|
7905
|
+
this.dropZoneStyle['top.px'] = rect.top;
|
|
7906
|
+
this.dropZoneStyle['left.px'] = rect.left;
|
|
7907
|
+
}
|
|
7908
|
+
};
|
|
7909
|
+
return AssetFileInputComponent;
|
|
7910
|
+
}());
|
|
7911
|
+
AssetFileInputComponent.decorators = [
|
|
7912
|
+
{ type: i0.Component, args: [{
|
|
7913
|
+
selector: 'vdr-asset-file-input',
|
|
7914
|
+
template: "<input type=\"file\" class=\"file-input\" #fileInput (change)=\"select($event)\" multiple [accept]=\"accept\" />\r\n<button class=\"btn btn-primary\" (click)=\"fileInput.click()\" [disabled]=\"uploading\">\r\n <ng-container *ngIf=\"uploading; else selectable\">\r\n <clr-spinner clrInline></clr-spinner>\r\n {{ 'asset.uploading' | translate }}\r\n </ng-container>\r\n <ng-template #selectable>\r\n <clr-icon shape=\"upload-cloud\"></clr-icon>\r\n {{ 'asset.upload-assets' | translate }}\r\n </ng-template>\r\n</button>\r\n<div\r\n class=\"drop-zone\"\r\n [ngStyle]=\"dropZoneStyle\"\r\n [class.visible]=\"dragging\"\r\n [class.dragging-over]=\"overDropZone\"\r\n (dragenter)=\"overDropZone = true\"\r\n (dragleave)=\"overDropZone = false\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\"\r\n #dropZone\r\n>\r\n <div class=\"drop-label\" (dragenter)=\"overDropZone = true\">\r\n <clr-icon shape=\"upload-cloud\" size=\"32\"></clr-icon>\r\n {{ 'catalog.drop-files-to-upload' | translate }}\r\n </div>\r\n</div>\r\n",
|
|
7915
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7916
|
+
styles: [".file-input{display:none}.drop-zone{position:fixed;background-color:var(--color-primary-500);border:3px dashed var(--color-component-border-300);opacity:0;visibility:hidden;z-index:1000;transition:opacity .2s,background-color .2s,visibility 0s .2s;display:flex;align-items:center;justify-content:center}.drop-zone.visible{opacity:.3;visibility:visible;transition:opacity .2s,background-color .2s,border .2s,visibility 0s}.drop-zone .drop-label{background-color:#fffc;border-radius:3px;padding:24px;font-size:32px;pointer-events:none;opacity:.5;transition:opacity .2s}.drop-zone.dragging-over{border-color:#fff;background-color:var(--color-primary-500);opacity:.7;transition:background-color .2s,border .2s}.drop-zone.dragging-over .drop-label{opacity:1}\n"]
|
|
7917
|
+
},] }
|
|
7918
|
+
];
|
|
7919
|
+
AssetFileInputComponent.ctorParameters = function () { return [
|
|
7920
|
+
{ type: ServerConfigService }
|
|
7921
|
+
]; };
|
|
7922
|
+
AssetFileInputComponent.propDecorators = {
|
|
7923
|
+
dropZoneTarget: [{ type: i0.Input }],
|
|
7924
|
+
uploading: [{ type: i0.Input }],
|
|
7925
|
+
selectFiles: [{ type: i0.Output }],
|
|
7926
|
+
onDragEnter: [{ type: i0.HostListener, args: ['document:dragenter',] }],
|
|
7927
|
+
onDragLeave: [{ type: i0.HostListener, args: ['document:dragleave', ['$event'],] }]
|
|
7928
|
+
};
|
|
7929
|
+
|
|
7930
|
+
var AssetPreviewDialogComponent = /** @class */ (function () {
|
|
7931
|
+
function AssetPreviewDialogComponent(dataService) {
|
|
7932
|
+
this.dataService = dataService;
|
|
7933
|
+
}
|
|
7934
|
+
AssetPreviewDialogComponent.prototype.ngOnInit = function () {
|
|
7935
|
+
var _this = this;
|
|
7936
|
+
this.assetWithTags$ = rxjs.of(this.asset).pipe(operators.mergeMap(function (asset) {
|
|
7937
|
+
if (_this.hasTags(asset)) {
|
|
7938
|
+
return rxjs.of(asset);
|
|
7939
|
+
}
|
|
7940
|
+
else {
|
|
7941
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
7942
|
+
return _this.dataService.product.getAsset(asset.id).mapSingle(function (data) { return data.asset; });
|
|
7943
|
+
}
|
|
7944
|
+
}));
|
|
7945
|
+
};
|
|
7946
|
+
AssetPreviewDialogComponent.prototype.hasTags = function (asset) {
|
|
7947
|
+
return asset.hasOwnProperty('tags');
|
|
7948
|
+
};
|
|
7949
|
+
return AssetPreviewDialogComponent;
|
|
7950
|
+
}());
|
|
7951
|
+
AssetPreviewDialogComponent.decorators = [
|
|
7952
|
+
{ type: i0.Component, args: [{
|
|
7953
|
+
selector: 'vdr-asset-preview-dialog',
|
|
7303
7954
|
template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n {{ asset.name }}\r\n </div>\r\n</ng-template>\r\n\r\n<vdr-asset-preview\r\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\r\n [asset]=\"assetWithTags\"\r\n (assetChange)=\"assetChanges = $event\"\r\n (editClick)=\"resolveWith()\"\r\n></vdr-asset-preview>\r\n",
|
|
7304
7955
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7305
7956
|
styles: [":host{height:70vh}.update-button.hidden{visibility:hidden}\n"]
|
|
@@ -7319,9 +7970,13 @@
|
|
|
7319
7970
|
this.canDelete = false;
|
|
7320
7971
|
this.selectionChange = new i0.EventEmitter();
|
|
7321
7972
|
this.deleteAssets = new i0.EventEmitter();
|
|
7322
|
-
this.
|
|
7973
|
+
this.selectionManager = new SelectionManager({
|
|
7974
|
+
multiSelect: this.multiSelect,
|
|
7975
|
+
itemsAreEqual: function (a, b) { return a.id === b.id; },
|
|
7976
|
+
additiveMode: false,
|
|
7977
|
+
});
|
|
7323
7978
|
}
|
|
7324
|
-
AssetGalleryComponent.prototype.ngOnChanges = function () {
|
|
7979
|
+
AssetGalleryComponent.prototype.ngOnChanges = function (changes) {
|
|
7325
7980
|
var e_1, _a;
|
|
7326
7981
|
if (this.assets) {
|
|
7327
7982
|
var _loop_1 = function (asset) {
|
|
@@ -7333,7 +7988,7 @@
|
|
|
7333
7988
|
};
|
|
7334
7989
|
var this_1 = this;
|
|
7335
7990
|
try {
|
|
7336
|
-
for (var _b = __values(this.selection), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
7991
|
+
for (var _b = __values(this.selectionManager.selection), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
7337
7992
|
var asset = _c.value;
|
|
7338
7993
|
_loop_1(asset);
|
|
7339
7994
|
}
|
|
@@ -7346,51 +8001,26 @@
|
|
|
7346
8001
|
finally { if (e_1) throw e_1.error; }
|
|
7347
8002
|
}
|
|
7348
8003
|
}
|
|
8004
|
+
if (changes['assets']) {
|
|
8005
|
+
this.selectionManager.setCurrentItems(this.assets);
|
|
8006
|
+
}
|
|
8007
|
+
if (changes['multiSelect']) {
|
|
8008
|
+
this.selectionManager.setMultiSelect(this.multiSelect);
|
|
8009
|
+
}
|
|
7349
8010
|
};
|
|
7350
8011
|
AssetGalleryComponent.prototype.toggleSelection = function (asset, event) {
|
|
7351
|
-
|
|
7352
|
-
|
|
7353
|
-
var index = this.selection.findIndex(function (a) { return a.id === asset.id; });
|
|
7354
|
-
if (this.multiSelect && (event === null || event === void 0 ? void 0 : event.shiftKey) && 1 <= this.selection.length) {
|
|
7355
|
-
var lastSelection_1 = this.selection[this.selection.length - 1];
|
|
7356
|
-
var lastSelectionIndex = this.assets.findIndex(function (a) { return a.id === lastSelection_1.id; });
|
|
7357
|
-
var currentIndex = this.assets.findIndex(function (a) { return a.id === asset.id; });
|
|
7358
|
-
var start = currentIndex < lastSelectionIndex ? currentIndex : lastSelectionIndex;
|
|
7359
|
-
var end = currentIndex > lastSelectionIndex ? currentIndex + 1 : lastSelectionIndex;
|
|
7360
|
-
(_a = this.selection).push.apply(_a, __spreadArray([], __read(this.assets.slice(start, end).filter(function (a) { return !_this.selection.find(function (s) { return s.id === a.id; }); }))));
|
|
7361
|
-
}
|
|
7362
|
-
else if (index === -1) {
|
|
7363
|
-
if (this.multiSelect && ((event === null || event === void 0 ? void 0 : event.ctrlKey) || (event === null || event === void 0 ? void 0 : event.shiftKey))) {
|
|
7364
|
-
this.selection.push(asset);
|
|
7365
|
-
}
|
|
7366
|
-
else {
|
|
7367
|
-
this.selection = [asset];
|
|
7368
|
-
}
|
|
7369
|
-
}
|
|
7370
|
-
else {
|
|
7371
|
-
if (this.multiSelect && (event === null || event === void 0 ? void 0 : event.ctrlKey)) {
|
|
7372
|
-
this.selection.splice(index, 1);
|
|
7373
|
-
}
|
|
7374
|
-
else if (1 < this.selection.length) {
|
|
7375
|
-
this.selection = [asset];
|
|
7376
|
-
}
|
|
7377
|
-
else {
|
|
7378
|
-
this.selection.splice(index, 1);
|
|
7379
|
-
}
|
|
7380
|
-
}
|
|
7381
|
-
// Make the selection mutable
|
|
7382
|
-
this.selection = this.selection.map(function (x) { return (Object.assign({}, x)); });
|
|
7383
|
-
this.selectionChange.emit(this.selection);
|
|
8012
|
+
this.selectionManager.toggleSelection(asset, event);
|
|
8013
|
+
this.selectionChange.emit(this.selectionManager.selection);
|
|
7384
8014
|
};
|
|
7385
8015
|
AssetGalleryComponent.prototype.selectMultiple = function (assets) {
|
|
7386
|
-
this.
|
|
7387
|
-
this.selectionChange.emit(this.selection);
|
|
8016
|
+
this.selectionManager.selectMultiple(assets);
|
|
8017
|
+
this.selectionChange.emit(this.selectionManager.selection);
|
|
7388
8018
|
};
|
|
7389
8019
|
AssetGalleryComponent.prototype.isSelected = function (asset) {
|
|
7390
|
-
return
|
|
8020
|
+
return this.selectionManager.isSelected(asset);
|
|
7391
8021
|
};
|
|
7392
8022
|
AssetGalleryComponent.prototype.lastSelected = function () {
|
|
7393
|
-
return this.
|
|
8023
|
+
return this.selectionManager.lastSelected();
|
|
7394
8024
|
};
|
|
7395
8025
|
AssetGalleryComponent.prototype.previewAsset = function (asset) {
|
|
7396
8026
|
this.modalService
|
|
@@ -7410,9 +8040,9 @@
|
|
|
7410
8040
|
AssetGalleryComponent.decorators = [
|
|
7411
8041
|
{ type: i0.Component, args: [{
|
|
7412
8042
|
selector: 'vdr-asset-gallery',
|
|
7413
|
-
template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <
|
|
8043
|
+
template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(asset)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img class=\"asset-thumb\" [src]=\"asset | assetPreview: 'thumb'\" />\r\n </div>\r\n <div class=\"detail\">\r\n <vdr-entity-info\r\n [entity]=\"asset\"\r\n [small]=\"true\"\r\n (click)=\"entityInfoClick($event)\"\r\n ></vdr-entity-info>\r\n <span [title]=\"asset.name\">{{ asset.name }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"info-bar\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"placeholder\" *ngIf=\"selectionManager.selection.length === 0\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-selection' | translate }}</div>\r\n </div>\r\n <img\r\n class=\"preview\"\r\n *ngIf=\"selectionManager.selection.length >= 1\"\r\n [src]=\"lastSelected().preview + '?preset=medium'\"\r\n />\r\n </div>\r\n <div class=\"card-block details\" *ngIf=\"selectionManager.selection.length >= 1\">\r\n <div class=\"name\">{{ lastSelected().name }}</div>\r\n <div>{{ 'asset.original-asset-size' | translate }}: {{ lastSelected().fileSize | filesize }}</div>\r\n\r\n <ng-container *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-chip *ngFor=\"let tag of lastSelected().tags\" [colorFrom]=\"tag.value\"\r\n ><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ tag.value }}</vdr-chip\r\n >\r\n <div>\r\n <button (click)=\"previewAsset(lastSelected())\" class=\"btn btn-link\">\r\n <clr-icon shape=\"eye\"></clr-icon> {{ 'asset.preview' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-asset-preview-links class=\"\" [asset]=\"lastSelected()\"></vdr-asset-preview-links>\r\n </div>\r\n <div>\r\n <a [routerLink]=\"['./', lastSelected().id]\" class=\"btn btn-link\">\r\n <clr-icon shape=\"pencil\"></clr-icon> {{ 'common.edit' | translate }}\r\n </a>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"canDelete\">\r\n <button (click)=\"deleteAssets.emit(selectionManager.selection)\" class=\"btn btn-link\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon> {{ 'common.delete' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card stack\" [class.visible]=\"selectionManager.selection.length > 1\"></div>\r\n <div class=\"selection-count\" [class.visible]=\"selectionManager.selection.length > 1\">\r\n {{ 'asset.assets-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n <ul>\r\n <li *ngFor=\"let asset of selectionManager.selection\">{{ asset.name }}</li>\r\n </ul>\r\n </div>\r\n</div>\r\n",
|
|
7414
8044
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7415
|
-
styles: [":host{display:flex;overflow:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-template-rows:repeat(auto-fill,180px);grid-gap:10px 20px;overflow-y:auto;padding-left:12px;padding-top:12px;padding-bottom:12px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}.
|
|
8045
|
+
styles: [":host{display:flex;overflow:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-template-rows:repeat(auto-fill,180px);grid-gap:10px 20px;overflow-y:auto;padding-left:12px;padding-top:12px;padding-bottom:12px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}img.asset-thumb{aspect-ratio:1}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.detail{font-size:12px;margin:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.detail vdr-entity-info{height:16px}.info-bar{width:25%;padding:0 6px;overflow-y:auto}.info-bar .card{z-index:1}.info-bar .stack{z-index:0;opacity:0;transform:perspective(500px) translateZ(0) translateY(-16px);height:16px;transition:transform .3s,opacity 0s .3s;background-color:#fff}.info-bar .stack.visible{opacity:1;transform:perspective(500px) translateZ(-44px) translateY(0);background-color:var(--color-component-bg-100);transition:transform .3s,color .3s}.info-bar .selection-count{opacity:0;position:relative;text-align:center;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.info-bar .selection-count.visible{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}.info-bar .selection-count ul{text-align:left;list-style-type:none;margin-left:12px}.info-bar .selection-count ul li{font-size:12px}.info-bar .placeholder{text-align:center;color:var(--color-grey-300)}.info-bar .preview img{max-width:100%}.info-bar .details{font-size:12px;word-break:break-all}.info-bar .name{line-height:14px;font-weight:bold}\n"]
|
|
7416
8046
|
},] }
|
|
7417
8047
|
];
|
|
7418
8048
|
AssetGalleryComponent.ctorParameters = function () { return [
|
|
@@ -7716,7 +8346,7 @@
|
|
|
7716
8346
|
}
|
|
7717
8347
|
};
|
|
7718
8348
|
AssetPreviewComponent.prototype.getSourceFileName = function () {
|
|
7719
|
-
var parts = this.asset.source.split(
|
|
8349
|
+
var parts = this.asset.source.split(/[\\\/]/g);
|
|
7720
8350
|
return parts[parts.length - 1];
|
|
7721
8351
|
};
|
|
7722
8352
|
AssetPreviewComponent.prototype.onImageLoad = function () {
|
|
@@ -7814,9 +8444,9 @@
|
|
|
7814
8444
|
AssetPreviewComponent.decorators = [
|
|
7815
8445
|
{ type: i0.Component, args: [{
|
|
7816
8446
|
selector: 'vdr-asset-preview',
|
|
7817
|
-
template: "<div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview: size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button class=\"btn btn-primary btn-sm\" (click)=\"setFocalPointEnd()\" [disabled]=\"!lastFocalPoint\">\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"controls\" [class.fade]=\"settingFocalPoint\">\r\n <form [formGroup]=\"form\">\r\n <clr-input-container class=\"name-input\" *ngIf=\"editable\">\r\n <label>{{ 'common.name' | translate }}</label>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </clr-input-container>\r\n\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number: '1.2-2' }}, y:\r\n {{ fpy | number: '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <br />\r\n <button\r\n class=\"btn btn-secondary-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"btn btn-warning-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector formControlName=\"tags\"></vdr-tag-selector>\r\n <button class=\"btn btn-link btn-sm\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </form>\r\n <section *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"preview-select\">\r\n <clr-select-container>\r\n <label>{{ 'asset.preview' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </clr-select-container>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n </div>\r\n <vdr-asset-preview-links class=\"mb4\" [asset]=\"asset\"></vdr-asset-preview-links>\r\n <div *ngIf=\"!editable\" class=\"edit-button-wrapper\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n </div>\r\n</div>\r\n",
|
|
8447
|
+
template: "<div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview: size\"\r\n [ngClass]=\"size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button class=\"btn btn-primary btn-sm\" (click)=\"setFocalPointEnd()\" [disabled]=\"!lastFocalPoint\">\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"controls\" [class.fade]=\"settingFocalPoint\">\r\n <form [formGroup]=\"form\">\r\n <clr-input-container class=\"name-input\" *ngIf=\"editable\">\r\n <label>{{ 'common.name' | translate }}</label>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </clr-input-container>\r\n\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number: '1.2-2' }}, y:\r\n {{ fpy | number: '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <br />\r\n <button\r\n class=\"btn btn-secondary-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"btn btn-warning-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector formControlName=\"tags\"></vdr-tag-selector>\r\n <button class=\"btn btn-link btn-sm\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </form>\r\n <section *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"preview-select\">\r\n <clr-select-container>\r\n <label>{{ 'asset.preview' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </clr-select-container>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n </div>\r\n <vdr-asset-preview-links class=\"mb4\" [asset]=\"asset\"></vdr-asset-preview-links>\r\n <div *ngIf=\"!editable\" class=\"edit-button-wrapper\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n </div>\r\n</div>\r\n",
|
|
7818
8448
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7819
|
-
styles: [":host{display:flex;height:100%}.preview-image{width:100%;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}.edit-button-wrapper{padding-top:6px;border-top:1px solid var(--color-component-border-100);text-align:center}\n"]
|
|
8449
|
+
styles: [":host{display:flex;height:100%}.preview-image{width:100%;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}.edit-button-wrapper{padding-top:6px;border-top:1px solid var(--color-component-border-100);text-align:center}\n"]
|
|
7820
8450
|
},] }
|
|
7821
8451
|
];
|
|
7822
8452
|
AssetPreviewComponent.ctorParameters = function () { return [
|
|
@@ -7893,7 +8523,7 @@
|
|
|
7893
8523
|
return new SingleSearchSelectionModel();
|
|
7894
8524
|
}
|
|
7895
8525
|
|
|
7896
|
-
var ɵ0 = SingleSearchSelectionModelFactory;
|
|
8526
|
+
var ɵ0$1 = SingleSearchSelectionModelFactory;
|
|
7897
8527
|
var AssetSearchInputComponent = /** @class */ (function () {
|
|
7898
8528
|
function AssetSearchInputComponent() {
|
|
7899
8529
|
var _this = this;
|
|
@@ -7984,7 +8614,7 @@
|
|
|
7984
8614
|
selector: 'vdr-asset-search-input',
|
|
7985
8615
|
template: "<ng-select\r\n [addTag]=\"addTagFn\"\r\n [placeholder]=\"'catalog.search-asset-name-or-tag' | translate\"\r\n [items]=\"tags\"\r\n [searchFn]=\"filterTagResults\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"true\"\r\n [markFirst]=\"false\"\r\n (change)=\"onSelectChange($event)\"\r\n #selectComponent\r\n>\r\n <ng-template ng-header-tmp>\r\n <div\r\n class=\"search-header\"\r\n *ngIf=\"selectComponent.searchTerm\"\r\n [class.selected]=\"isSearchHeaderSelected()\"\r\n (click)=\"selectComponent.selectTag()\"\r\n >\r\n {{ 'catalog.search-for-term' | translate }}: {{ selectComponent.searchTerm }}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"item.value\">\r\n <vdr-chip [colorFrom]=\"item.value\" icon=\"close\" (iconClick)=\"clear(item)\"><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ item.value }}</vdr-chip>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.value\">\r\n <vdr-chip [icon]=\"'times'\" (iconClick)=\"clear(item)\">\"{{ item.label || item }}\"</vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"item.value\">\r\n <vdr-chip [colorFrom]=\"item.value\"><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ item.value }}</vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n</ng-select>\r\n",
|
|
7986
8616
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7987
|
-
providers: [{ provide: ngSelect.SELECTION_MODEL_FACTORY, useValue: ɵ0 }],
|
|
8617
|
+
providers: [{ provide: ngSelect.SELECTION_MODEL_FACTORY, useValue: ɵ0$1 }],
|
|
7988
8618
|
styles: [":host{display:block;width:100%}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background:none;margin:0}:host ::ng-deep .ng-dropdown-panel-items div.ng-option:last-child{display:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border:none;padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-left:8px}ng-select{width:100%;min-width:300px;margin-right:12px}.search-header{padding:8px 10px;border-bottom:1px solid var(--color-component-border-100);cursor:pointer}.search-header.selected,.search-header:hover{background-color:var(--color-component-bg-200)}\n"]
|
|
7989
8619
|
},] }
|
|
7990
8620
|
];
|
|
@@ -8037,394 +8667,137 @@
|
|
|
8037
8667
|
this.onTouched();
|
|
8038
8668
|
}
|
|
8039
8669
|
};
|
|
8040
|
-
ChannelAssignmentControlComponent.prototype.channelIsDisabled = function (id) {
|
|
8041
|
-
return this.disableChannelIds.includes(id);
|
|
8042
|
-
};
|
|
8043
|
-
ChannelAssignmentControlComponent.prototype.valueChanged = function (value) {
|
|
8044
|
-
if (Array.isArray(value)) {
|
|
8045
|
-
this.onChange(value.map(function (c) { return c.id; }));
|
|
8046
|
-
}
|
|
8047
|
-
else {
|
|
8048
|
-
this.onChange([value ? value.id : undefined]);
|
|
8049
|
-
}
|
|
8050
|
-
};
|
|
8051
|
-
ChannelAssignmentControlComponent.prototype.compareFn = function (c1, c2) {
|
|
8052
|
-
var c1id = typeof c1 === 'string' ? c1 : c1.id;
|
|
8053
|
-
var c2id = typeof c2 === 'string' ? c2 : c2.id;
|
|
8054
|
-
return c1id === c2id;
|
|
8055
|
-
};
|
|
8056
|
-
ChannelAssignmentControlComponent.prototype.mapIncomingValueToChannels = function (value) {
|
|
8057
|
-
var _this = this;
|
|
8058
|
-
var _a;
|
|
8059
|
-
if (Array.isArray(value)) {
|
|
8060
|
-
if (typeof value[0] === 'string') {
|
|
8061
|
-
this.value = value
|
|
8062
|
-
.map(function (id) { var _a; return (_a = _this.channels) === null || _a === void 0 ? void 0 : _a.find(function (c) { return c.id === id; }); })
|
|
8063
|
-
.filter(sharedUtils.notNullOrUndefined);
|
|
8064
|
-
}
|
|
8065
|
-
else {
|
|
8066
|
-
this.value = value;
|
|
8067
|
-
}
|
|
8068
|
-
}
|
|
8069
|
-
else {
|
|
8070
|
-
if (typeof value === 'string') {
|
|
8071
|
-
var channel = (_a = this.channels) === null || _a === void 0 ? void 0 : _a.find(function (c) { return c.id === value; });
|
|
8072
|
-
if (channel) {
|
|
8073
|
-
this.value = [channel];
|
|
8074
|
-
}
|
|
8075
|
-
}
|
|
8076
|
-
else if (value && value.id) {
|
|
8077
|
-
this.value = [value];
|
|
8078
|
-
}
|
|
8079
|
-
}
|
|
8080
|
-
};
|
|
8081
|
-
return ChannelAssignmentControlComponent;
|
|
8082
|
-
}());
|
|
8083
|
-
ChannelAssignmentControlComponent.decorators = [
|
|
8084
|
-
{ type: i0.Component, args: [{
|
|
8085
|
-
selector: 'vdr-channel-assignment-control',
|
|
8086
|
-
template: "<ng-select\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"multiple\"\r\n [ngModel]=\"value\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [disabled]=\"disabled\"\r\n [compareWith]=\"compareFn\"\r\n (focus)=\"focussed()\"\r\n (change)=\"valueChanged($event)\"\r\n>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span aria-hidden=\"true\" class=\"ng-value-icon left\" (click)=\"clear(item)\"> \u00D7 </span>\r\n <vdr-channel-badge [channelCode]=\"item.code\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{ item.code | channelCodeToLabel | translate }}</span>\r\n </ng-template>\r\n <ng-option *ngFor=\"let item of channels$ | async\" [value]=\"item\" [disabled]=\"channelIsDisabled(item.id)\">\r\n <vdr-channel-badge [channelCode]=\"item.code\"></vdr-channel-badge>\r\n {{ item.code | channelCodeToLabel | translate }}\r\n </ng-option>\r\n</ng-select>\r\n\r\n",
|
|
8087
|
-
changeDetection: i0.ChangeDetectionStrategy.Default,
|
|
8088
|
-
providers: [
|
|
8089
|
-
{
|
|
8090
|
-
provide: forms.NG_VALUE_ACCESSOR,
|
|
8091
|
-
useExisting: ChannelAssignmentControlComponent,
|
|
8092
|
-
multi: true,
|
|
8093
|
-
},
|
|
8094
|
-
],
|
|
8095
|
-
styles: [":host{min-width:200px}:host.clr-input{border-bottom:none;padding:0}::ng-deep .ng-value>vdr-channel-badge,::ng-deep .ng-option>vdr-channel-badge{margin-bottom:-1px}::ng-deep .ng-value>vdr-channel-badge{margin-left:6px}.channel-label{margin-right:6px}\n"]
|
|
8096
|
-
},] }
|
|
8097
|
-
];
|
|
8098
|
-
ChannelAssignmentControlComponent.ctorParameters = function () { return [
|
|
8099
|
-
{ type: DataService }
|
|
8100
|
-
]; };
|
|
8101
|
-
ChannelAssignmentControlComponent.propDecorators = {
|
|
8102
|
-
multiple: [{ type: i0.Input }],
|
|
8103
|
-
includeDefaultChannel: [{ type: i0.Input }],
|
|
8104
|
-
disableChannelIds: [{ type: i0.Input }]
|
|
8105
|
-
};
|
|
8106
|
-
|
|
8107
|
-
var ChannelBadgeComponent = /** @class */ (function () {
|
|
8108
|
-
function ChannelBadgeComponent() {
|
|
8109
|
-
}
|
|
8110
|
-
Object.defineProperty(ChannelBadgeComponent.prototype, "isDefaultChannel", {
|
|
8111
|
-
get: function () {
|
|
8112
|
-
return this.channelCode === sharedConstants.DEFAULT_CHANNEL_CODE;
|
|
8113
|
-
},
|
|
8114
|
-
enumerable: false,
|
|
8115
|
-
configurable: true
|
|
8116
|
-
});
|
|
8117
|
-
return ChannelBadgeComponent;
|
|
8118
|
-
}());
|
|
8119
|
-
ChannelBadgeComponent.decorators = [
|
|
8120
|
-
{ type: i0.Component, args: [{
|
|
8121
|
-
selector: 'vdr-channel-badge',
|
|
8122
|
-
template: "<clr-icon shape=\"layers\" [style.color]=\"isDefaultChannel ? '#aaa' : (channelCode | stringToColor)\"></clr-icon>\r\n",
|
|
8123
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8124
|
-
styles: [":host{display:inline-block}button :host{margin-bottom:-1px}clr-icon{margin-right:6px}\n"]
|
|
8125
|
-
},] }
|
|
8126
|
-
];
|
|
8127
|
-
ChannelBadgeComponent.propDecorators = {
|
|
8128
|
-
channelCode: [{ type: i0.Input }]
|
|
8129
|
-
};
|
|
8130
|
-
|
|
8131
|
-
/**
|
|
8132
|
-
* @description
|
|
8133
|
-
* A chip component for displaying a label with an optional action icon.
|
|
8134
|
-
*
|
|
8135
|
-
* @example
|
|
8136
|
-
* ```HTML
|
|
8137
|
-
* <vdr-chip [colorFrom]="item.value"
|
|
8138
|
-
* icon="close"
|
|
8139
|
-
* (iconClick)="clear(item)">
|
|
8140
|
-
* {{ item.value }}</vdr-chip>
|
|
8141
|
-
* ```
|
|
8142
|
-
* @docsCategory components
|
|
8143
|
-
*/
|
|
8144
|
-
var ChipComponent = /** @class */ (function () {
|
|
8145
|
-
function ChipComponent() {
|
|
8146
|
-
this.invert = false;
|
|
8147
|
-
/**
|
|
8148
|
-
* @description
|
|
8149
|
-
* If set, the chip will have an auto-generated background
|
|
8150
|
-
* color based on the string value passed in.
|
|
8151
|
-
*/
|
|
8152
|
-
this.colorFrom = '';
|
|
8153
|
-
this.iconClick = new i0.EventEmitter();
|
|
8154
|
-
}
|
|
8155
|
-
return ChipComponent;
|
|
8156
|
-
}());
|
|
8157
|
-
ChipComponent.decorators = [
|
|
8158
|
-
{ type: i0.Component, args: [{
|
|
8159
|
-
selector: 'vdr-chip',
|
|
8160
|
-
template: "<div\r\n class=\"wrapper\"\r\n [class.with-background]=\"!invert && colorFrom\"\r\n [style.backgroundColor]=\"!invert && (colorFrom | stringToColor)\"\r\n [style.color]=\"invert && (colorFrom | stringToColor)\"\r\n [style.borderColor]=\"invert && (colorFrom | stringToColor)\"\r\n [ngClass]=\"colorType\"\r\n>\r\n <div class=\"chip-label\"><ng-content></ng-content></div>\r\n <div class=\"chip-icon\" *ngIf=\"icon\">\r\n <button (click)=\"iconClick.emit($event)\">\r\n <clr-icon\r\n [attr.shape]=\"icon\"\r\n [style.color]=\"invert && (colorFrom | stringToColor)\"\r\n [class.is-inverse]=\"!invert && colorFrom\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
8161
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8162
|
-
styles: [":host{display:inline-block}.wrapper{display:flex;border:1px solid var(--color-component-border-300);border-radius:3px;margin:6px}.wrapper.with-background{color:var(--color-grey-100);border-color:transparent}.wrapper.with-background .chip-label{opacity:.9}.wrapper.warning{border-color:var(--color-chip-warning-border)}.wrapper.warning .chip-label{color:var(--color-chip-warning-text);background-color:var(--color-chip-warning-bg)}.wrapper.success{border-color:var(--color-chip-success-border)}.wrapper.success .chip-label{color:var(--color-chip-success-text);background-color:var(--color-chip-success-bg)}.wrapper.error{border-color:var(--color-chip-error-border)}.wrapper.error .chip-label{color:var(--color-chip-error-text);background-color:var(--color-chip-error-bg)}.chip-label{padding:3px 6px;line-height:1em;border-radius:3px;white-space:nowrap;display:flex;align-items:center}.chip-icon{border-left:1px solid var(--color-component-border-200);padding:0 3px;line-height:1em;display:flex}.chip-icon button{cursor:pointer;background:none;margin:0;padding:0;border:none}\n"]
|
|
8163
|
-
},] }
|
|
8164
|
-
];
|
|
8165
|
-
ChipComponent.propDecorators = {
|
|
8166
|
-
icon: [{ type: i0.Input }],
|
|
8167
|
-
invert: [{ type: i0.Input }],
|
|
8168
|
-
colorFrom: [{ type: i0.Input }],
|
|
8169
|
-
colorType: [{ type: i0.Input }],
|
|
8170
|
-
iconClick: [{ type: i0.Output }]
|
|
8171
|
-
};
|
|
8172
|
-
|
|
8173
|
-
/**
|
|
8174
|
-
* ConfigArg values are always stored as strings. If they are not primitives, then
|
|
8175
|
-
* they are JSON-encoded. This function unwraps them back into their original
|
|
8176
|
-
* data type.
|
|
8177
|
-
*/
|
|
8178
|
-
function getConfigArgValue(value) {
|
|
8179
|
-
try {
|
|
8180
|
-
return value ? JSON.parse(value) : undefined;
|
|
8181
|
-
}
|
|
8182
|
-
catch (e) {
|
|
8183
|
-
return value;
|
|
8184
|
-
}
|
|
8185
|
-
}
|
|
8186
|
-
function encodeConfigArgValue(value) {
|
|
8187
|
-
return Array.isArray(value) ? JSON.stringify(value) : (value !== null && value !== void 0 ? value : '').toString();
|
|
8188
|
-
}
|
|
8189
|
-
/**
|
|
8190
|
-
* Creates an empty ConfigurableOperation object based on the definition.
|
|
8191
|
-
*/
|
|
8192
|
-
function configurableDefinitionToInstance(def) {
|
|
8193
|
-
return Object.assign(Object.assign({}, def), { args: def.args.map(function (arg) {
|
|
8194
|
-
return Object.assign(Object.assign({}, arg), { value: getDefaultConfigArgValue(arg) });
|
|
8195
|
-
}) });
|
|
8196
|
-
}
|
|
8197
|
-
/**
|
|
8198
|
-
* Converts an object of the type:
|
|
8199
|
-
* ```
|
|
8200
|
-
* {
|
|
8201
|
-
* code: 'my-operation',
|
|
8202
|
-
* args: {
|
|
8203
|
-
* someProperty: 'foo'
|
|
8204
|
-
* }
|
|
8205
|
-
* }
|
|
8206
|
-
* ```
|
|
8207
|
-
* to the format defined by the ConfigurableOperationInput GraphQL input type:
|
|
8208
|
-
* ```
|
|
8209
|
-
* {
|
|
8210
|
-
* code: 'my-operation',
|
|
8211
|
-
* args: [
|
|
8212
|
-
* { name: 'someProperty', value: 'foo' }
|
|
8213
|
-
* ]
|
|
8214
|
-
* }
|
|
8215
|
-
* ```
|
|
8216
|
-
*/
|
|
8217
|
-
function toConfigurableOperationInput(operation, formValueOperations) {
|
|
8218
|
-
return {
|
|
8219
|
-
code: operation.code,
|
|
8220
|
-
arguments: Object.values(formValueOperations.args || {}).map(function (value, j) { return ({
|
|
8221
|
-
name: operation.args[j].name,
|
|
8222
|
-
value: value.hasOwnProperty('value')
|
|
8223
|
-
? encodeConfigArgValue(value.value)
|
|
8224
|
-
: encodeConfigArgValue(value),
|
|
8225
|
-
}); }),
|
|
8226
|
-
};
|
|
8227
|
-
}
|
|
8228
|
-
function configurableOperationValueIsValid(def, value) {
|
|
8229
|
-
var e_1, _b;
|
|
8230
|
-
if (!def || !value) {
|
|
8231
|
-
return false;
|
|
8232
|
-
}
|
|
8233
|
-
if (def.code !== value.code) {
|
|
8234
|
-
return false;
|
|
8235
|
-
}
|
|
8236
|
-
try {
|
|
8237
|
-
for (var _c = __values(def.args), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
8238
|
-
var argDef = _d.value;
|
|
8239
|
-
var argVal = value.args[argDef.name];
|
|
8240
|
-
if (argDef.required && (argVal == null || argVal === '' || argVal === '0')) {
|
|
8241
|
-
return false;
|
|
8242
|
-
}
|
|
8243
|
-
}
|
|
8244
|
-
}
|
|
8245
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
8246
|
-
finally {
|
|
8247
|
-
try {
|
|
8248
|
-
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
8249
|
-
}
|
|
8250
|
-
finally { if (e_1) throw e_1.error; }
|
|
8251
|
-
}
|
|
8252
|
-
return true;
|
|
8253
|
-
}
|
|
8254
|
-
/**
|
|
8255
|
-
* Returns a default value based on the type of the config arg.
|
|
8256
|
-
*/
|
|
8257
|
-
function getDefaultConfigArgValue(arg) {
|
|
8258
|
-
var _a;
|
|
8259
|
-
return arg.list ? [] : (_a = arg.defaultValue) !== null && _a !== void 0 ? _a : null;
|
|
8260
|
-
}
|
|
8261
|
-
|
|
8262
|
-
/**
|
|
8263
|
-
* Interpolates the description of an ConfigurableOperation with the given values.
|
|
8264
|
-
*/
|
|
8265
|
-
function interpolateDescription(operation, values) {
|
|
8266
|
-
if (!operation) {
|
|
8267
|
-
return '';
|
|
8268
|
-
}
|
|
8269
|
-
var templateString = operation.description;
|
|
8270
|
-
var interpolated = templateString.replace(/{\s*([a-zA-Z0-9]+)\s*}/gi, function (substring, argName) {
|
|
8271
|
-
var normalizedArgName = argName.toLowerCase();
|
|
8272
|
-
var value = values[normalizedArgName];
|
|
8273
|
-
if (value == null) {
|
|
8274
|
-
return '_';
|
|
8275
|
-
}
|
|
8276
|
-
var formatted = value;
|
|
8277
|
-
var argDef = operation.args.find(function (arg) { return arg.name === normalizedArgName; });
|
|
8278
|
-
if (argDef && argDef.type === 'int' && argDef.ui && argDef.ui.component === 'currency-form-input') {
|
|
8279
|
-
formatted = value / 100;
|
|
8280
|
-
}
|
|
8281
|
-
if (argDef && argDef.type === 'datetime' && value instanceof Date) {
|
|
8282
|
-
formatted = value.toLocaleDateString();
|
|
8283
|
-
}
|
|
8284
|
-
return formatted;
|
|
8285
|
-
});
|
|
8286
|
-
return interpolated;
|
|
8287
|
-
}
|
|
8288
|
-
|
|
8289
|
-
/**
|
|
8290
|
-
* A form input which renders a card with the internal form fields of the given ConfigurableOperation.
|
|
8291
|
-
*/
|
|
8292
|
-
var ConfigurableInputComponent = /** @class */ (function () {
|
|
8293
|
-
function ConfigurableInputComponent() {
|
|
8294
|
-
this.readonly = false;
|
|
8295
|
-
this.removable = true;
|
|
8296
|
-
this.remove = new i0.EventEmitter();
|
|
8297
|
-
this.argValues = {};
|
|
8298
|
-
this.form = new forms.FormGroup({});
|
|
8299
|
-
}
|
|
8300
|
-
ConfigurableInputComponent.prototype.interpolateDescription = function () {
|
|
8301
|
-
if (this.operationDefinition) {
|
|
8302
|
-
return interpolateDescription(this.operationDefinition, this.form.value);
|
|
8303
|
-
}
|
|
8304
|
-
else {
|
|
8305
|
-
return '';
|
|
8306
|
-
}
|
|
8307
|
-
};
|
|
8308
|
-
ConfigurableInputComponent.prototype.ngOnChanges = function (changes) {
|
|
8309
|
-
if ('operation' in changes || 'operationDefinition' in changes) {
|
|
8310
|
-
this.createForm();
|
|
8311
|
-
}
|
|
8312
|
-
};
|
|
8313
|
-
ConfigurableInputComponent.prototype.ngOnDestroy = function () {
|
|
8314
|
-
if (this.subscription) {
|
|
8315
|
-
this.subscription.unsubscribe();
|
|
8316
|
-
}
|
|
8317
|
-
};
|
|
8318
|
-
ConfigurableInputComponent.prototype.registerOnChange = function (fn) {
|
|
8319
|
-
this.onChange = fn;
|
|
8320
|
-
};
|
|
8321
|
-
ConfigurableInputComponent.prototype.registerOnTouched = function (fn) {
|
|
8322
|
-
this.onTouch = fn;
|
|
8323
|
-
};
|
|
8324
|
-
ConfigurableInputComponent.prototype.setDisabledState = function (isDisabled) {
|
|
8325
|
-
if (isDisabled) {
|
|
8326
|
-
this.form.disable();
|
|
8670
|
+
ChannelAssignmentControlComponent.prototype.channelIsDisabled = function (id) {
|
|
8671
|
+
return this.disableChannelIds.includes(id);
|
|
8672
|
+
};
|
|
8673
|
+
ChannelAssignmentControlComponent.prototype.valueChanged = function (value) {
|
|
8674
|
+
if (Array.isArray(value)) {
|
|
8675
|
+
this.onChange(value.map(function (c) { return c.id; }));
|
|
8327
8676
|
}
|
|
8328
8677
|
else {
|
|
8329
|
-
this.
|
|
8330
|
-
}
|
|
8331
|
-
};
|
|
8332
|
-
ConfigurableInputComponent.prototype.writeValue = function (value) {
|
|
8333
|
-
if (value) {
|
|
8334
|
-
this.form.patchValue(value);
|
|
8678
|
+
this.onChange([value ? value.id : undefined]);
|
|
8335
8679
|
}
|
|
8336
8680
|
};
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
var _a;
|
|
8342
|
-
return (_a = this.operationDefinition) === null || _a === void 0 ? void 0 : _a.args.find(function (a) { return a.name === arg.name; });
|
|
8681
|
+
ChannelAssignmentControlComponent.prototype.compareFn = function (c1, c2) {
|
|
8682
|
+
var c1id = typeof c1 === 'string' ? c1 : c1.id;
|
|
8683
|
+
var c2id = typeof c2 === 'string' ? c2 : c2.id;
|
|
8684
|
+
return c1id === c2id;
|
|
8343
8685
|
};
|
|
8344
|
-
|
|
8345
|
-
var e_1, _c;
|
|
8686
|
+
ChannelAssignmentControlComponent.prototype.mapIncomingValueToChannels = function (value) {
|
|
8346
8687
|
var _this = this;
|
|
8347
|
-
var _a
|
|
8348
|
-
if (
|
|
8349
|
-
|
|
8350
|
-
|
|
8351
|
-
|
|
8352
|
-
|
|
8353
|
-
}
|
|
8354
|
-
this.form = new forms.FormGroup({});
|
|
8355
|
-
this.form.__id = Math.random().toString(36).substr(10);
|
|
8356
|
-
if (this.operation.args) {
|
|
8357
|
-
var _loop_1 = function (arg) {
|
|
8358
|
-
var value = (_b = this_1.operation.args.find(function (a) { return a.name === arg.name; })) === null || _b === void 0 ? void 0 : _b.value;
|
|
8359
|
-
if (value === undefined) {
|
|
8360
|
-
value = getDefaultConfigArgValue(arg);
|
|
8361
|
-
}
|
|
8362
|
-
var validators = arg.list ? undefined : arg.required ? forms.Validators.required : undefined;
|
|
8363
|
-
this_1.form.addControl(arg.name, new forms.FormControl(value, validators));
|
|
8364
|
-
};
|
|
8365
|
-
var this_1 = this;
|
|
8366
|
-
try {
|
|
8367
|
-
for (var _d = __values(((_a = this.operationDefinition) === null || _a === void 0 ? void 0 : _a.args) || []), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
8368
|
-
var arg = _e.value;
|
|
8369
|
-
_loop_1(arg);
|
|
8370
|
-
}
|
|
8688
|
+
var _a;
|
|
8689
|
+
if (Array.isArray(value)) {
|
|
8690
|
+
if (typeof value[0] === 'string') {
|
|
8691
|
+
this.value = value
|
|
8692
|
+
.map(function (id) { var _a; return (_a = _this.channels) === null || _a === void 0 ? void 0 : _a.find(function (c) { return c.id === id; }); })
|
|
8693
|
+
.filter(sharedUtils.notNullOrUndefined);
|
|
8371
8694
|
}
|
|
8372
|
-
|
|
8373
|
-
|
|
8374
|
-
try {
|
|
8375
|
-
if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
|
|
8376
|
-
}
|
|
8377
|
-
finally { if (e_1) throw e_1.error; }
|
|
8695
|
+
else {
|
|
8696
|
+
this.value = value;
|
|
8378
8697
|
}
|
|
8379
8698
|
}
|
|
8380
|
-
|
|
8381
|
-
if (
|
|
8382
|
-
|
|
8383
|
-
|
|
8384
|
-
|
|
8385
|
-
}
|
|
8699
|
+
else {
|
|
8700
|
+
if (typeof value === 'string') {
|
|
8701
|
+
var channel = (_a = this.channels) === null || _a === void 0 ? void 0 : _a.find(function (c) { return c.id === value; });
|
|
8702
|
+
if (channel) {
|
|
8703
|
+
this.value = [channel];
|
|
8704
|
+
}
|
|
8386
8705
|
}
|
|
8387
|
-
if (
|
|
8388
|
-
|
|
8706
|
+
else if (value && value.id) {
|
|
8707
|
+
this.value = [value];
|
|
8389
8708
|
}
|
|
8390
|
-
});
|
|
8391
|
-
};
|
|
8392
|
-
ConfigurableInputComponent.prototype.validate = function (c) {
|
|
8393
|
-
if (this.form.invalid) {
|
|
8394
|
-
return {
|
|
8395
|
-
required: true,
|
|
8396
|
-
};
|
|
8397
8709
|
}
|
|
8398
|
-
return null;
|
|
8399
8710
|
};
|
|
8400
|
-
return
|
|
8711
|
+
return ChannelAssignmentControlComponent;
|
|
8401
8712
|
}());
|
|
8402
|
-
|
|
8713
|
+
ChannelAssignmentControlComponent.decorators = [
|
|
8403
8714
|
{ type: i0.Component, args: [{
|
|
8404
|
-
selector: 'vdr-
|
|
8405
|
-
template: "<
|
|
8406
|
-
changeDetection: i0.ChangeDetectionStrategy.
|
|
8715
|
+
selector: 'vdr-channel-assignment-control',
|
|
8716
|
+
template: "<ng-select\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"multiple\"\r\n [ngModel]=\"value\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [disabled]=\"disabled\"\r\n [compareWith]=\"compareFn\"\r\n (focus)=\"focussed()\"\r\n (change)=\"valueChanged($event)\"\r\n>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span aria-hidden=\"true\" class=\"ng-value-icon left\" (click)=\"clear(item)\"> \u00D7 </span>\r\n <vdr-channel-badge [channelCode]=\"item.code\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{ item.code | channelCodeToLabel | translate }}</span>\r\n </ng-template>\r\n <ng-option *ngFor=\"let item of channels$ | async\" [value]=\"item\" [disabled]=\"channelIsDisabled(item.id)\">\r\n <vdr-channel-badge [channelCode]=\"item.code\"></vdr-channel-badge>\r\n {{ item.code | channelCodeToLabel | translate }}\r\n </ng-option>\r\n</ng-select>\r\n\r\n",
|
|
8717
|
+
changeDetection: i0.ChangeDetectionStrategy.Default,
|
|
8407
8718
|
providers: [
|
|
8408
8719
|
{
|
|
8409
8720
|
provide: forms.NG_VALUE_ACCESSOR,
|
|
8410
|
-
useExisting:
|
|
8411
|
-
multi: true,
|
|
8412
|
-
},
|
|
8413
|
-
{
|
|
8414
|
-
provide: forms.NG_VALIDATORS,
|
|
8415
|
-
useExisting: i0.forwardRef(function () { return ConfigurableInputComponent; }),
|
|
8721
|
+
useExisting: ChannelAssignmentControlComponent,
|
|
8416
8722
|
multi: true,
|
|
8417
8723
|
},
|
|
8418
8724
|
],
|
|
8419
|
-
styles: [":host{
|
|
8725
|
+
styles: [":host{min-width:200px}:host.clr-input{border-bottom:none;padding:0}::ng-deep .ng-value>vdr-channel-badge,::ng-deep .ng-option>vdr-channel-badge{margin-bottom:-1px}::ng-deep .ng-value>vdr-channel-badge{margin-left:6px}.channel-label{margin-right:6px}\n"]
|
|
8420
8726
|
},] }
|
|
8421
8727
|
];
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8728
|
+
ChannelAssignmentControlComponent.ctorParameters = function () { return [
|
|
8729
|
+
{ type: DataService }
|
|
8730
|
+
]; };
|
|
8731
|
+
ChannelAssignmentControlComponent.propDecorators = {
|
|
8732
|
+
multiple: [{ type: i0.Input }],
|
|
8733
|
+
includeDefaultChannel: [{ type: i0.Input }],
|
|
8734
|
+
disableChannelIds: [{ type: i0.Input }]
|
|
8735
|
+
};
|
|
8736
|
+
|
|
8737
|
+
var ChannelBadgeComponent = /** @class */ (function () {
|
|
8738
|
+
function ChannelBadgeComponent() {
|
|
8739
|
+
}
|
|
8740
|
+
Object.defineProperty(ChannelBadgeComponent.prototype, "isDefaultChannel", {
|
|
8741
|
+
get: function () {
|
|
8742
|
+
return this.channelCode === sharedConstants.DEFAULT_CHANNEL_CODE;
|
|
8743
|
+
},
|
|
8744
|
+
enumerable: false,
|
|
8745
|
+
configurable: true
|
|
8746
|
+
});
|
|
8747
|
+
return ChannelBadgeComponent;
|
|
8748
|
+
}());
|
|
8749
|
+
ChannelBadgeComponent.decorators = [
|
|
8750
|
+
{ type: i0.Component, args: [{
|
|
8751
|
+
selector: 'vdr-channel-badge',
|
|
8752
|
+
template: "<clr-icon shape=\"layers\" [style.color]=\"isDefaultChannel ? '#aaa' : (channelCode | stringToColor)\"></clr-icon>\r\n",
|
|
8753
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8754
|
+
styles: [":host{display:inline-block}button :host{margin-bottom:-1px}clr-icon{margin-right:6px}\n"]
|
|
8755
|
+
},] }
|
|
8756
|
+
];
|
|
8757
|
+
ChannelBadgeComponent.propDecorators = {
|
|
8758
|
+
channelCode: [{ type: i0.Input }]
|
|
8759
|
+
};
|
|
8760
|
+
|
|
8761
|
+
/**
|
|
8762
|
+
* @description
|
|
8763
|
+
* A chip component for displaying a label with an optional action icon.
|
|
8764
|
+
*
|
|
8765
|
+
* @example
|
|
8766
|
+
* ```HTML
|
|
8767
|
+
* <vdr-chip [colorFrom]="item.value"
|
|
8768
|
+
* icon="close"
|
|
8769
|
+
* (iconClick)="clear(item)">
|
|
8770
|
+
* {{ item.value }}</vdr-chip>
|
|
8771
|
+
* ```
|
|
8772
|
+
* @docsCategory components
|
|
8773
|
+
*/
|
|
8774
|
+
var ChipComponent = /** @class */ (function () {
|
|
8775
|
+
function ChipComponent() {
|
|
8776
|
+
this.invert = false;
|
|
8777
|
+
/**
|
|
8778
|
+
* @description
|
|
8779
|
+
* If set, the chip will have an auto-generated background
|
|
8780
|
+
* color based on the string value passed in.
|
|
8781
|
+
*/
|
|
8782
|
+
this.colorFrom = '';
|
|
8783
|
+
this.iconClick = new i0.EventEmitter();
|
|
8784
|
+
}
|
|
8785
|
+
return ChipComponent;
|
|
8786
|
+
}());
|
|
8787
|
+
ChipComponent.decorators = [
|
|
8788
|
+
{ type: i0.Component, args: [{
|
|
8789
|
+
selector: 'vdr-chip',
|
|
8790
|
+
template: "<div\r\n class=\"wrapper\"\r\n [class.with-background]=\"!invert && colorFrom\"\r\n [style.backgroundColor]=\"!invert && (colorFrom | stringToColor)\"\r\n [style.color]=\"invert && (colorFrom | stringToColor)\"\r\n [style.borderColor]=\"invert && (colorFrom | stringToColor)\"\r\n [ngClass]=\"colorType\"\r\n>\r\n <div class=\"chip-label\"><ng-content></ng-content></div>\r\n <div class=\"chip-icon\" *ngIf=\"icon\">\r\n <button (click)=\"iconClick.emit($event)\">\r\n <clr-icon\r\n [attr.shape]=\"icon\"\r\n [style.color]=\"invert && (colorFrom | stringToColor)\"\r\n [class.is-inverse]=\"!invert && colorFrom\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
8791
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8792
|
+
styles: [":host{display:inline-block}.wrapper{display:flex;border:1px solid var(--color-component-border-300);border-radius:3px;margin:6px}.wrapper.with-background{color:var(--color-grey-100);border-color:transparent}.wrapper.with-background .chip-label{opacity:.9}.wrapper.warning{border-color:var(--color-chip-warning-border)}.wrapper.warning .chip-label{color:var(--color-chip-warning-text);background-color:var(--color-chip-warning-bg)}.wrapper.success{border-color:var(--color-chip-success-border)}.wrapper.success .chip-label{color:var(--color-chip-success-text);background-color:var(--color-chip-success-bg)}.wrapper.error{border-color:var(--color-chip-error-border)}.wrapper.error .chip-label{color:var(--color-chip-error-text);background-color:var(--color-chip-error-bg)}.chip-label{padding:3px 6px;line-height:1em;border-radius:3px;white-space:nowrap;display:flex;align-items:center}.chip-icon{border-left:1px solid var(--color-component-border-200);padding:0 3px;line-height:1em;display:flex}.chip-icon button{cursor:pointer;background:none;margin:0;padding:0;border:none}\n"]
|
|
8793
|
+
},] }
|
|
8794
|
+
];
|
|
8795
|
+
ChipComponent.propDecorators = {
|
|
8796
|
+
icon: [{ type: i0.Input }],
|
|
8797
|
+
invert: [{ type: i0.Input }],
|
|
8798
|
+
colorFrom: [{ type: i0.Input }],
|
|
8799
|
+
colorType: [{ type: i0.Input }],
|
|
8800
|
+
iconClick: [{ type: i0.Output }]
|
|
8428
8801
|
};
|
|
8429
8802
|
|
|
8430
8803
|
/**
|
|
@@ -10152,7 +10525,7 @@
|
|
|
10152
10525
|
selector: 'vdr-help-tooltip',
|
|
10153
10526
|
template: "<clr-tooltip>\r\n <clr-icon clrTooltipTrigger shape=\"help\" size=\"14\"></clr-icon>\r\n <clr-tooltip-content [clrPosition]=\"position\" clrSize=\"md\" *clrIfOpen>\r\n <span>{{ content }}</span>\r\n </clr-tooltip-content>\r\n</clr-tooltip>\r\n",
|
|
10154
10527
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
10155
|
-
styles: [""]
|
|
10528
|
+
styles: ["clr-tooltip{display:inline-flex}\n"]
|
|
10156
10529
|
},] }
|
|
10157
10530
|
];
|
|
10158
10531
|
HelpTooltipComponent.propDecorators = {
|
|
@@ -10439,6 +10812,110 @@
|
|
|
10439
10812
|
pageChange: [{ type: i0.Output }]
|
|
10440
10813
|
};
|
|
10441
10814
|
|
|
10815
|
+
var ɵ0 = SingleSearchSelectionModelFactory;
|
|
10816
|
+
var ProductSearchInputComponent = /** @class */ (function () {
|
|
10817
|
+
function ProductSearchInputComponent() {
|
|
10818
|
+
var _this = this;
|
|
10819
|
+
this.searchTermChange = new i0.EventEmitter();
|
|
10820
|
+
this.facetValueChange = new i0.EventEmitter();
|
|
10821
|
+
this.lastTerm = '';
|
|
10822
|
+
this.lastFacetValueIds = [];
|
|
10823
|
+
this.filterFacetResults = function (term, item) {
|
|
10824
|
+
if (!_this.isFacetValueItem(item)) {
|
|
10825
|
+
return false;
|
|
10826
|
+
}
|
|
10827
|
+
var cix = term.indexOf(':');
|
|
10828
|
+
var facetName = cix > -1 ? term.toLowerCase().slice(0, cix) : null;
|
|
10829
|
+
var facetVal = cix > -1 ? term.toLowerCase().slice(cix + 1) : term.toLowerCase();
|
|
10830
|
+
if (facetName) {
|
|
10831
|
+
return (item.facetValue.facet.name.toLowerCase().includes(facetName) &&
|
|
10832
|
+
item.facetValue.name.toLocaleLowerCase().includes(facetVal));
|
|
10833
|
+
}
|
|
10834
|
+
return (item.facetValue.name.toLowerCase().includes(term.toLowerCase()) ||
|
|
10835
|
+
item.facetValue.facet.name.toLowerCase().includes(term.toLowerCase()));
|
|
10836
|
+
};
|
|
10837
|
+
this.isFacetValueItem = function (input) {
|
|
10838
|
+
return typeof input === 'object' && !!input && input.hasOwnProperty('facetValue');
|
|
10839
|
+
};
|
|
10840
|
+
}
|
|
10841
|
+
ProductSearchInputComponent.prototype.setSearchTerm = function (term) {
|
|
10842
|
+
var _this = this;
|
|
10843
|
+
if (term) {
|
|
10844
|
+
this.selectComponent.select({ label: term, value: { label: term } });
|
|
10845
|
+
}
|
|
10846
|
+
else {
|
|
10847
|
+
var currentTerm = this.selectComponent.selectedItems.find(function (i) { return !_this.isFacetValueItem(i.value); });
|
|
10848
|
+
if (currentTerm) {
|
|
10849
|
+
this.selectComponent.unselect(currentTerm);
|
|
10850
|
+
}
|
|
10851
|
+
}
|
|
10852
|
+
};
|
|
10853
|
+
ProductSearchInputComponent.prototype.setFacetValues = function (ids) {
|
|
10854
|
+
var _this = this;
|
|
10855
|
+
var items = this.selectComponent.items;
|
|
10856
|
+
this.selectComponent.selectedItems.forEach(function (item) {
|
|
10857
|
+
if (_this.isFacetValueItem(item.value) && !ids.includes(item.value.facetValue.id)) {
|
|
10858
|
+
_this.selectComponent.unselect(item);
|
|
10859
|
+
}
|
|
10860
|
+
});
|
|
10861
|
+
ids.map(function (id) {
|
|
10862
|
+
return items === null || items === void 0 ? void 0 : items.find(function (item) { return _this.isFacetValueItem(item) && item.facetValue.id === id; });
|
|
10863
|
+
})
|
|
10864
|
+
.filter(sharedUtils.notNullOrUndefined)
|
|
10865
|
+
.forEach(function (item) {
|
|
10866
|
+
var isSelected = _this.selectComponent.selectedItems.find(function (i) {
|
|
10867
|
+
var val = i.value;
|
|
10868
|
+
if (_this.isFacetValueItem(val)) {
|
|
10869
|
+
return val.facetValue.id === item.facetValue.id;
|
|
10870
|
+
}
|
|
10871
|
+
return false;
|
|
10872
|
+
});
|
|
10873
|
+
if (!isSelected) {
|
|
10874
|
+
_this.selectComponent.select({ label: '', value: item });
|
|
10875
|
+
}
|
|
10876
|
+
});
|
|
10877
|
+
};
|
|
10878
|
+
ProductSearchInputComponent.prototype.onSelectChange = function (selectedItems) {
|
|
10879
|
+
var _this = this;
|
|
10880
|
+
if (!Array.isArray(selectedItems)) {
|
|
10881
|
+
selectedItems = [selectedItems];
|
|
10882
|
+
}
|
|
10883
|
+
var searchTermItem = selectedItems.find(function (item) { return !_this.isFacetValueItem(item); });
|
|
10884
|
+
var searchTerm = searchTermItem ? searchTermItem.label : '';
|
|
10885
|
+
var facetValueIds = selectedItems.filter(this.isFacetValueItem).map(function (i) { return i.facetValue.id; });
|
|
10886
|
+
if (searchTerm !== this.lastTerm) {
|
|
10887
|
+
this.searchTermChange.emit(searchTerm);
|
|
10888
|
+
this.lastTerm = searchTerm;
|
|
10889
|
+
}
|
|
10890
|
+
if (this.lastFacetValueIds.join(',') !== facetValueIds.join(',')) {
|
|
10891
|
+
this.facetValueChange.emit(facetValueIds);
|
|
10892
|
+
this.lastFacetValueIds = facetValueIds;
|
|
10893
|
+
}
|
|
10894
|
+
};
|
|
10895
|
+
ProductSearchInputComponent.prototype.addTagFn = function (item) {
|
|
10896
|
+
return { label: item };
|
|
10897
|
+
};
|
|
10898
|
+
ProductSearchInputComponent.prototype.isSearchHeaderSelected = function () {
|
|
10899
|
+
return this.selectComponent.itemsList.markedIndex === -1;
|
|
10900
|
+
};
|
|
10901
|
+
return ProductSearchInputComponent;
|
|
10902
|
+
}());
|
|
10903
|
+
ProductSearchInputComponent.decorators = [
|
|
10904
|
+
{ type: i0.Component, args: [{
|
|
10905
|
+
selector: 'vdr-product-search-input',
|
|
10906
|
+
template: "<ng-select\r\n [addTag]=\"addTagFn\"\r\n [placeholder]=\"'catalog.search-product-name-or-code' | translate\"\r\n [items]=\"facetValueResults\"\r\n [searchFn]=\"filterFacetResults\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"true\"\r\n [markFirst]=\"false\"\r\n (change)=\"onSelectChange($event)\"\r\n #selectComponent\r\n>\r\n <ng-template ng-header-tmp>\r\n <div\r\n class=\"search-header\"\r\n *ngIf=\"selectComponent.searchTerm\"\r\n [class.selected]=\"isSearchHeaderSelected()\"\r\n (click)=\"selectComponent.selectTag()\"\r\n >\r\n {{ 'catalog.search-for-term' | translate }}: {{ selectComponent.searchTerm }}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip\r\n [facetValue]=\"item.facetValue\"\r\n [removable]=\"true\"\r\n (remove)=\"clear(item)\"\r\n ></vdr-facet-value-chip>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.facetValue\">\r\n <vdr-chip [icon]=\"'times'\" (iconClick)=\"clear(item)\">\"{{ item.label }}\"</vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip [facetValue]=\"item.facetValue\" [removable]=\"false\"></vdr-facet-value-chip>\r\n </ng-container>\r\n </ng-template>\r\n</ng-select>\r\n",
|
|
10907
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
10908
|
+
providers: [{ provide: ngSelect.SELECTION_MODEL_FACTORY, useValue: ɵ0 }],
|
|
10909
|
+
styles: [":host{margin-top:6px;display:block;width:100%}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background:none;margin:0}:host ::ng-deep .ng-dropdown-panel-items div.ng-option:last-child{display:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border:none;padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-left:8px}ng-select{width:100%;min-width:300px;margin-right:12px}.search-header{padding:8px 10px;border-bottom:1px solid var(--color-component-border-100);cursor:pointer}.search-header.selected,.search-header:hover{background-color:var(--color-component-bg-200)}\n"]
|
|
10910
|
+
},] }
|
|
10911
|
+
];
|
|
10912
|
+
ProductSearchInputComponent.propDecorators = {
|
|
10913
|
+
facetValueResults: [{ type: i0.Input }],
|
|
10914
|
+
searchTermChange: [{ type: i0.Output }],
|
|
10915
|
+
facetValueChange: [{ type: i0.Output }],
|
|
10916
|
+
selectComponent: [{ type: i0.ViewChild, args: ['selectComponent', { static: true },] }]
|
|
10917
|
+
};
|
|
10918
|
+
|
|
10442
10919
|
/**
|
|
10443
10920
|
* @description
|
|
10444
10921
|
* A component for selecting product variants via an autocomplete-style select input.
|
|
@@ -11258,7 +11735,7 @@
|
|
|
11258
11735
|
},
|
|
11259
11736
|
ProsemirrorService,
|
|
11260
11737
|
],
|
|
11261
|
-
styles: ["@charset \"UTF-8\";::ng-deep .ProseMirror{position:relative}::ng-deep .ProseMirror{word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-feature-settings:none;font-variant-ligatures:none}::ng-deep .ProseMirror pre{white-space:pre-wrap}::ng-deep .ProseMirror li{position:relative}::ng-deep .ProseMirror-hideselection *::selection{background:transparent}::ng-deep .ProseMirror-hideselection *::-moz-selection{background:transparent}::ng-deep .ProseMirror-hideselection{caret-color:transparent}::ng-deep .ProseMirror-selectednode{outline:2px solid var(--color-primary-500)}::ng-deep li.ProseMirror-selectednode{outline:none}::ng-deep li.ProseMirror-selectednode:after{content:\"\";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid var(--color-primary-500);pointer-events:none}::ng-deep .ProseMirror-textblock-dropdown{min-width:3em}::ng-deep .ProseMirror-menu{margin:0 -4px;line-height:1}::ng-deep .ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:pre}::ng-deep .ProseMirror-menuitem{margin-right:3px;display:inline-block}::ng-deep .ProseMirror-menuseparator{border-right:1px solid var(--color-component-border-200);margin-right:3px}::ng-deep .ProseMirror-menu-dropdown,::ng-deep .ProseMirror-menu-dropdown-menu{font-size:90%;white-space:nowrap}::ng-deep .ProseMirror-menu-dropdown{vertical-align:1px;cursor:pointer;position:relative;padding-right:15px}::ng-deep .ProseMirror-menu-dropdown-wrap{padding:1px 0 1px 4px;display:inline-block;position:relative}::ng-deep .ProseMirror-menu-dropdown:after{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 2px)}::ng-deep .ProseMirror-menu-dropdown-menu,::ng-deep .ProseMirror-menu-submenu{position:absolute;background:white;color:var(--color-grey-600);border:1px solid var(--color-component-border-200);padding:2px}::ng-deep .ProseMirror-menu-dropdown-menu{z-index:15;min-width:6em}::ng-deep .ProseMirror-menu-dropdown-item{cursor:pointer;padding:2px 8px 2px 4px}::ng-deep .ProseMirror-menu-dropdown-item:hover{background:var(--color-component-bg-100)}::ng-deep .ProseMirror-menu-submenu-wrap{position:relative;margin-right:-4px}::ng-deep .ProseMirror-menu-submenu-label:after{content:\"\";border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 4px)}::ng-deep .ProseMirror-menu-submenu{display:none;min-width:4em;left:100%;top:-3px}::ng-deep .ProseMirror-menu-active{background:var(--color-component-bg-100);border-radius:4px}::ng-deep .ProseMirror-menu-disabled{opacity:.3}::ng-deep .ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,::ng-deep .ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu{display:block}::ng-deep .ProseMirror-menubar{border-top-left-radius:inherit;border-top-right-radius:inherit;position:relative;min-height:1em;color:var(--color-grey-600);padding:1px 6px;top:0;left:0;right:0;background:var(--color-component-bg-100);z-index:10;box-sizing:border-box;overflow:visible}::ng-deep .ProseMirror-icon{display:inline-block;line-height:.8;vertical-align:-2px;padding:2px 8px;cursor:pointer}::ng-deep .ProseMirror-menu-disabled.ProseMirror-icon{cursor:default}::ng-deep .ProseMirror-icon svg{fill:currentColor;height:1em}::ng-deep .ProseMirror-icon span{vertical-align:text-top}::ng-deep .ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}::ng-deep .ProseMirror-gapcursor:after{content:\"\";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}::ng-deep .ProseMirror-focused .ProseMirror-gapcursor{display:block}::ng-deep .ProseMirror ul,::ng-deep .ProseMirror ol{padding-left:30px;list-style-position:initial}::ng-deep .ProseMirror blockquote{padding-left:1em;border-left:3px solid var(--color-grey-100);margin-left:0;margin-right:0}::ng-deep .ProseMirror-prompt{background:white;padding:5px 10px 5px 15px;border:1px solid silver;position:fixed;border-radius:3px;z-index:11;box-shadow:-.5px 2px 5px #0003}::ng-deep .ProseMirror-prompt h5{margin:0;font-weight:normal;font-size:100%;color:var(--color-grey-500)}::ng-deep .ProseMirror-prompt input[type=text],::ng-deep .ProseMirror-prompt textarea{background:var(--color-component-bg-100);border:none;outline:none}::ng-deep .ProseMirror-prompt input[type=text]{padding:0 4px}::ng-deep .ProseMirror-prompt-close{position:absolute;left:2px;top:1px;color:var(--color-grey-400);border:none;background:transparent;padding:0}::ng-deep .ProseMirror-prompt-close:after{content:\"\\e2\\153\\2022\";font-size:12px}::ng-deep .ProseMirror-invalid{background:var(--color-warning-200);border:1px solid var(--color-warning-300);border-radius:4px;padding:5px 10px;position:absolute;min-width:10em}::ng-deep .ProseMirror-prompt-buttons{margin-top:5px;display:none}::ng-deep #editor,::ng-deep .editor{background:var(--color-form-input-bg);color:#000;background-clip:padding-box;border-radius:4px;border:2px solid rgba(0,0,0,.2);padding:5px 0;margin-bottom:23px}::ng-deep .ProseMirror p:first-child,::ng-deep .ProseMirror h1:first-child,::ng-deep .ProseMirror h2:first-child,::ng-deep .ProseMirror h3:first-child,::ng-deep .ProseMirror h4:first-child,::ng-deep .ProseMirror h5:first-child,::ng-deep .ProseMirror h6:first-child{margin-top:10px}::ng-deep .ProseMirror{padding:4px 8px 4px 14px;line-height:1.2;outline:none}::ng-deep .ProseMirror p{margin-bottom:.5rem;color:var(--color-grey-800)!important}:host{display:block;max-width:710px;margin-bottom:.5rem}:host.readonly ::ng-deep .ProseMirror-menubar{display:none}::ng-deep .ProseMirror-menubar{position:sticky;top:24px;margin-top:6px;border:1px solid var(--color-component-border-200);border-bottom:none;background-color:var(--color-component-bg-200);color:var(--color-icon-button);padding:6px 12px;display:flex;flex-wrap:wrap}::ng-deep .vdr-prosemirror{background:var(--color-form-input-bg);min-height:128px;min-width:200px;border:1px solid var(--color-component-border-200);border-radius:0 0
|
|
11738
|
+
styles: ["@charset \"UTF-8\";::ng-deep .ProseMirror{position:relative}::ng-deep .ProseMirror{word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-feature-settings:none;font-variant-ligatures:none}::ng-deep .ProseMirror pre{white-space:pre-wrap}::ng-deep .ProseMirror li{position:relative}::ng-deep .ProseMirror-hideselection *::selection{background:transparent}::ng-deep .ProseMirror-hideselection *::-moz-selection{background:transparent}::ng-deep .ProseMirror-hideselection{caret-color:transparent}::ng-deep .ProseMirror-selectednode{outline:2px solid var(--color-primary-500)}::ng-deep li.ProseMirror-selectednode{outline:none}::ng-deep li.ProseMirror-selectednode:after{content:\"\";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid var(--color-primary-500);pointer-events:none}::ng-deep .ProseMirror-textblock-dropdown{min-width:3em}::ng-deep .ProseMirror-menu{margin:0 -4px;line-height:1}::ng-deep .ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:pre}::ng-deep .ProseMirror-menuitem{margin-right:3px;display:inline-block}::ng-deep .ProseMirror-menuseparator{border-right:1px solid var(--color-component-border-200);margin-right:3px}::ng-deep .ProseMirror-menu-dropdown,::ng-deep .ProseMirror-menu-dropdown-menu{font-size:90%;white-space:nowrap}::ng-deep .ProseMirror-menu-dropdown{vertical-align:1px;cursor:pointer;position:relative;padding-right:15px}::ng-deep .ProseMirror-menu-dropdown-wrap{padding:1px 0 1px 4px;display:inline-block;position:relative}::ng-deep .ProseMirror-menu-dropdown:after{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 2px)}::ng-deep .ProseMirror-menu-dropdown-menu,::ng-deep .ProseMirror-menu-submenu{position:absolute;background:white;color:var(--color-grey-600);border:1px solid var(--color-component-border-200);padding:2px}::ng-deep .ProseMirror-menu-dropdown-menu{z-index:15;min-width:6em}::ng-deep .ProseMirror-menu-dropdown-item{cursor:pointer;padding:2px 8px 2px 4px}::ng-deep .ProseMirror-menu-dropdown-item:hover{background:var(--color-component-bg-100)}::ng-deep .ProseMirror-menu-submenu-wrap{position:relative;margin-right:-4px}::ng-deep .ProseMirror-menu-submenu-label:after{content:\"\";border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 4px)}::ng-deep .ProseMirror-menu-submenu{display:none;min-width:4em;left:100%;top:-3px}::ng-deep .ProseMirror-menu-active{background:var(--color-component-bg-100);border-radius:4px}::ng-deep .ProseMirror-menu-disabled{opacity:.3}::ng-deep .ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,::ng-deep .ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu{display:block}::ng-deep .ProseMirror-menubar{border-top-left-radius:inherit;border-top-right-radius:inherit;position:relative;min-height:1em;color:var(--color-grey-600);padding:1px 6px;top:0;left:0;right:0;background:var(--color-component-bg-100);z-index:10;box-sizing:border-box;overflow:visible}::ng-deep .ProseMirror-icon{display:inline-block;line-height:.8;vertical-align:-2px;padding:2px 8px;cursor:pointer}::ng-deep .ProseMirror-menu-disabled.ProseMirror-icon{cursor:default}::ng-deep .ProseMirror-icon svg{fill:currentColor;height:1em}::ng-deep .ProseMirror-icon span{vertical-align:text-top}::ng-deep .ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}::ng-deep .ProseMirror-gapcursor:after{content:\"\";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}::ng-deep .ProseMirror-focused .ProseMirror-gapcursor{display:block}::ng-deep .ProseMirror ul,::ng-deep .ProseMirror ol{padding-left:30px;list-style-position:initial}::ng-deep .ProseMirror blockquote{padding-left:1em;border-left:3px solid var(--color-grey-100);margin-left:0;margin-right:0}::ng-deep .ProseMirror-prompt{background:white;padding:5px 10px 5px 15px;border:1px solid silver;position:fixed;border-radius:3px;z-index:11;box-shadow:-.5px 2px 5px #0003}::ng-deep .ProseMirror-prompt h5{margin:0;font-weight:normal;font-size:100%;color:var(--color-grey-500)}::ng-deep .ProseMirror-prompt input[type=text],::ng-deep .ProseMirror-prompt textarea{background:var(--color-component-bg-100);border:none;outline:none}::ng-deep .ProseMirror-prompt input[type=text]{padding:0 4px}::ng-deep .ProseMirror-prompt-close{position:absolute;left:2px;top:1px;color:var(--color-grey-400);border:none;background:transparent;padding:0}::ng-deep .ProseMirror-prompt-close:after{content:\"\\e2\\153\\2022\";font-size:12px}::ng-deep .ProseMirror-invalid{background:var(--color-warning-200);border:1px solid var(--color-warning-300);border-radius:4px;padding:5px 10px;position:absolute;min-width:10em}::ng-deep .ProseMirror-prompt-buttons{margin-top:5px;display:none}::ng-deep #editor,::ng-deep .editor{background:var(--color-form-input-bg);color:#000;background-clip:padding-box;border-radius:4px;border:2px solid rgba(0,0,0,.2);padding:5px 0;margin-bottom:23px}::ng-deep .ProseMirror p:first-child,::ng-deep .ProseMirror h1:first-child,::ng-deep .ProseMirror h2:first-child,::ng-deep .ProseMirror h3:first-child,::ng-deep .ProseMirror h4:first-child,::ng-deep .ProseMirror h5:first-child,::ng-deep .ProseMirror h6:first-child{margin-top:10px}::ng-deep .ProseMirror{padding:4px 8px 4px 14px;line-height:1.2;outline:none}::ng-deep .ProseMirror p{margin-bottom:.5rem;color:var(--color-grey-800)!important}:host{display:block;max-width:710px;margin-bottom:.5rem}:host.readonly ::ng-deep .ProseMirror-menubar{display:none}::ng-deep .ProseMirror-menubar{position:sticky;top:24px;margin-top:6px;border:1px solid var(--color-component-border-200);border-bottom:none;background-color:var(--color-component-bg-200);color:var(--color-icon-button);border-radius:var(--border-radius-input) var(--border-radius-input) 0 0;padding:6px 12px;display:flex;flex-wrap:wrap}::ng-deep .vdr-prosemirror{background:var(--color-form-input-bg);min-height:128px;min-width:200px;border:1px solid var(--color-component-border-200);border-radius:0 0 var(--border-radius-input) var(--border-radius-input);transition:border-color .2s;overflow:auto;text-align:initial}::ng-deep .vdr-prosemirror:focus{border-color:var(--color-primary-500)!important;box-shadow:0 0 1px 1px var(--color-primary-100)}::ng-deep .vdr-prosemirror hr{padding:2px 10px;border:none;margin:1em 0}::ng-deep .vdr-prosemirror hr:after{content:\"\";display:block;height:1px;background-color:silver;line-height:2px}::ng-deep .vdr-prosemirror img{cursor:default;max-width:100%}\n"]
|
|
11262
11739
|
},] }
|
|
11263
11740
|
];
|
|
11264
11741
|
RichTextEditorComponent.ctorParameters = function () { return [
|
|
@@ -11279,6 +11756,7 @@
|
|
|
11279
11756
|
function SelectToggleComponent() {
|
|
11280
11757
|
this.size = 'large';
|
|
11281
11758
|
this.selected = false;
|
|
11759
|
+
this.hiddenWhenOff = false;
|
|
11282
11760
|
this.disabled = false;
|
|
11283
11761
|
this.selectedChange = new i0.EventEmitter();
|
|
11284
11762
|
}
|
|
@@ -11287,14 +11765,15 @@
|
|
|
11287
11765
|
SelectToggleComponent.decorators = [
|
|
11288
11766
|
{ type: i0.Component, args: [{
|
|
11289
11767
|
selector: 'vdr-select-toggle',
|
|
11290
|
-
template: "<div\r\n class=\"toggle\"\r\n [class.disabled]=\"disabled\"\r\n [class.small]=\"size === 'small'\"\r\n [attr.tabindex]=\"disabled ? null : 0\"\r\n [class.selected]=\"selected\"\r\n (keydown.enter)=\"selectedChange.emit(!selected)\"\r\n (keydown.space)=\"$event.preventDefault(); selectedChange.emit(!selected)\"\r\n (click)=\"selectedChange.emit(!selected)\"\r\n>\r\n <clr-icon shape=\"check\" [attr.size]=\"size === 'small' ?
|
|
11768
|
+
template: "<div\r\n class=\"toggle\"\r\n [class.hide-when-off]=\"hiddenWhenOff\"\r\n [class.disabled]=\"disabled\"\r\n [class.small]=\"size === 'small'\"\r\n [attr.tabindex]=\"disabled ? null : 0\"\r\n [class.selected]=\"selected\"\r\n (keydown.enter)=\"selectedChange.emit(!selected)\"\r\n (keydown.space)=\"$event.preventDefault(); selectedChange.emit(!selected)\"\r\n (click)=\"selectedChange.emit(!selected)\"\r\n>\r\n <clr-icon shape=\"check-circle\" [attr.size]=\"size === 'small' ? 24 : 32\"></clr-icon>\r\n</div>\r\n<div class=\"toggle-label\" [class.disabled]=\"disabled\" *ngIf=\"label\" (click)=\"selectedChange.emit(!selected)\">\r\n {{ label }}\r\n</div>\r\n",
|
|
11291
11769
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
11292
|
-
styles: [":host{display:flex;align-items:center;justify-content:center}.toggle{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer;
|
|
11770
|
+
styles: [":host{display:flex;align-items:center;justify-content:center}.toggle{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--color-grey-300);background-color:var(--color-component-bg-100);border-radius:50%;top:-12px;left:-12px;transition:opacity .2s,color .2s}.toggle.hide-when-off{opacity:0}.toggle.small{width:24px;height:24px}.toggle:not(.disabled):hover{color:var(--color-success-400);opacity:.9}.toggle.selected{opacity:1;color:var(--color-success-500)}.toggle.selected:not(.disabled):hover{color:var(--color-success-400);opacity:.9}.toggle:focus{outline:none;box-shadow:0 0 2px 2px var(--color-primary-500)}.toggle.disabled{cursor:default}.toggle-label{flex:1;margin-left:6px;text-align:left;font-size:12px}.toggle-label:not(.disabled){cursor:pointer}\n"]
|
|
11293
11771
|
},] }
|
|
11294
11772
|
];
|
|
11295
11773
|
SelectToggleComponent.propDecorators = {
|
|
11296
11774
|
size: [{ type: i0.Input }],
|
|
11297
11775
|
selected: [{ type: i0.Input }],
|
|
11776
|
+
hiddenWhenOff: [{ type: i0.Input }],
|
|
11298
11777
|
disabled: [{ type: i0.Input }],
|
|
11299
11778
|
label: [{ type: i0.Input }],
|
|
11300
11779
|
selectedChange: [{ type: i0.Output }]
|
|
@@ -12142,7 +12621,7 @@
|
|
|
12142
12621
|
}
|
|
12143
12622
|
RelationAssetInputComponent.prototype.ngOnInit = function () {
|
|
12144
12623
|
var _this = this;
|
|
12145
|
-
this.asset$ = this.
|
|
12624
|
+
this.asset$ = this.formControl.valueChanges.pipe(operators.startWith(this.formControl.value), operators.map(function (asset) { return asset === null || asset === void 0 ? void 0 : asset.id; }), operators.distinctUntilChanged(), operators.switchMap(function (id) {
|
|
12146
12625
|
if (id) {
|
|
12147
12626
|
return _this.dataService.product.getAsset(id).mapStream(function (data) { return data.asset || undefined; });
|
|
12148
12627
|
}
|
|
@@ -12162,14 +12641,14 @@
|
|
|
12162
12641
|
})
|
|
12163
12642
|
.subscribe(function (result) {
|
|
12164
12643
|
if (result && result.length) {
|
|
12165
|
-
_this.
|
|
12166
|
-
_this.
|
|
12644
|
+
_this.formControl.setValue(result[0]);
|
|
12645
|
+
_this.formControl.markAsDirty();
|
|
12167
12646
|
}
|
|
12168
12647
|
});
|
|
12169
12648
|
};
|
|
12170
12649
|
RelationAssetInputComponent.prototype.remove = function () {
|
|
12171
|
-
this.
|
|
12172
|
-
this.
|
|
12650
|
+
this.formControl.setValue(null);
|
|
12651
|
+
this.formControl.markAsDirty();
|
|
12173
12652
|
};
|
|
12174
12653
|
RelationAssetInputComponent.prototype.previewAsset = function (asset) {
|
|
12175
12654
|
this.modalService
|
|
@@ -12182,6 +12661,7 @@
|
|
|
12182
12661
|
};
|
|
12183
12662
|
return RelationAssetInputComponent;
|
|
12184
12663
|
}());
|
|
12664
|
+
RelationAssetInputComponent.id = 'asset-form-input';
|
|
12185
12665
|
RelationAssetInputComponent.decorators = [
|
|
12186
12666
|
{ type: i0.Component, args: [{
|
|
12187
12667
|
selector: 'vdr-relation-asset-input',
|
|
@@ -12196,7 +12676,7 @@
|
|
|
12196
12676
|
]; };
|
|
12197
12677
|
RelationAssetInputComponent.propDecorators = {
|
|
12198
12678
|
readonly: [{ type: i0.Input }],
|
|
12199
|
-
|
|
12679
|
+
formControl: [{ type: i0.Input, args: ['parentFormControl',] }],
|
|
12200
12680
|
config: [{ type: i0.Input }]
|
|
12201
12681
|
};
|
|
12202
12682
|
|
|
@@ -13488,6 +13968,8 @@
|
|
|
13488
13968
|
UiExtensionPointComponent,
|
|
13489
13969
|
CustomDetailComponentHostComponent,
|
|
13490
13970
|
AssetPreviewLinksComponent,
|
|
13971
|
+
ProductMultiSelectorDialogComponent,
|
|
13972
|
+
ProductSearchInputComponent,
|
|
13491
13973
|
];
|
|
13492
13974
|
var DYNAMIC_FORM_INPUTS = [
|
|
13493
13975
|
TextFormInputComponent,
|
|
@@ -13511,6 +13993,8 @@
|
|
|
13511
13993
|
TextareaFormInputComponent,
|
|
13512
13994
|
RichTextFormInputComponent,
|
|
13513
13995
|
JsonEditorFormInputComponent,
|
|
13996
|
+
ProductMultiSelectorFormInputComponent,
|
|
13997
|
+
CombinationModeFormInputComponent,
|
|
13514
13998
|
];
|
|
13515
13999
|
var SharedModule = /** @class */ (function () {
|
|
13516
14000
|
function SharedModule() {
|
|
@@ -14086,7 +14570,7 @@
|
|
|
14086
14570
|
}
|
|
14087
14571
|
|
|
14088
14572
|
// Auto-generated by the set-version.js script.
|
|
14089
|
-
var ADMIN_UI_VERSION = '1.
|
|
14573
|
+
var ADMIN_UI_VERSION = '1.6.1';
|
|
14090
14574
|
|
|
14091
14575
|
/**
|
|
14092
14576
|
* Responsible for registering dashboard widget components and querying for layouts.
|
|
@@ -14412,6 +14896,7 @@
|
|
|
14412
14896
|
exports.ChipComponent = ChipComponent;
|
|
14413
14897
|
exports.ClientDataService = ClientDataService;
|
|
14414
14898
|
exports.CollectionDataService = CollectionDataService;
|
|
14899
|
+
exports.CombinationModeFormInputComponent = CombinationModeFormInputComponent;
|
|
14415
14900
|
exports.ComponentRegistryService = ComponentRegistryService;
|
|
14416
14901
|
exports.ConfigurableInputComponent = ConfigurableInputComponent;
|
|
14417
14902
|
exports.CoreModule = CoreModule;
|
|
@@ -14609,6 +15094,7 @@
|
|
|
14609
15094
|
exports.OverlayHostComponent = OverlayHostComponent;
|
|
14610
15095
|
exports.OverlayHostService = OverlayHostService;
|
|
14611
15096
|
exports.PAYMENT_METHOD_FRAGMENT = PAYMENT_METHOD_FRAGMENT;
|
|
15097
|
+
exports.PREVIEW_COLLECTION_CONTENTS = PREVIEW_COLLECTION_CONTENTS;
|
|
14612
15098
|
exports.PRODUCT_DETAIL_FRAGMENT = PRODUCT_DETAIL_FRAGMENT;
|
|
14613
15099
|
exports.PRODUCT_OPTION_FRAGMENT = PRODUCT_OPTION_FRAGMENT;
|
|
14614
15100
|
exports.PRODUCT_OPTION_GROUP_FRAGMENT = PRODUCT_OPTION_GROUP_FRAGMENT;
|
|
@@ -14620,6 +15106,9 @@
|
|
|
14620
15106
|
exports.PasswordFormInputComponent = PasswordFormInputComponent;
|
|
14621
15107
|
exports.PercentageSuffixInputComponent = PercentageSuffixInputComponent;
|
|
14622
15108
|
exports.ProductDataService = ProductDataService;
|
|
15109
|
+
exports.ProductMultiSelectorDialogComponent = ProductMultiSelectorDialogComponent;
|
|
15110
|
+
exports.ProductMultiSelectorFormInputComponent = ProductMultiSelectorFormInputComponent;
|
|
15111
|
+
exports.ProductSearchInputComponent = ProductSearchInputComponent;
|
|
14623
15112
|
exports.ProductSelectorComponent = ProductSelectorComponent;
|
|
14624
15113
|
exports.ProductSelectorFormInputComponent = ProductSelectorFormInputComponent;
|
|
14625
15114
|
exports.PromotionDataService = PromotionDataService;
|
|
@@ -14665,6 +15154,7 @@
|
|
|
14665
15154
|
exports.STRING_CUSTOM_FIELD_FRAGMENT = STRING_CUSTOM_FIELD_FRAGMENT;
|
|
14666
15155
|
exports.SelectFormInputComponent = SelectFormInputComponent;
|
|
14667
15156
|
exports.SelectToggleComponent = SelectToggleComponent;
|
|
15157
|
+
exports.SelectionManager = SelectionManager;
|
|
14668
15158
|
exports.SentenceCasePipe = SentenceCasePipe;
|
|
14669
15159
|
exports.ServerConfigService = ServerConfigService;
|
|
14670
15160
|
exports.SettingsDataService = SettingsDataService;
|