{"version":3,"sources":["webpack:///../../src/get-product-dimensions-with-availabilities.ts?347b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/classof-raw.js?b933","webpack:///../../../src/utilities/utils.ts?fbc0","webpack:///../../../src/utils/product-list-utils.ts?20d3","webpack:///../../../../src/hydrators/utils/inventory-util.ts?0972","webpack:///../../../../../src/hydrators/utils/data-actions/get-inventory-in-stock-refiner.action.ts?ad6d","webpack:///../../../../src/hydrators/product-list-actions/products-by-category.action.ts?6ed5","webpack:///../../../../src/hydrators/product-list-actions/products-by-recentlyviewed.action.ts?f746","webpack:///../../../src/hydrators/get-simple-products.ts?1a66","webpack:///../../../../src/hydrators/product-list-actions/products-by-recommendation.action.ts?6f98","webpack:///../../../../src/hydrators/product-list-actions/products-by-relationship-id.action.ts?6e59","webpack:///../../../../src/hydrators/product-list-actions/products-by-search.action.ts?f730","webpack:///../../../src/hydrators/product-list-hydrator.ts?e2b4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/define-built-in.js?bec2","webpack:///../../src/get-selected-variant.ts?f0c0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-deno.js?4d77","webpack:///src/data-actions/get-cart-state-data-action.ts?3f39","webpack:///../../src/get-wishlist-by-customer-id.ts?e873","webpack:///../../src/delete-address.ts?f9a3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.parse-float.js?f464","webpack:///../../src/get-attribute-definitions.ts?cc6b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/uid.js?bf93","webpack:///../../src/DataActions/StockCountJournalsDataActions.g.ts?dcda","webpack:///../../src/get-org-unit-configuration.ts?4793","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-regexp.js?5afb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/inherit-if-required.js?ece5","webpack:///../../src/get-dimension-availabilities-for-products.ts?f656","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-property-is-enumerable.js?0a50","webpack:///src/actions/getById-product-telemetry.action.ts?3e17","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/get-substitution.js?1e20","webpack:///../../../src/order-templates/get-full-order-template.ts?72c6","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-symbol.js?6504","webpack:///../../src/get-refiners-by-category.ts?6d4e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-int.js?de1a","webpack:///../../src/DataActions/InventoryInboundOutboundDocumentsDataActions.g.ts?6c38","webpack:///../../src/Interfaces/ICache.ts?0279","webpack:///../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.url-search-params.js?fc18","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterator-define.js?1bd8","webpack:///../../src/refine-search-by-category.ts?3e65","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/own-keys.js?10c6","webpack:///../../../src/order-templates/add-item-to-order-template.ts?fff3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/correct-is-regexp-logic.js?6f8d","webpack:///../../src/get-delivery-options-for-selected-variant.ts?3f6c","webpack:///../../src/get-customer.ts?8319","webpack:///../../../../src/utilities/data-structures/dictionary.ts?bab3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-exec.js?0a55","webpack:///../../src/DataActions/PurchaseOrdersDataActions.g.ts?5ed3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-length.js?3d75","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-ios.js?5c74","webpack:///../../../src/order-templates/add-order-template-to-cart.ts?6ee4","webpack:///../../../src/app-initialization/render-component.tsx?9b51","webpack:///../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack:///../../../src/order-templates/create-order-template.ts?03c1","webpack:///src/cart-state/get-or-create-active-cart.ts?391f","webpack:///src/modules/actions/get-active-image-products.ts?a551","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.url-search-params.constructor.js?7147","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.symbol.description.js?2466","webpack:///src/actions/purchase-telemetry.action.ts?c1a6","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-includes.js?a4b2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/define-global-property.js?9ec6","webpack:///../../src/get-feature-state.ts?1a1d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterate.js?1d6d","webpack:///../../../src/order-templates/update-order-template-header.ts?1f77","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-sort.js?ac37","webpack:///../../src/get-order-history.ts?76fd","webpack:///src/modules/search-result-container/actions/get-mapped-search-configuration.ts?978c","webpack:///../../../../src/utilities/events/event.ts?15a9","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-species-create.js?736c","webpack:///../../../src/invoices/get-invoices.ts?22cb","webpack:///../../../src/store/authoring-edit-helper.ts?e511","webpack:///src/connectors/msdyn365-exp-test/msdyn365-exp-test.provider.ts?22ac","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-webos-webkit.js?da10","webpack:///../../src/DataActions/SuspendedCartsDataActions.g.ts?8576","webpack:///../../src/DataActions/WarehousesDataActions.g.ts?8063","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/set-to-string-tag.js?8922","webpack:///src/modules/list-page-summary/list-page-summary.action.ts?9732","webpack:///src/actions/getVariantsByDimensionValues-telemetry.action.ts?acda","webpack:///../../src/get-scan-results.ts?6b44","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-string.js?3d4f","webpack:///../../src/logging/ConsoleEventWriter.ts?1638","webpack:///../../src/logging/RetailLogger.ts?9e7e","webpack:///../../src/logging/Tracer.ts?faf4","webpack:///../../../../src/utilities/regex/email-regex.ts?6a6a","webpack:///../../../../src/utilities/regex/password-regex.ts?456d","webpack:///../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/indexed-object.js?28be","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.constructor.js?7673","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.dom-collections.for-each.js?0ee3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/a-constructor.js?a9d5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-get-prototype-of.js?6b10","webpack:///../../../src/utilities/input-data-parser.ts?027a","webpack:///src/cart-state/remove-promo-codes.ts?a45c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-ie-or-edge.js?2458","webpack:///../../../src/utilities/culture-info-formatter.ts?d7ca","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-buffer-view-core.js?712c","webpack:///src/dataActions/get-attributes-for-selected-variant.ts?5b72","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/string-multibyte.js?6f5c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.replace.js?ab61","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?044a","webpack:///src/data-actions/tab-state-data-action.ts?8dcc","webpack:///src/cart-state/index.ts?1d80","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-define-property.js?6bb4","webpack:///../../src/update-customer-personalization.ts?4aa9","webpack:///../../src/checkout.ts?57e0","webpack:///../../src/delete-organization-user.ts?7f5d","webpack:///../../../src/utilities/QueryResultSettingsProxy.ts?5e44","webpack:///../../src/get-categories-hierarchy.ts?acde","webpack:///src/connectors/msdyn365-exp-test/msdyn365-exp-test.listener.ts?3fc6","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-null-or-undefined.js?46a7","webpack:///../../src/edit-organization-user.ts?d2ac","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-bind-native.js?2eef","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/check-correctness-of-iteration.js?8c62","webpack:///../../../src/utilities/product-inventory-information.ts?0ec6","webpack:///src/actions/addToCart-telemetry.action.ts?ceef","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-primitive.js?75b8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-iteration.js?c75f","webpack:///src/store-selector-state-manager/base-store-selector-state-manager.ts?edbe","webpack:///src/store-selector-state-manager/map-store-selector-state-manager.ts?d1f8","webpack:///src/store-selector-state-manager/store-selector-state-manager-data-action.ts?22fb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-get-own-property-symbols.js?8c85","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.object.from-entries.js?8319","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/host-report-errors.js?3d3a","webpack:///../../src/get-simple-products.ts?fed7","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/create-property-descriptor.js?b2f0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.js?ffaa","webpack:///../../src/action-registrar.ts?ed12","webpack:///../../src/wrap-data-action.ts?c6a2","webpack:///../../src/create-data-action.vnext.ts?cb4f","webpack:///../../src/create-data-action-hook.ts?619e","webpack:///../../src/action-error.ts?76a5","webpack:///../../src/action-runtime-utils.ts?df0b","webpack:///../../../src/cache/retail-cache-helper.ts?35f4","webpack:///../../src/event-emitter.ts?da67","webpack:///../../src/action-executor.ts?e3c4","webpack:///../../../src/actions/get-catalogs.ts?b35c","webpack:///../../src/helpers.ts?e5d2","webpack:///../../src/action-context.ts?0ab9","webpack:///../../src/mock-helper.ts?6126","webpack:///../../../src/actions/get-media-locations.ts?b49d","webpack:///../../../src/actions/get-additional-media-locations.ts?d6e0","webpack:///../../../src/actions/get-customer.ts?6b9b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.regexp.constructor.js?4c84","webpack:///src/cart-state/update-loyalty-card-id.ts?dcdd","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/string-punycode-to-ascii.js?b4d2","webpack:///../../../src/order-templates/get-order-templates-preview.ts?b8c3","webpack:///../../src/get-channel-delivery-option-configuration.ts?a716","webpack:///../../../../src/_server/inteceptors/ttl-cache.ts?e0fd","webpack:///../../../../src/_server/inteceptors/request-vectorizer.ts?c150","webpack:///../../../../src/_server/inteceptors/rs-logging-interceptor.ts?662d","webpack:///../../../../src/hydrators/link-actions/page-type-context-by-id.ts?6c79","webpack:///../../../src/hydrators/process-page-response.ts?c773","webpack:///../../../src/hydrators/link-hydrator.ts?6237","webpack:///../../../src/store/page-context.ts?7400","webpack:///../../../src/utils/session-storage-utils.ts?6e42","webpack:///../../../src/utils/resolve-segments-utils.ts?6007","webpack:///../../../src/_client/client-render.tsx?dd81","webpack:///../../../src/app-initialization/initialization.ts?f0ba","webpack:///../../../src/app-initialization/utils.ts?39fc","webpack:///../../../src/app-initialization/client-initialization.ts?84a7","webpack:///./node_modules/@msdyn365-commerce/bootloader/entry/client.js?1468","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-keys-internal.js?3fe1","webpack:///../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack:///../../src/msdyn365-commerce.ts?2d5d","webpack:///../../src/get-product-list-lines.ts?ae74","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.regexp.exec.js?e948","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-offset.js?a6cf","webpack:///src/cart-state/add-product-to-cart.ts?9729","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-get-own-property-names.js?70ba","webpack:///src/cart-state/remove-all-promo-codes.ts?16d0","webpack:///src/data-actions/cart-state-data-action.ts?e4d5","webpack:///../../src/get-dimensions-for-selected-variant.ts?6bf4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-assign.js?d50d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.includes.js?1507","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.to-locale-string.js?02a2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/well-known-symbol.js?4e41","webpack:///src/modules/search-result-container/actions/get-product-refiner-hierarchy.ts?bc3c","webpack:///src/data-actions/get-checkout-cart.ts?eb35","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/get-iterator-method.js?46c3","webpack:///../../../../src/utilities/promise-queue/finite-promise-queue.ts?77bf","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/correct-prototype-getter.js?664c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.ends-with.js?5168","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-v8-version.js?a0f6","webpack:///../../src/get-ratings-summary-input.ts?3ccb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/new-promise-capability.js?c9c3","webpack:///src/global-state/i-global-state.ts?b148","webpack:///../../src/get-pickup-options-for-cartlines.ts?843b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.iterator.js?5b4e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-constructor.js?de7d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-create.js?1a5c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/shared.js?2ccc","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-node.js?f102","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-absolute-index.js?42c3","webpack:///src/global-state/index.ts?bbfe","webpack:///src/cart-state/update-cart-line-delivery-specifications.ts?4cfe","webpack:///../src/async-result.ts?1ea5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.unscopables.flat.js?5614","webpack:///./lib/component-registration.js?266e","webpack:///../../src/data-types/index.ts?4f60","webpack:///./node_modules/@msdyn365-commerce/bootloader/common/index.js?2b98","webpack:///src/actions/removeFromCart-telemetry.action.ts?f9cf","webpack:///../../../src/utilities/index.ts?5407","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/promise-resolve.js?e447","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-uncurry-this.js?dac8","webpack:///../../src/get-dimension-availabilities-for-product-search-result.ts?5259","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/enum-bug-keys.js?0bee","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/ordinary-to-primitive.js?ecb1","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/define-built-in-accessor.js?aa0a","webpack:///../../../../src/utilities/extensions/enum-extensions.ts?cf51","webpack:///../../../../src/utilities/extensions/string-extensions.ts?ab9f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.resolve.js?d693","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-exec-abstract.js?3809","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.object.assign.js?21fa","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/try-to-string.js?8e68","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/math-trunc.js?c01b","webpack:///src/checkout-state/base-checkout-cart-state.ts?ce87","webpack:///../../src/get-checkout-cart.ts?79bc","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-uncurry-this-clause.js?e7af","webpack:///./node_modules/@msdyn365-commerce/runtime-internal/node_modules/cookie/index.js?683f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/create-property.js?65e1","webpack:///../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/same-value.js?b985","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/weak-map-basic-detection.js?d870","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.number.to-fixed.js?bb11","webpack:///src/modules/search-result-container/actions/url-utils.ts?6091","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/dom-token-list-prototype.js?3fe1","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-get-flags.js?dabd","webpack:///../../../src/utilities/quick-order-templates.ts?0ea6","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-buffer-basic-detection.js?e434","webpack:///../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack:///../src/index.ts?6f37","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-uncurry-this-accessor.js?90f5","webpack:///./src/actions/get-brand-logo.action.ts?da52","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/an-instance.js?01b0","webpack:///../../src/DataActions/ChecklistsDataActions.g.ts?abe2","webpack:///../../src/cache-utils.ts?471a","webpack:///../../src/exceptions/ErrorHelper.ts?deca","webpack:///src/modules/search-result-container/actions/base-collection-action.ts?32fc","webpack:///../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack:///../../src/exceptions/ProxyError.ts?f6d3","webpack:///src/modules/product-page-summary/product-page-summary.action.ts?836c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/set-species.js?cfa8","webpack:///../../src/update-customer-attributes.ts?8d49","webpack:///./lib/module-registration.js?44dd","webpack:///./node_modules/@msdyn365-commerce-modules/retail-actions/node_modules/uuid/dist/esm-browser/rng.js?b47d","webpack:///./node_modules/@msdyn365-commerce-modules/retail-actions/node_modules/uuid/dist/esm-browser/regex.js?08ba","webpack:///./node_modules/@msdyn365-commerce-modules/retail-actions/node_modules/uuid/dist/esm-browser/stringify.js?6cb1","webpack:///./node_modules/@msdyn365-commerce-modules/retail-actions/node_modules/uuid/dist/esm-browser/validate.js?acea","webpack:///./node_modules/@msdyn365-commerce-modules/retail-actions/node_modules/uuid/dist/esm-browser/v4.js?0101","webpack:///../../../../src/utilities/random/guid.ts?1947","webpack:///../../../../src/utilities/random/index.ts?1f9d","webpack:///src/actions/copyCart-checkOut-telemetry.action.ts?b241","webpack:///../../src/get-full-available-inventory-nearby.ts?20be","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js?7556","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/promise-statics-incorrect-iteration.js?0946","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/whitespaces.js?a48e","webpack:///../../src/get-items-in-wishlist.ts?0d27","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/promise-constructor-detection.js?e35f","webpack:///../../src/get-price-for-selected-variant.ts?9e79","webpack:///src/actions/telemetry.action.helper.ts?4cd3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.reject.js?935f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/ie8-dom-define.js?9b7a","webpack:///../../src/extensions/StringExtensions.ts?6e3d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/url-constructor-detection.js?1a9a","webpack:///../../src/get-full-products-by-refine-search-text.ts?2ad7","webpack:///../../../src/utilities/refiner-utils.ts?1e61","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/flatten-into-array.js?3103","webpack:///../../../../src/utilities/Url-builder/parameterize.ts?f5a5","webpack:///../../../../src/utilities/Url-builder/category-url-builder.ts?e564","webpack:///../../../../src/utilities/Url-builder/product-url-builder.ts?baf1","webpack:///../../src/get-loyalty-transaction-estimation.ts?e254","webpack:///../../src/index.ts?0e3e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/promise-native-constructor.js?d95f","webpack:///../../src/consts.ts?a6b5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/this-number-value.js?2c68","webpack:///../../src/get-ratings-summary.ts?49bc","webpack:///./lib/module-registration.local.js?540f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/species-constructor.js?8e9c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-browser.js?dbac","webpack:///../../src/get-full-products-by-refine-search-category.ts?30ab","webpack:///../../../src/contract/IExperimentation.ts?751c","webpack:///../../../src/contract/IGeoLookup.ts?113e","webpack:///../../../../src/interfaces/data-types/IImageData.ts?0fd3","webpack:///../../../../src/components/head-injector/IHtmlHeadModel.ts?bb60","webpack:///../../../../src/components/head-injector/html-head-utils.ts?362e","webpack:///../../../../src/components/head-injector/html-head-include.tsx?2239","webpack:///../../../../src/components/place-holder-for-preview/place-holder-for-preview.tsx?df71","webpack:///../../../../../src/components/image/image-types/empty-placeholder-image.tsx?2dcf","webpack:///../../../../../src/components/image/image-types/loading-placeholder-image.tsx?ca13","webpack:///../../../src/utilities/helper.ts?c2ab","webpack:///../../../../src/utilities/editable-fields/edit-errors.ts?8864","webpack:///../../../../src/utilities/editable-fields/utils.ts?5834","webpack:///../../../../src/utilities/editable-fields/image-field.tsx?1727","webpack:///../../../../src/utilities/editable-fields/text-field.tsx?cc2c","webpack:///../../../../src/utilities/editable-fields/link-field.tsx?8c76","webpack:///../../../../src/utilities/editable-fields/video-field.tsx?e3a4","webpack:///../../../../src/utilities/editable-fields/editable-field.tsx?7a9c","webpack:///../../../../src/components/image/source-builder.ts?cbb3","webpack:///../../../../src/components/image/image-helper.ts?b6f4","webpack:///../../../../../src/components/image/image-types/native-image.tsx?7bcb","webpack:///../../../../../src/components/image/image-types/thumbnail-image.tsx?ef0b","webpack:///../../../../../src/components/image/image-types/main-image.tsx?cfe9","webpack:///../../../../src/components/image/image.tsx?4433","webpack:///../../../src/models/core-context.ts?d3c5","webpack:///../../../src/models/with-context.tsx?ac06","webpack:///../../../src/utilities/http-service.ts?6fa5","webpack:///../../../src/utilities/parameterize.ts?b37e","webpack:///../../../src/utilities/version-utils.ts?2da5","webpack:///../../../src/utilities/page-type-url-builder.ts?cbea","webpack:///../../../src/utilities/get-richtext-html.tsx?b842","webpack:///../../../src/utilities/text.tsx?cf48","webpack:///../../../src/utilities/video.tsx?63b9","webpack:///../../../src/utilities/link.tsx?3a7a","webpack:///../../../src/utilities/links.tsx?88b9","webpack:///../../../src/utilities/request-hook.ts?2aa0","webpack:///../../../src/utilities/performance-analyzer-retriever.ts?0020","webpack:///../../../src/mock/mock-helper.ts?c878","webpack:///../../../../src/utilities/drag-and-drop/drag-and-drop-utils.ts?30bc","webpack:///../../../../src/utilities/drag-and-drop/drag-and-drop-image.ts?9e77","webpack:///../../../../src/utilities/drag-and-drop/drag-and-drop-placehoder.ts?e323","webpack:///../../../../src/utilities/drag-and-drop/drag-and-drop-events.ts?0d12","webpack:///../../../../src/utilities/drag-and-drop/drag-and-drop-authoring.ts?e550","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.regexp.to-string.js?0390","webpack:///src/cart-state/update-cart.ts?d205","webpack:///../../src/DataActions/EmployeesDataActions.g.ts?e814","webpack:///../../src/get-delivery-options-for-cartlines.ts?4dfe","webpack:///src/data-actions/get-checkout-state.ts?9ed7","webpack:///../../src/Interfaces/index.ts?6f35","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-array-iterator-method.js?19ee","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-possible-prototype.js?6548","webpack:///../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/v8-prototype-define-bug.js?1ee2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/shared-key.js?9f43","webpack:///src/modules/msdyn365-pva-chat-connector/actions/getBotFrameworkToken.action.ts?ad7c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-set-prototype-of.js?8d0b","webpack:///../../../../src/utilities/promise-queue/promise-queue.ts?e362","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/a-possible-prototype.js?79e5","webpack:///../../src/get-product-list.ts?ef13","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.url.js?919c","webpack:///../../src/get-address.ts?20a3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/get-method.js?6ac3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-bind-context.js?2ae6","webpack:///../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-keys.js?50e6","webpack:///../../src/externals/index.ts?a0c4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.all.js?6b0e","webpack:///../../src/exceptions/index.ts?d291","webpack:///../../src/get-products-by-category.ts?accf","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-apply.js?e168","webpack:///../../../src/utilities/product-inventory-utils.ts?58b5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/hidden-keys.js?feb3","webpack:///../../src/get-store-location-information.ts?1df0","webpack:///../../src/get-full-products.ts?ba9a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/string-repeat.js?b749","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/does-not-exceed-safe-integer.js?cd34","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.sort.js?01cc","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.number.parse-int.js?605b","webpack:///../../../../src/utilities/extensions/object-extensions.ts?6388","webpack:///src/actions/getByIds-product-telemetry.action.ts?a77c","webpack:///src/data-actions/global-state-data-action.ts?31c0","webpack:///../../../src/attribute-renderers/commerce-insights-attribute-renderer.ts?5c87","webpack:///../../../src/attribute-renderers/exp-attribute-renderer.ts?e5ad","webpack:///../../../../src/interfaces/events/TelemetryEvent.ts?3ff3","webpack:///../../../src/interfaces/ITelemetry.ts?2d8f","webpack:///../../../src/interfaces/ITelemetryCommon.ts?7e00","webpack:///../../../src/event-loggers/commerce-insights-logger.ts?2559","webpack:///../../../src/events/chunking.ts?7060","webpack:///../../../src/events/client-render.ts?7f03","webpack:///../../../src/events/commerce-request-events.ts?1a21","webpack:///../../../src/events/http-service.ts?0d69","webpack:///../../../src/events/web-vitals.ts?20b0","webpack:///../../../src/helpers/common.ts?627b","webpack:///../../../src/telemetry/telemetry-base.ts?5b2a","webpack:///../../../src/telemetry/internal-telemetry.ts?bc2b","webpack:///../../../src/telemetry/static-telemetry.ts?5995","webpack:///../../../src/loggers/logging-helper.ts?d958","webpack:///../../../src/telemetry/telemetry.ts?920f","webpack:///../../../src/privacy/dynamics-privacy-helper.ts?4c7c","webpack:///../../../src/loggers/app-insights-helper.ts?cafe","webpack:///../../../src/loggers/client-app-insights-js-logger.ts?67fa","webpack:///../../../src/loggers/generic-console-logger.ts?d348","webpack:///../../../src/metrics/dapi.ts?83e4","webpack:///../../../src/metrics/metrics.ts?7a78","webpack:///../../../src/strings/exceptions.ts?c950","webpack:///../../../src/strings/messages.ts?2613","webpack:///../../../src/strings/client-render.ts?6638","webpack:///../../../../src/utilities/promise-queue/index.ts?c43d","webpack:///../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-ff-version.js?2b4d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/classof.js?3c33","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-big-int.js?669e","webpack:///external \"React\"?c481","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-from.js?a260","webpack:///../../../../src/utilities/extensions/array-extensions.ts?1a2a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/inspect-source.js?6f5b","webpack:///src/modules/category-page-summary/category-page-summary.action.ts?be94","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterators.js?058a","webpack:///../../src/get-organization-users-count.ts?b5f7","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/copy-constructor-properties.js?1081","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-flags.js?be43","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-fill.js?2ba3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-name.js?07b2","webpack:///./node_modules/@msdyn365-commerce/bootloader/entry/webpack-public-path.js?7553","webpack:///../../../src/order-templates/get-paginated-order-template-lines.ts?9b12","webpack:///../../src/get-full-product-list.ts?ccfb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.parse-int.js?1dfd","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterators-core.js?eda8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/document-create-element.js?9a10","webpack:///src/modules/search-result-container/actions/get-refiners-for-collection.ts?3c89","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/make-built-in.js?8db4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-positive-integer.js?0fbd","webpack:///src/cart-state/remove-cart-lines.ts?06bb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/an-object.js?efe3","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-slice.js?acdb","webpack:///src/cart-state/update-shipping-address.ts?d0ba","webpack:///../../src/generic-data-action.ts?f887","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.iterator.js?2465","webpack:///../../src/exceptions/ErrorParser.ts?d883","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-unsupported-ncg.js?45e2","webpack:///../../../src/invoices/get-invoice-details.ts?66a9","webpack:///../src/DataServiceQuery.ts?8aab","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/symbol-constructor-detection.js?65ce","webpack:///../../src/ICache.ts?b706","webpack:///../../src/get-customer-loyalty-cards.ts?2466","webpack:///external \"ReactDOM\"?4b2d","webpack:///../../../../src/_server/error/HttpException.ts?621a","webpack:///../../../../src/_server/error/HttpRedirectException.ts?19b2","webpack:///../../../src/utils/helpers.ts?7637","webpack:///../../../src/utilities/quick-order-template-line.ts?56d5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/global.js?82bc","webpack:///../../src/get-catalogs.ts?7332","webpack:///src/actions/readCart-telemetry.action.ts?562f","webpack:///../../../src/order-templates/get-order-templates.ts?a3b1","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-object.js?6856","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/a-callable.js?2774","webpack:///../../src/get-loyalty-card.ts?7213","webpack:///src/modules/search-result-container/actions/get-full-products-by-collection.ts?5cc2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/delete-property-or-throw.js?27e0","webpack:///../../src/get-products-in-active-cart.ts?3376","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/create-non-enumerable-property.js?dec0","webpack:///./lib/connector-registration.js?87e5","webpack:///src/cart-state/update-cart-lines.ts?8f5b","webpack:///../../src/get-related-products.ts?6f93","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-define-properties.js?8d4f","webpack:///../../src/add-organization-user.ts?ed86","webpack:///../../src/get-current-category-hierarchy.ts?d48e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/fails.js?fcdc","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-callable.js?bb73","webpack:///../../src/get-current-category.ts?354d","webpack:///../../src/get-media-locations-by-id.ts?8462","webpack:///../../src/create-product-list.ts?7367","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/has-own-property.js?8088","webpack:///src/checkout-state/index.ts?c692","webpack:///src/data-actions/checkout-state-data-action.ts?7dbc","webpack:///../../src/get-category-paths.ts?b007","webpack:///../../src/get-refiners-by-text.ts?c52a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-sticky-helpers.js?e5b4","webpack:///../../../src/utilities/order-templates.ts?d593","webpack:///../../src/get-additional-media-locations-for-selected-variant.ts?fe77","webpack:///src/cart-state/clear-cart-lines-delivery-information.ts?6ad7","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/export.js?0532","webpack:///./src/modules/cat-page-summary/cat-page-summary.action.ts?ef66","webpack:///../../src/get-organization-users.ts?b72e","webpack:///src/checkout-state/checkout-state-storage.ts?2803","webpack:///src/checkout-state/base-checkout-state.ts?d0a0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/length-of-array-like.js?efef","webpack:///../../src/get-promotion-options-for-cartlines.ts?1a35","webpack:///src/cart-state/base-cart-state.ts?5fc2","webpack:///src/cart-state/add-invoices-to-cart.ts?7bff","webpack:///src/cart-state/add-order-invoice-to-cart.ts?73f5","webpack:///src/cart-state/update-receipt-email.ts?9092","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/add-to-unscopables.js?f0c0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.set.js?4ca3","webpack:///../../src/get-price-for-product-search-result.ts?36f8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-for-each.js?ee58","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/shared-store.js?d53b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/define-built-ins.js?7389","webpack:///src/cart-state/refresh-cart.ts?1dbd","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-string-tag-support.js?962a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/proxy-accessor.js?a159","webpack:///./lib/view-registration.js?92f2","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/string-trim.js?769c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-method-is-strict.js?e100","webpack:///src/actions/updateCart-telemetry.action.ts?2995","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-get-own-property-descriptor.js?2eb1","webpack:///src/global-state/global-state.ts?3fc0","webpack:///../../src/issue-loyalty.ts?f8fa","webpack:///src/cart-state/add-promo-code.ts?bcd2","webpack:///../../src/get-customer-balance.ts?d165","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.search.js?0e39","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterator-create-constructor.js?28ad","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-forced.js?ab5d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-user-agent.js?793c","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-array.js?c2a8","webpack:///../../src/get-availabilities-cartlines.ts?b8e8","webpack:///../../src/DataActions/ApplicableOperationsDataActions.g.ts?b88b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-float.js?eb9f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/safe-get-built-in.js?54da","webpack:///../../../../src/utilities/events/index.ts?d3a5","webpack:///../../src/get-media-locations-for-selected-variant.ts?fd54","webpack:///../../src/get-list.ts?4fd5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/advance-string-index.js?89e2","webpack:///../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack:///../../src/request-cache.ts?b274","webpack:///../../src/DataActions/TransferOrdersDataActions.g.ts?97d4","webpack:///../../src/get-product-availabilities-for-selected-variant.ts?0abd","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.catch.js?894e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-ios-pebble.js?4da7","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-is-prototype-of.js?a0b8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.starts-with.js?1b6a","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/call-with-safe-iteration-closing.js?c436","webpack:///../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack:///src/cart-state/set-invoice-line-price.ts?a0a5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-pure.js?d658","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-object.js?2706","webpack:///../../src/externals/DataJS.New.ts?f131","webpack:///../../src/Entities/CommerceTypes.g.ts?34ee","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/get-iterator.js?728f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/internal-state.js?c059","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.sort.js?788f","webpack:///../../src/get-employee.ts?b8bb","webpack:///src/cart-state/clear-cart-line-delivery-mode.ts?8016","webpack:///../../src/get-organization-wide-order-history.ts?92b8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/iterator-close.js?b8a4","webpack:///src/state-interfaces/index.ts?fd96","webpack:///src/modules/search-result-container/actions/index.ts?3dfa","webpack:///../../src/get-categories.ts?8dc6","webpack:///../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/use-symbol-as-uid.js?1cf4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.finally.js?790a","webpack:///../src/DataServiceRequest.ts?423e","webpack:///./node_modules/@msdyn365-commerce/runtime-internal/node_modules/universal-cookie/es6/utils.js?c681","webpack:///./node_modules/@msdyn365-commerce/runtime-internal/node_modules/universal-cookie/es6/Cookies.js?a444","webpack:///./node_modules/@msdyn365-commerce/runtime-internal/node_modules/universal-cookie/es6/index.js?d1ca","webpack:///../../../src/utils/cookie-utils.ts?31b7","webpack:///src/search-state-data-action.ts?8823","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/queue.js?9df2","webpack:///../../src/DataActions/ShiftsDataActions.g.ts?57b8","webpack:///src/modules/default-page-summary/default-page-summary.action.ts?121d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/perform.js?e071","webpack:///src/data-actions/get-cart-state.ts?6577","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-species-constructor.js?e33f","webpack:///../../src/DataActions/CustomersDataActions.g.ts?081a","webpack:///../../../src/order-templates/update-order-template-line.ts?527b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/not-a-regexp.js?d5b0","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.url.constructor.js?280e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/get-built-in.js?e42a","webpack:///src/index.ts?c6ae","webpack:///../../src/externals/handler.ts?a98d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/microtask.js?8742","webpack:///../../src/update-address.ts?3e4d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-webkit-version.js?44da","webpack:///../../src/add-address.ts?fb17","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-indexed-object.js?e097","webpack:///../../../src/components/add-module-control.tsx?59cd","webpack:///../../../src/components/module-client-render-component.tsx?9466","webpack:///../../../src/components/add-module-wrapper.tsx?05b8","webpack:///../../../src/components/render-view.tsx?751d","webpack:///../../../src/components/error-module.tsx?67fa","webpack:///../../../src/components/safe-render-module.tsx?04c3","webpack:///../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack:///../../../src/utilities/getRnrKeys.ts?700f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.flat.js?b9ed","webpack:///../../src/search-by-text.ts?ebe1","webpack:///../../src/externals/helper.ts?18b4","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/descriptors.js?e096","webpack:///../../src/get-search-configuration.ts?acd1","webpack:///../../../src/utils/link-utils.ts?3f81","webpack:///../../../src/hydrators/hydrator-action-inputs.ts?51eb","webpack:///src/modules/search-result-container/list-page-state.ts?90c8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/dom-iterables.js?99eb","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/validate-arguments-length.js?b455","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/task.js?9f4f","webpack:///src/data-actions/accordion-state-data-action.ts?0c51","webpack:///../../src/get-attributes-for-selected-variant.ts?af00","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.race.js?f481","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/web.dom-collections.iterator.js?4e31","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/regexp-unsupported-dot-all.js?e548","webpack:///../../../src/order-templates/get-full-order-templates.ts?b553","webpack:///../../src/add-item-to-product-list.ts?580e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-property-key.js?b48f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.fill.js?6f60","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-integer-or-infinity.js?7562","webpack:///../src/retail-action.ts?fc97","webpack:///../../src/DataActions/PickingListsDataActions.g.ts?9bf8","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/require-object-coercible.js?9479","webpack:///../../src/update-primary-address.ts?83fa","webpack:///src/modules/search-result-container/actions/get-inventory-refiners.ts?a682","webpack:///../../../src/app-initialization/models.ts?a775","webpack:///../../../src/data/load-data.ts?fc90","webpack:///../../../src/utils/data-action-extension-helper.ts?35ec","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/function-call.js?d1fb","webpack:///src/state-interfaces/checkout-state-enums.ts?90d5","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/html.js?8a1f","webpack:///src/cart-state/update-cart-line-quantity.ts?ba37","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/create-iter-result-object.js?f741"],"names":["ProductDimensionsWithAvailabilitiesInput","constructor","productId","channelId","requestContext","getCacheKey","getCacheObjectType","dataCacheType","this","catalogId","getCatalogId","createObservableDataAction","id","action","async","input","context","_input$catalogId","activeProducts","ArrayExtensions","validValues","ProductsDataActions","getByIdsAsync","callerContext","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","hasElements","activeProduct","Dimensions","promises","map","dimension","shippingInventoryConfiguration","createInventoryAvailabilitySearchCriteria","undefined","searchCriteria","RequestedDimensionTypeValue","DimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","CatalogId","getDimensionValuesWithEstimatedAvailabilitiesAsync","MasterProductId","RecordId","then","dimensionValues","_objectSpread","dimensionValuesWithInventory","Promise","all","inputData","getSelectedProductIdFromActionInput","apiSettings","Error","uncurryThis","toString","stringSlice","slice","module","exports","it","_context$query","query","urlTokens","itemId","pageType","config","generateImageUrl","imageUrl","generateImageUrlFromSdk","DimensionTypes","DimensionSwatchDisplayTypes","checkIfShouldDisplayAsSwatch","dimensionType","displayType","arguments","length","default","productCard","dimensionsToDisplayOnProductCard","app","dimensionsInProductCard","includes","none","dimensionsToDisplayAsSwatch","dimensionsAsSwatchType","generateSwatchImageUrl","startsWith","baseImageUrl","encodeURIComponent","generateProductImageUrl","product","PrimaryImageUrl","buildWishlistLine","customerId","wishlistId","CommerceListId","ProductId","CustomerId","getProductDetailsCriteriaFromActionInput","getPrice","hidePrice","getRating","hideRating","buildCacheKey","base","locale","DefaultCacheKeyParameterKeys","generateCacheKey","_len","entries","Array","_key","parsedEntries","pair","key","toLocaleUpperCase","value","cacheKeyArgumentsKeys","channelIdKey","push","appSettingsCatalogIdKey","sort","a","b","localeCompare","join","buildCacheKeyWithUrlTokens","defaultCacheKey","recordId","getFallbackImageUrl","isOmniFeatureEnabled","parsedItemId","trim","split","convertProductDimensionTypeToDimensionTypes","productDimensionType","ProductDimensionType","Color","color","Configuration","configuration","Size","size","Style","style","convertDimensionTypeToProductDimensionType","None","setDimensionValuesToQuery","inputUrl","productDimensions","_dimension$DimensionV","dimensionValue","DimensionValue","Value","StringExtensions","isNullOrWhitespace","searchParams","set","msdyn365Commerce","isBrowser","window","history","replaceState","state","replace","host","location","parseDimensionsFromUrl","urlParameters","parsedDimensions","parseDimensionFromUrl","localDimensionType","get","getDimensionValuesFromQuery","URL","toLocaleLowerCase","getAttributeValuesByConfiguration","attributeValues","channelInventoryConfiguration","filter","attribute","InventoryProductAttributeRecordId","ProductAvailabilitySortableAttributeRecordId","removeDomainQspFromUrl","features","remove_domain_qsp","Url","urlParams","URLSearchParams","search","has","delete","validateCatalogId","getProductImageUrls","products","productsWithImageUrls","forEach","getInventorySorting","sorting","Columns","ColumnName","IsDescending","ProductListInventoryFilteringOptions","InventoryInStockRefinerValueInput","actionContext","_this$channelInventor","getInventoryInStockRefinerAction","_input$channelInvento","refiners","ctx","versionGte","process","require","getProductSearchRefinersAsync","productRefiners","trace","result","resolve","getProductRefinerHierarchy","Context","ChannelId","count","inventoryRefiner","find","refiner","_input$channelInvento2","inStockRefiner","Values","LeftValueBoundString","InventoryOutOfStockAttributeValueText","RightValueBoundString","getProductsByCategoryListAction","categoryId","listMetadata","categoryIds","toLowerCase","CATEGORY_PAGE_NAME","categories","telemetry","debug","productSearchCriteria","CategoryIds","SkipVariantExpansion","IncludeAttributes","Paging","Top","pageSize","_context$requestConte","_context$requestConte2","_context$requestConte3","_context$requestConte4","productListInventoryDisplay","HideOOS","SortOOS","StoreOperationsDataActions","getInventoryConfigurationAsync","inventoryInStockRefinerValueInput","inventoryInStockRefinerValue","Refinement","Sorting","searchByCriteriaAsync","catch","error","getProductsByRecentlyViewedListAction","searchCriteriaInput","cookieContext","CookieContext","getCatalogIdForSdk","cookieValue","productIds","Ids","_ctx$requestContext$a","_ctx$requestContext$a2","_ctx$requestContext$a3","_ctx$requestContext$a4","ProductInput","createGetByIdsInput","DataServiceQuery","productsQuery","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","inputs","isArray","productIdMapping","idx","request","executeAction","getByIdsAsyncAction","mappedProducts","reduce","memo","isBatched","getProductIdForReco","recommendationCriteria","includeCart","cart","cookies","cartCookieParts","getCartCookie","user","isAuthenticated","readCart","readAsync","Id","getCart","CartLines","cartProductIds","element","includePageContext","PDP_PAGE_NAME","getProductsByNewSearchByCriteria","customer","getCustomerActionDataAction","GetCustomerInput","CustomerAccountNumber","AccountNumber","customerAccountNumber","RecommendationListId","recommendationListId","disable_sequential_call_for_recoProducts","getCategoryIdForReco","productSearchResults","productSearchResultsTmp","item","IsMasterProduct","e","getProductsByRecommendationListAction","PICKS_FOR_YOU_LIST","proxyContext","reccomendationListId","missingType","actionInputError","ProductIds","personalization","isHideAndSortByInventoryAvailabilitySupported","_context$requestConte5","JSON","stringify","FREQUENTLY_BOUGHT_TOGETHER_LIST","getElementsAsync","recommendedElements","productInputs","productTypeId","catalogIdNumber","i","ElementId","ElementTypeValue","itemIds","_context$requestConte6","_context$requestConte7","unorderedProductSearchResults","orderProductSearchResults","getProductsByRelationshipIdListAction","relationshipId","getRelatedProductsAsync","getProductsBySearchListAction","searchText","q","searchByTextAsync","hydrateProductList","listMetaData","moduleId","propertyToMapInConfig","productListMetaData","ProductListType","listType","productBySearch","productByCategory","relatedProducts","recentlyViewedProducts","editorial","algo","recommendation","INVALID_PRODUCT_LIST_TYPE","ProductListInput","productList","Name","updateListDataInRequestCache","EXCEPTION_PRODUCT_LIST_ACTION","exception","shouldOptimizeHydrate","requestCache","cacheValue","typeName","MODULE_CONFIG_KEY","toJS","_set2","put","isCallable","definePropertyModule","makeBuiltIn","defineGlobalProperty","O","options","simple","enumerable","name","global","unsafe","f","configurable","nonConfigurable","writable","nonWritable","SelectedVariantInput","matchingDimensionValues","getSelectedVariantActionDataAction","_input$matchingDimens","_input$catalogId2","url","requestUrl","hasUnmatchedDimension","checkIfHasUnmatchedDimensions","matchedTargetDimension","targetDimension","newImageUrl","fullDimensions","_product$Dimensions","fullDimensionPromises","getFullDimensions","productVariant","variantProductId","variantImageUrl","getProductVariant","matchedTargetDimensionFromApi","selectedProduct","Deno","version","GetCartStateDataInput","_this$catalogId","getCartStateData","cartState","getCartState","retailActionDataAction","retailAction","createGetByCustomerInput","deleteAddressHandler","address","Addresses","cur","doAddressManagementOperation","createAddressManagementInput","$","$parseFloat","forced","parseFloat","GetAttributeDefinitionsInput","attributeDefinitionCriteria","channel","CustomerAttributeGroupId","getAttributeDefinitionsAsync","response","AttributeGroupIdentifier","postfix","Math","random","createGetOrgUnitConfigurationInput","isObject","classof","MATCH","wellKnownSymbol","isRegExp","setPrototypeOf","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","prototype","ProductsDimensionAvailabilitiesInput","masterProductId","requestDimensionType","requestDimensionTypes","_this$_requestContext","keys","_requestContext","getDimensionAvailabilitiesForProductsAction","promise","RequestedDimensionTypeValues","InventoryAccuracyValue","InventoryAccuracy","Low","_inputData$config","productsDimensions","productDimension","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","Object","NASHORN_BUG","call","1","V","descriptor","createDataActionHook","actionId","postReaderHook","_inputs","simpleProduct","productInfo","getProductInfoFromSimpleProduct","telemetryData","productSku","TelemetryEvent","ProductPageView","preReaderHook","toObject","floor","charAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","n","GetFullOrderTemplateInput","orderTemplateId","inputParams","GetOrderTemplatesInput","productLists","getOrderTemplates","inputLines","GetPaginatedOrderTemplateLinesInput","linesState","getPaginatedOrderTemplateLinesAction","OrderTemplate","lines","totalCount","createGetFullOrderTemplateInput","fromInputData","QueryResultSettings","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","$Symbol","RefinersByCategoryInput","category","queryResultSettingsProxy","currentCategory","cacheKeyHint","shouldCacheOutput","categorySlug","getCurrentCategory","getRefinersByCategoryAsync","CurrentCategoryInput","fails","whitespaces","$parseInt","parseInt","Symbol","ITERATOR","iterator","hex","exec","FORCED","string","radix","S","ICacheSource","commerceListsQuery","createCommerceListAsync","entity","create","createCreateInput","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","IS_PURE","FunctionName","createIteratorConstructor","getPrototypeOf","setToStringTag","createNonEnumerableProperty","defineBuiltIn","Iterators","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","NAME","IteratorConstructor","next","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","target","proto","refinementCriteria","createRefineSearchByCategoryInput","Number","refinementCriterion","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","concat","getOwnPropertySymbols","AddItemToOrderTemplateInput","quantity","unitOfMeasure","isMultipleCatalogFeatureEnabledInHq","addItemToOrderTemplateActionDataAction","productListLineToAdd","ProductListId","Quantity","UnitOfMeasure","productListLine","addProductListLinesAsync","addItemToOrderTemplateInput","METHOD_NAME","regexp","error1","error2","GetDeliveryOptionsForSelectedVariantInput","featureState","getFeatureState","getFeatureStateActionDataAction","FeatureStateInput","createDeliveryOptionsForSelectedVariantInput","getDeliveryOptionsForSelectedVariantAction","_featureState$find","IsEnabled","selectedVariantInput","getSelectedVariant","productResult","getDeliveryOptionsAsync","ItemTypeValue","ReleasedProductType","Service","FilterDeliveryModeOption","FilterOutNonPickupDeliveryMode","message","getDeliveryOptionsForSelectedVariantActionDataAction","accountNumber","cacheType","CustomersDataActions","token","Dictionary","_values","_length","keyValuePair","setValue","removeValue","hasValue","getValue","getValueWithDefaultValue","defaultValue","isEmpty","clear","getValues","getKeys","getKeyValuePairs","re1","re2","regexpFlags","stickyHelpers","shared","getInternalState","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","String","nativeExec","RegExp","patchedExec","indexOf","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","object","group","re","raw","groups","sticky","flags","source","charsAdded","strCopy","multiline","index","toIntegerOrInfinity","min","argument","userAgent","test","AddOrderTemplateToCartInput","addOrderTemplateToCartActionDataAction","Skip","getPaginatedOrderTemplateLinesInput","orderTemplateLines","addedCartLines","skip","cartLines","productLine","_productLine$fullProd","ItemId","fullProduct","ProductDetails","TrackingId","UnitOfMeasureSymbol","addCartLinesAsync","Version","_error$data","_error$data2","data","ValidationResults","refreshCart","addOrderTemplateToCartInput","getModuleBinder","moduleBinder","getBinder","lookupKey","moduleName","pageInsightsEnabled","view","componentBinder","_requestCache$get","componentInsightsKey","getPageInsightsCacheKey","PAGE_INSIGHTS_COMPONENTS_KEY","componentInsights","lookupFunc","themeBinder","moduleNamespace","packageName","getComponent","cache","getAppCache","isPageInsightsEnabled","params","cacheKey","actionContextData","log","LogLevel","Debug","component","parentThemeName","getModuleName","parentDefinitionPath","parentThemeBinder","defaultComponentLookupFunc","parentModuleBinder","createComponent","componentObj","props","EXCEPTION_NOMODULEBINDER","asSystemMetadata","componentName","path","__filename","theme","componentView","Component","propsDictionary","addChunk","cn","React","createElement","assign","cartsQuery","createCartAsync","createUpdateInput","update","updateAsync","createDeleteAsync","deleteAsync","createReadAsync","read","createReadAllAsync","readAllAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","checkoutLocation","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","filterOption","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","getDeliveryPreferencesAsync","createGetDeliveryOptionsInput","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","amount","addChargeAsync","createOverrideChargeInput","chargeLineId","reasonCodeLines","overrideChargeAsync","createAddCartLineChargeInput","cartLineId","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","getDeclinedOrVoidedCardReceiptsAsync","createCopyInput","targetCartType","copyAsync","createAddInvoicedSalesLinesToCartInput","transactionId","invoicedSalesLinesIds","addInvoicedSalesLinesToCartAsync","createRecallInvoicedSalesLinesInput","recallInvoicedSalesLineLookups","recallInvoicedSalesLinesAsync","createVoidTenderLineInput","isPreprocessed","forceVoid","voidTenderLineAsync","createIssueGiftCardInput","giftCardId","lineDescription","tenderTypeId","issueGiftCardAsync","createRefillGiftCardInput","refillGiftCardAsync","createCashOutGiftCardInput","cashOutGiftCardAsync","createSuspendInput","suspendAsync","createSuspendWithJournalInput","journalCartId","suspendWithJournalAsync","createResumeInput","resumeAsync","createResumeFromReceiptIdInput","receiptId","resumeFromReceiptIdAsync","createRemoveDiscountCodesInput","discountCodes","removeDiscountCodesAsync","createGetSuspendedInput","getSuspendedAsync","createOverrideCartLinePriceInput","price","overrideCartLinePriceAsync","createGetCardPaymentAcceptPointInput","cardPaymentAcceptSettings","extensionProperties","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderSearchCriteria","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","getPromotionsAsync","createGetAvailablePromotionsInput","getAvailablePromotionsAsync","createRecallSalesInvoiceInput","invoiceId","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","discountCode","addDiscountCodeAsync","createGetReturnOptionsInput","getReturnOptionsAsync","createValidateForCheckoutInput","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","CreateOrderTemplateInput","templateName","createOrderTemplateActionDataAction","orderTemplate","ProductListTypeValue","createdProductList","createProductListAsync","createOrderTemplateInput","CartTokenPrefix","getOrCreateActiveCart","readCartId","Auth","Anon","setCartCookie","handleItemDiscontinuedException","getCartFromCookie","wasReadFromCookie","authCarts","IncludeAnonymous","CartTypeValue","searchCarts","getCartFromCustomer","anonCart","currentCart","anonCurrentCart","newCart","claimAuthCart","claimCart","mergedCart","sourceCart","destinationCart","updatedCart","cartLinesToDelete","hasShippingMethod","channelConfiguration","featureNames","cartline","newCartLine","IsGiftCardLine","buildGiftCardLine","_featureStates$find","featureStates","getFeatureStatesAsync","_channelDeliveryOptio","channelDeliveryOptionConfig","getChannelDeliveryOptionConfigurationAsync","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","FulfillmentStoreId","ShippingAddress","WarehouseId","PickupDeliveryModeCode","ExtensionProperties","Description","ReasonCodeLines","AttributeValues","EntryMethodTypeValue","IsPriceKeyedIn","Price","LineId","Coupons","coupons","coupon","Code","addCartLines","claimAnonCart","createNewCart","LoyaltyCardId","card","getCustomerLoyaltyCardsAsync","CardNumber","errorObj","information","NetPrice","GiftCardBalance","ActiveImageInput","_cacheKey","activePoints","activePointData","createInput","getActiveImageproductAction","ItemIds","actionDataAction","safeGetBuiltIn","DESCRIPTORS","USE_NATIVE_URL","defineBuiltInAccessor","defineBuiltIns","InternalStateModule","anInstance","hasOwn","bind","$toString","createPropertyDescriptor","getIterator","getIteratorMethod","createIterResultObject","validateArgumentsLength","arraySort","setInternalState","getInternalParamsState","getterFor","getInternalIteratorState","URL_SEARCH_PARAMS","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","TypeError","decodeURIComponent","shift","splice","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","replacer","serialize","URLSearchParamsIterator","kind","type","entry","URLSearchParamsState","init","parseObject","parseQuery","bindURL","step","entryIterator","entryNext","first","second","iteratorMethod","done","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","$value","getAll","found","val","callback","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","body","dontCallGetSet","fetch","RequestConstructor","Request","getState","copyConstructorProperties","NativeSymbol","SymbolPrototype","description","EmptyStringDescriptionStore","SymbolWrapper","NATIVE_SYMBOL","thisSymbolValue","valueOf","symbolDescriptiveString","symbol","desc","salesOrder","_msdyn365","salesObject","saleLineProductUnits","SalesLines","getProductInfoFromCartLinesAsync","Purchase","affiliation","revenue","NetAmountWithoutTax","tax","TaxAmount","logEvent","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","el","fromIndex","defineProperty","createGetFeatureStateInput","getFeatureStateAction","tryToString","isArrayIteratorMethod","iteratorClose","$TypeError","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","that","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","fn","stop","condition","callFn","UpdateOrderTemplateHeaderInput","updateOrderTemplateHeaderActionDataAction","updatedProductList","updateOrderTemplateHeaderInput","arraySlice","array","comparefn","j","middle","left","right","llength","rlength","lindex","rindex","createGetOrderShipmentsHistoryInput","sortOptions","sortByOptionRelevanceDesc","sortByOptionRatingAsc","sortByOptionRatingDesc","sortByOptionNameAsc","sortByOptionNameDesc","sortByOptionPriceAsc","sortByOptionPriceDesc","sortByOptionBestSelling","sortByOptionNewScore","sortByOptionTrendingScore","MappedSearchInput","getMappedSearchConfiguration","getSearchConfigurationAsync","searchConfiguration","ProductSortColumns","sortColumn","toUpperCase","warning","Boolean","getMappedSearchConfigurationDataAction","Event","_subscribers","subscribe","instance","unsubscribe","instanceId","unsubscribeAll","trigger","subscriber","handler","arraySpeciesConstructor","originalArray","GetInvoicesInput","InvoiceTypeValues","InvoiceType","SalesOrderInvoice","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","SalesOrdersDataActions","getInvoicesAsync","InvoicePaidStatusValues","InvoicePaidStatus","getWrappedProxyObject","getProxyHandler","disableChildModules","parentModule","slotKeys","modules","childModules","MSDYN365_WYSIWYG_DISABLED_PROPS","findModule","pageRoot","res","moduleType","Proxy","newValue","disabledProperties","propertyPath","parentPath","authoringHelper","getDisabledProperties","EditError","fullPath","p","requiredProperties","getRequiredProperties","PROPERTY_INIT","document","dispatchEvent","CustomEvent","CLIENT_DATA_UPDATE_EVENT","detail","property","renderingHelper","moduleRequiredProperties","connector","variantSet1","variantId","experimentId","variantSet2","variantSet3","variantSet4","getConfigForClientSideInit","initializeClientSide","console","getExperiments","experiments","friendlyName","status","State","Running","link","variations","Active","weight","Draft","createdDate","lastModifiedDate","lastModifiedBy","Paused","Archived","getVariantsForUser","userId","activateExperiment","initialize","secretManager","TAG","STATIC","ListItemType","ListPageSummaryInput","getSubListItem","sitePathOfRequest","imageList","getImages","fields","content","images","sublistHref","listName","_name","sitePath","Title","title","ShortDescription","shortDescription","BackgroundColor","backgroundColor","ForegroundColor","foregroundColor","Href","Images","getSitePath","resultImageList","image","href","imageItem","altText","width","height","createGetListInput","listData","pageData","list","items","_id","getInputListData","listItems","parentImageList","itemsPerPage","isNaN","getItemsPerPage","skipCount","getSkipCount","productItems","sum","clonedList","productItem","ListInput","getList","_unused","args","simpleProducts","GetScanResultInput","sku","skuNumber","scanResults","Product","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","ScanResult","ProductDimensionFull","$String","EventLevel","EventChannel","EventType","Utils","func","DebuggingConsoleSink","setSessionInfo","appSessionId","userSessionId","deviceId","deviceNumber","terminalId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","event","LoggerBase","eventId","level","keywords","task","opCode","loggingSink","enumType","modelManagersRetailServerRequestStarted","requestId","Informational","modelManagersRetailServerRequestError","Operational","modelManagersRetailServerRequestFinished","genericWarning","Warning","Tracer","sink","addLoggingSink","informationformat","TracingOn","GetMessage","apply","TracerDynamicsError","warningFormat","_len2","_key2","errorFormat","_len3","_key3","errors","formatString","_len4","_key4","errorMessage","errorCode","errorString","ErrorMessage","EMPTY","ErrorCode","format","uniqueFunctionName","counter","Counters","PerformanceCounters","Count","now","Date","getTime","Timers","startTime","pop","TotalTime","hasOwnProperty","Information","_len5","_key5","TracerDynamics","_initialized","EmailRegex","html5EmailRegex","PasswordRegex","defaultRegex","recommendationsQuery","createGetElementsInput","Internal","OwnPromiseCapability","nativeThen","IS_NODE","setSpecies","aCallable","speciesConstructor","microtask","hostReportErrors","perform","Queue","NativePromiseConstructor","PromiseConstructorDetection","newPromiseCapabilityModule","FORCED_PROMISE_CONSTRUCTOR","CONSTRUCTOR","NATIVE_PROMISE_REJECTION_EVENT","REJECTION_EVENT","NATIVE_PROMISE_SUBCLASSING","SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","isThenable","callReaction","reaction","exited","ok","fail","reject","domain","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","reason","initEvent","facade","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","add","C","PromiseWrapper","wrap","DOMIterables","DOMTokenListPrototype","handlePrototype","CollectionPrototype","COLLECTION_NAME","isConstructor","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","parseSearchData","top","maxItems","removePromoCodes","promoCodes","errorDetails","LocalizedMessage","substatus","UA","CultureInfoFormatter","queryString","formatCurrency","_validateInput","currencyFormatter","numFormatterConstructor","currency","formatNumber","numberFormatter","formatDate","date","dateFormatter","dateFormatterConstructor","formatTime","time","timeFormatter","hour","minute","loadIntlPollyfillQsp","load_intl_polyfills","loadIntlPollyfills","IntlPolyfill","Intl","NumberFormat","DateTimeFormat","areIntlLocalesSupported","env","JEST_WORKER_ID","memoizeFormatConstructor","validation","methodName","argName","NAME_CULTURE_INFO_FORMATTER_EXCEPTION","EXCEPTION_INVALID_ARGUMENT","Constructor","Prototype","NATIVE_ARRAY_BUFFER","uid","enforceInternalState","enforce","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","isTypedArray","klass","Function","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","isView","AttributesForSelectedVariantInput","createAttributesForSelectedVariantInput","getAttributesForSelectedVariantAction","getAttributeValuesAsync","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","codeAt","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","toLength","advanceStringIndex","getMethod","getSubstitution","regExpExec","REPLACE","max","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","functionalReplace","fullUnicode","unicode","results","accumulatedResult","nextSourcePosition","replacerArgs","nativeMatch","matcher","A","matchStr","createTabStateInput","GenericInput","getGenericActionDataAction","getGenericAction","createTabStateInputInternal","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","P","Attributes","current","updateCustomerPersonalizationInput","userAccountNumber","isOptOut","preferenceType","updateCustomerPersonalizationActionDataAction","newCustomer","OptOutWebActivityTracking","OptOutPersonalization","updatedCustomer","baseUrl","requestOptions","oun","Authorization","cartTenderLineItem","TokenizedPaymentCard","House","CardTokenInfo","billingAddress","Phone","ThreeLetterISORegionName","Street","City","ZipCode","Country","Address1","Zip","requestBody","sendCommerceRequest","DeleteOrganizationUserInput","newUser","deleteOrganizationUserDataAction","createDeleteOrganizationUserInput","fromModuleData","sortingCriteria","_config$itemsPerPage","_inputData$requestCon","_inputData$requestCon2","platform","defaultPageSizeForAPI","column","CategoriesInput","mappedToHierarchy","includeRootCategory","_mappedToHierarchy","getLocale","getFriendlyName","nameTranslations","nameTranslation","Language","Text","mapCategoryToHierarchy","categoryList","_rootCategory$Childre","categoryMap","localName","NameTranslations","categoryHierarchy","NeutralizedName","rootCategory","parentId","ParentCategory","getCategoryUrl","Children","createCategoriesHierarchyInput","topItems","topCategories","getCategoryHierarchyAction","getCategoryAction","RawCategoriesInput","getCategoryHierarchyActionDataAction","connectorListener","eventName","payload","EditOrganizationUserInput","editOrganizationUserDataAction","updatedUser","createEditOrganizationUserInput","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","InventoryLevels","InventoryLevelValues","getInventoryLevelCodeFromDimensionValue","inventoryLevel","totalAvailable","TotalAvailableInventoryLevelCode","physicalAvailable","PhysicalAvailableInventoryLevelCode","getInventoryLevelCodeFromProductAvailability","productAvailability","cartObject","addedProducts","AddToCart","orderId","OrderNumber","actionInput","queryParams","addCartLinesParams","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","self","some","every","findIndex","filterReject","BaseStoreSelectorStateManager","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","isMapModuleLoaded","_readFromToCookie","storeInfo","parse","preferredStore","_context","storeId","selectedStoreLocationId","storeName","writeToCookie","StoreId","StoreName","Latitude","Longitude","_writeToCookie","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","MsDyn365","localStorage","removeItem","setItem","getItem","__decorate","computed","observable","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","ChannelCountryRegionISOCode","encodeURI","geolocationApiUrl","script","setAttribute","remove","resourceSets","resources","point","coordinates","appendChild","_document","isNullOrEmpty","getElementById","lang","market","_document2","_document3","defer","src","mapAPIReady","isMapApiLoaded","addEventListener","createStoreSelectorStateInput","iterate","createProperty","stat","fromEntries","obj","k","v","warehouseId","createSimpleProductsInput","getSimpleProductsAction","getProductPromises","catalogIds","unique","_inputs$0$warehouseId","flatten","bitmap","DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","getRegistration","getPartnerOverrideAction","partnerDataAction","Action","unwrapAction","isAction","getAction","registeredAction","registerAction","dataAction","actionRegister","registration","registerHook","hookType","hook","StaticTelemetry","hooks","hookRegistration","Set","h","newRegistration","registerPostHook","registerPreHook","registerPreReadOnlyHook","registerPostReadOnlyHook","registerPreReaderHook","registerPostReaderHook","getPreHooks","actionRegistration","pre","getPostHooks","post","getPreReadHooks","preRead","getPostReadHooks","postRead","getPreReaderHooks","preReader","getPostReaderHooks","postReader","resolveAction","resolveRegistration","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","wrapDataAction","actionWrap","inputFunc","_action","registrationId","RegistrationId","_isBatched","newAction","setProperty","propertyName","wrappedAction","arg1","arg2","AsyncResult","chainAction","preHook","postHook","preReadonlyHook","postReadonlyHook","ActionError","super","shouldReadFromAppCache","appCache","shouldWriteToAppCache","isAppCacheData","hasCacheSetting","addLocaleInformation","DataServiceRequest","endsWith","tmp","_cacheKeyFromInput","_resolveCacheEntryReference","dataServiceRequest","isWrappingPromise","isObservable","cacheValueAsArray","cacheObjectType","_cacheObjectType","copyTo","valueItem","isAsyncResult","isReturnTypeACollection","_query","logTelemetrySource","s","AppCache","verboseLogger","RequestCache","readCacheEntriesBasedOnCacheKeyFromReturnType","cacheKeyFromReturnType","_cacheKeyFromReturnType","cacheKeyIdentifierFromReturnType","_cacheKeyIdentifierFromReturnType","shouldRefresh","shouldRefreshAll","cacheEntries","cacheEntriesReturn","readCacheEntries","cacheKeyFromInput","cachedValueBasedOnInput","$ref","cachedValueBasedOnInputItem","resolvedRef","_saveEntityToCache","isCacheTypeApplication","isInstance","dataServiceRequestQuery","identifierValue","existingCacheItem","existingCacheObjectType","existingCacheKeyIdentifierFromReturnType","existingCacheIsReturnTypeACollection","existingCacheTotalCount","_totalCount","identifier","isCollection","_existingCacheItem","entryKey","saveCacheEntries","metadata","_otherOdata","others","listeners","Map","eventEmitter","EventEmitter","on","listener","removeAllListeners","CLIENT_HYDRATE_KEY","CLIENT_HYDRATE_TYPE","Timer","timeoutInMS","setTimeout","ActionTimer","_resolve","ActionExecutor","dataActionOption","_shouldUseInstanceCache","_msdyn365Commerce$pla","checkVersionForFeature","platformSettings","shouldUseInstanceCache","uuidv1","masterInput","addInputs","bypassAppCache","refreshingInputs","_removeDuplicates","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","Guid","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","Trace","_saveResponseToCache","_checkShouldInteractWithCache","cacheItem","_runPostReadHooks","_runPostReaderHooks","_uniqWith","inputA","inputB","inputsActionId","getActionId","_getActionFromId","hookTimeout","_get2","timer","previousTask","currentTask","race","actionResult","prevInput","tmpNextInput","finalNextInput","prevOutput","tmpNextOutput","finalNextOutput","isRefreshing","_runPreHooks","convertedError","_convertToJSError","CorrelationId","serverSideDataActionTimeoutInMs","clientSideCustomerTimeout","clientSideDataActionTimeoutInMs","_errorCode","ErrorTypeEnum","SERVICE_UNAVAILABLE","ProxyError","toError","_runPostHooks","appCacheData","usingInstanceCache","disable_instance_cache","actionName","entityId","entityType","isActionError","isTimeoutError","cacheEntry","unresolvedSet","uncachedInputs","asyncOutputs","innerResolve","innerReject","EventHelper","onEventIdFinalCompletion","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","cacheNamespace","proxyError","CatalogsInput","getCatalogsAsync","createCatalogsInput","shouldByPassCache","cachebypass","pageInsights","REFRESH_ACTIONS_CACHE_KEY","ActionContext","executionParams","cacheKeyMap","refreshConfigs","hasRun","currentActionsInQueue","nextTierCounter","spawnChildOnExecute","currentExecutionTier","threadId","isMaxDepthExceeded","maxDepth","getItemFromCache","_endCurrentTier","expectedActionCount","expectedActionsInCurrentTier","moduleTelemetry","Telemetry","isDebug","registerTraceLogger","traceLogger","GenericConsoleLogger","disable_app_cache","getRefreshActions","actionOption","runAllActionsInQueue","inputsArray","inputIdentifier","asyncResult","tierNum","refreshStartTimeInMS","_type","dataArray","inputArray","preparedCacheKey","cachedEntries","getAllItems","expectedNumberOfChildThreads","nextTierStartingDepth","nextTier","refreshconfigslocal","param","execute","refreshActions","paramExecutor","actionInputs","disable_appcache_refresh_await","rf","refreshRequestCache","refreshContext","buildHydratedMockActionContext","MediaLocationsInput","getMediaLocationsForProductAction","types","productMediaLocations","_ctx$requestContext","getMediaLocationsAsync","productImagesAndVideos","media","MediaTypeValue","MediaType","Image","Video","DisplayOrder","mediaLocation","mediaLoc","Uri","generateImageUrlForOmniChanel","MediaLocationType","AdditionalMediaLocationsInput","typeFilter","All","getAdditionalMediaLocationsForProductAction","productActions","searchMediaLocationsAsync","MediaUsageTypeValue","filteredMedia","File","AltText","isForced","inheritIfRequired","getOwnPropertyNames","getRegExpFlags","proxyAccessor","NativeRegExp","RegExpPrototype","SyntaxError","IS_NCG","CORRECT_NEW","MISSED_STICKY","BASE_FORCED","RegExpWrapper","pattern","rawFlags","dotAll","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","chr","named","names","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","updateLoyaltyCardId","newLoyaltyCardId","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","encode","currentValue","output","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","t","qMinusT","baseMinusT","label","encoded","labels","GetOrderTemplatesPreviewInput","createGetOrderTemplatesPreviewInput","getOrderTemplatesPreview","getFullOrderTemplates","GetFullOrderTemplatesInput","getOrderTemplatesPreviewDataAction","GetChannelDeliveryConfigurationInput","TTLCache","removalThresholdInMs","intervalForRemovalInMs","_cache","onRemoveCallback","_cleanCache","RequestVectorizer","nextValue","SEP","RequestVectorizerInstance","regexGetRoundBraces","toLowerCaseDict","objectDictionary","prevValue","ttlRequestCache","RSResponseInterceptor","activityId","lowercaseHeaders","requestid","activityid","properties","elapsedTime","stopTimer","parsedUrl","baseURL","trackDependency","duration","method","resultCode","success","hostname","empty","_isEmpty2","ahs","authTokenSize","dependencyName","RSRequestInterceptor","requestHeaders","caseInsensitiveHeaderMap","apiEndPoint","pathname","replaceString","requestIdVector","authorizationHeader","authorizationHeaderLength","authArray","caseInsensitiveRequestIdHeaderName","currentRequestId","startTimer","rv","r","replaceIdentifiers","isUrlLocalizationEnabled","parameterizeFeatureFlags","enableUrlLocalization","getPageTypeContextByIdAction","pageTypeContext","ProductLinkInput","getByIdAsync","catalogid","getCategoriesAsync","rootCategoryWithNeutralizedName","slug","getCategorySlug","parameterize","parentCategory","parentCategoryWithLocalizedName","getParameterizeFeatureFlagsWithRequestContext","Slug","searchForComplexType","promisesArray","children","linkObject","destinationUrl","disable_hydrator_link_locale","featureContext","add_external_link_domain","skip_external_link_catalogid","appendQueryParams","routeContext","getUrlSync","EXCEPTION_LINK_ACTION","CategoryLinkInput","hydrateLink","processComplexDataTypes","lazyloadAllDataActions","processType","pageSlots","processComplexDataTypesAsync","lazyLoadAllDataActions","lazyLoadAllModuleQueryString","clientRenderAllModuleQueryString","lazyLoadModuleFeature","isEditor","currModule","currModuleConfig","clientRenderConfigSwitch","PageContext","resourceManager","_moduleList","_themeModulesList","_clientPlatformSetting","_environmentVariable","_versionDependentFeatureInfo","setEnvironmentVariableForCLient","environment","getAllEnvironmentVariable","isEmptyOrNullObject","EXCEPTION_BADPAGECONTEXT","c1AccessToken","getVersionDependentFeatureInfo","_putRequestedModulesInCacheOnServer","_initThemeModulesList","moduleList","resultArray","chunkIndex","_constructModuleMetaData","_requestContext$featu","loadData_optimization","moduleMetaData","setAppCacheEntries","appCacheEntries","CACHE_SETTING","setPlatformSettingsForClient","disableActionRegOptimization","imageFallbackOptimize","enableModuleEntryPoints","isModuleEntryPointsEnabled","enableImageOptimizeEvents","enableModuleCssOptimization","clientTimeoutMapInMs","secondaryInstrumentationKey","getPlatformSettingsForClient","deferred","MODULE_DEFERRED_KEY","getResourceTextForPlaceholderPreview","resourceItem","MODULE_RESOURCES_KEY","clickToConfigure","markModuleAsDeferred","EXCEPTION_INITIALDATAFAIL","cacheBasedOnType","cachekey","_pageData$requestCont","_rehydrateAsyncResults","MODULE_CACHE_KEY","moduleItem","dataActions","_populateDataActionResultFromCache","transaction","promiseResult","_resolveCacheRef","cacheRefInfo","_this$requestContext$","themeName","slots","moduleInstance","MODULE_CONFIG_ERRORS_KEY","configErrors","MODULE_DATA_KEY","MODULE_ACTION_KEY","MSDYN365_WYSIWYG_CANADDMODULE","getModuleResources","enableAuthoringRemoveAndAddModule","getAllModuleBinder","getParentModuleName","actions","actionMetaDataList","isObservableArray","isAuthoringEditEnabled","slotsForAddModule","SessionStorageContext","_cookieContext","getDataFromStorage","setDataInStorage","getCheckoutCartData","getCheckoutCartKey","setCheckoutCartData","removeDataFromStorage","removeCheckoutCartData","sessionStorage","checkoutCartKeyPrefix","objString","checkoutCartCookie","getCheckoutCartCookie","REQUEST_CONTEXT_PROPERTIES_FOR_SEG","axios","interceptors","use","RSErrorResponseHandler","statusCode","CLIENT_HYDRATE_CACHE_KEY","resetClientHydrateContext","del","activateExperiments","experimentationConnector","experimentation","activeExperiments","experimentInfo","experimentsWithoutModuleId","experimentsWithModuleId","_partition2","provider","Type","device","experimentMap","experimentObserver","IntersectionObserver","observer","isIntersecting","intersectionRatio","activatedExpId","getAttribute","_msdyn365Commerce$exp","unobserve","threshold","currentExperiment","querySelector","observe","hydrateClient","pageContext","coreContext","defaultPageConfig","disable_moduleConfig_optimize","ReactDOM","CoreContext","Provider","SafeRenderModule","store","root","LAYOUT_MOUNT_POINT","initAuthoringHelper","themeSettings","___initialData___","AuthoringToolsHelper","dpEvent","updateDisabledProperties","clientRender","_msdyn365Commerce$exp2","_requestContext$chann","_requestContext$app","storeData","MESSAGE_CLIENT_RENDER_ERROR","removePlaceholderModules","modulesDictionary","slot","disableCookieCompliance","cartSessionExpiration","isConsentRequired","cartExpirationInDays","sameSiteRequired","urlSearchParams","telemetrySettings","operationalInsightsInstrumentationKey","freeze","getRequestContext","requestFormData","routes","checkout","requestContextUrl","isCheckoutRoute","_requestContext$query","pv","isPaymentVerification","__msdyn365__","oneDSWeb","expListener","appInsightsInstrumentationKey","msftClientAppInsightsJSLogger","ClientAppInsightsJSLogger","LoggerType","MSFTApplicationInsightsLogger","operationalClientAppInsightsJSLogger","OperationalApplicationInsightsLogger","internalTelemetry","enableDataAnalytics","registerWebAnalyticsPlugin","registerAttributeRenderer","expAttributeRenderer","setTelemetryRequestContext","siteId","pageId","correlationId","logWebVitals","targetId","tuid","resolveMissingSegmentsOnClient","missingSegments","canonicalDomain","neededMissingSegments","providerId","segmentProvider","segmentIds","cookieString","cookie","segmentRequestId","missingSegmentResolvingUrl","segRequestContext","requestContextObject","disable_segment_requestContext","segmentProviderList","registerExpLogger","contentSecurityPolicy","disableContentSecurityPolicy","enableReportOnlyMode","randomNumberGenerator","cspReport","blockedURI","documentURI","originalPolicy","violatedDirective","CONTENT_SECURITY_POLICY_ERROR","customTags","putRequestedModulesInCacheOnClient","EXCEPTION_CLIENT_CACHE_HYDRATE","_requestContext$featu2","_requestContext$param","_requestContext$featu3","timeSliceLongJSTask","cultureFormatter","getCurrencyCodeFromContext","allModules","optimizedGetAllModules","allowDispatchEvent","enable_verbose_logs","optimizeClientHydrate","CLIENT_RENDER_START_EVENT","trackEvent","EVENT_CLIENT_RENDER_START","initialPromise","LAZYLOAD_ALL_SWITCH","lazyload_all","EXCEPTION_PRODUCT_LIST_CLIENTSIDE_HYDRATION","setupClientHydrateFlag","loadData","EVENT_CLIENT_RENDER_STOP","EXCEPTION_LOAD_DATA_EXCEPTION","_document$getElementB","setClientHydrate","pageName","telemetryPageName","PageView","deprecatedEvent","DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT","CLIENT_RENDER_COMPLETE_EVENT","setClientHydrateContext","_requestContext$param2","_requestContext$featu4","_requestContext$featu5","_document$getElementB2","modulesRenderedOnServer","isLazyRenderModuleEnabled","_pageContext$requestC","CLIENT_ENTRY_POINTS_TYPE","getCLS","metric","EVENT_WEB_VITALS_CLS","getFCP","EVENT_WEB_VITALS_FCP","getFID","EVENT_WEB_VITALS_FID","getLCP","EVENT_WEB_VITALS_LCP","getTTFB","EVENT_WEB_VITALS_TTFB","initializeApp","bindings","MSDyn365Commerce","viewBinder","views","components","partnerDataActions","getConnector","connectors","perfAnalysisBinder","_this$bindings","perfAnalysisLibBinding","updatePrivateVariable","_env","addCreateComponentHook","initializeClientApp","skipConsoleWarn","clientPlatformSettings","originalBinder","moduleKey","binder","fetchComponent","c","moduleDirectory","md","da","definitionPath","pdp","isNodeModule","iNM","ns","chunkName","viewComponent","viewKey","fetchViewComponent","ecommerceComponent","componentKey","fetchEComComponent","initBindings","appDatabv","___appData___","bv","_buildVersion","_experimentationConnector","_platformSettings","getUniqueRequestedAssets","fetchRegistrationObject","dictionaryName","registerModules","requestedAssets","modulesRegistration","partnerModuleRegistration","registeredModules","registeredPartnerModules","code","clientActionsRegistration","partnerClientActionsRegistration","serverActionsRegistration","partnerServerActionsRegistration","fetchServerActionsRegistration","fetchPartnerServerActionsRegistration","registerAllActions","registerAllModules","initializeClient","connectorInformation","connectorsRegistration","expConnectorName","expConnector","experimentationConfig","expUserId","experimentationProvider","experimentationListener","initializeConnectors","enable_performance_analysis","isPerfAnalysis","lib","initializePerformanceUtils","hiddenKeys","categoriesQuery","createCategoryAsync","createGetCategoriesInput","createGetAttributesInput","getAttributesAsync","createGetCatalogAttributesInput","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","_cartCookie","_checkoutCartCookie","_accountSelectionCookie","_checkoutCartKeyPrefix","_commerceApiSetting","_themeRegistration","themes","styles","_imageSettings","imageSettings","gridSettings","_themeSettings","_themeModules","_initialLoadCompleted","_isClientHydrate","_appSettings","msdyn365","_featureNames","_moduleCssStaticPaths","getEnvironmentVariable","environmentName","setEnvironmentVariable","SUBMISSIONID","setInitialLoadCompleted","initialLoadCompleted","setThemeRegistration","themeRegistration","setThemeModules","themeModules","Element","createComponentOverride","_siteCssUrl","_segmentationConnectors","_geoLookupConnector","_connectorCache","_secretManager","_localCredentials","_resourceManager","_renderResultsCache","GetProductListLinesInput","productListId","getProductListLinesActionDataAction","quickOrderTemplateLinesState","ProductListsDataActions","getProductListLinesAsync","productListLines","_promise$metadata$cou","listLine","QuickOrderTemplateLine","FullProductInput","fullProductsInfo","getFullProducts","line","createGetProductListLinesInput","toPositiveInteger","BYTES","offset","getQuantityLimit","maxQuantityForCartLineItem","inputItem","quantityLimit","shouldEnableStockCheck","availableQuantity","getElementIndex","cartLineToAdd","elementFoundAt","productIdToFind","addProductsToCartWithoutSiteSettings","newCartLines","_cartLine$Quantity","cartLine","addCartLinesResult","_error$data3","validationResults","addProductsToCartInternal","addProductToCartInternal","orderQuantityLimitsFeatureIsEnabled","enableStockCheck","isAddServiceItemToCart","isMaxByQuantityValidationFeatureDefined","shouldSkipSiteSettings","_cart$CartLines","IsInvoiceLine","addProductsToCartValidateMaxAgainstDefaultOrderSettings","cartActionResult","_cart$CartLines2","addProductsToCartValidateMaxAgainstSiteSettings","internalObjectKeys","removeAllPromoCodes","createGlobalStateDataAction","BaseCartState","getDimensionsForSelectedVariantAction","_productDimension$Dim","_productDimension$Dim2","dimensionValuesResults","newDimension","_newDimension$dimensi","oldDimension","DimensionValues","getDimensionsForSelectedVariantActionDataAction","objectKeys","propertyIsEnumerableModule","$assign","B","T","argumentsLength","notARegExp","correctIsRegExpLogic","searchString","ArrayBufferViewCore","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","productRefiner","GetCheckoutCartInput","getCheckoutCartDataAction","checkoutCartId","checkoutCart","setCheckoutCartCookie","FinitePromiseQueueError","FinitePromiseQueue","PromiseQueue","maxQueueLength","InvalidMaxQueueLengthPassed","_maxQueueLength","promiseBody","totalElementsCount","_queue","_isBusy","ProcessWasDiscardedFromTheQueue","enqueue","F","CORRECT_IS_REGEXP_LOGIC","endPosition","len","end","versions","v8","GetRatingsSummaryInput","serviceEndpoint","PromiseCapability","$$resolve","$$reject","createGlobalState","ctor","ProductPickUpOptionsForCartLineItems","getActiveCartProductsAction","ActiveCartProductsInput","addToUnscopables","defineIterator","iterated","Arguments","inspectSource","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","sham","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","display","contentWindow","open","Properties","mode","copyright","license","integer","updateCartLineDeliverySpecificationsInternal","cartLineDeliverySpecifications","_handlers","_attachHandler","_executeHandlers","onFail","onSuccess","_updateStatus","_reject","getType","onfinally","failed","toStringTag","newStatus","isError","componentDictionary","getRequestedModules","windowInitialData","getRequestedModuleNames","requestedPackageNames","_uniq","filterToUsedAssets","requestedAssetKeys","partnerModule","removeCartLineIds","removedCartLineIds","activeCart","productTransaction","removedCartLines","removedProducts","RemoveFromCart","removeCartLinesParams","x","promiseCapability","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","DimensionAvailabilitiesForProductSearchResultInput","dimensionContext","getDimensionAvailabilitiesForProductSearchResultDataAction","productsDimensionInputs","_product$AttributeVal","filteredProductAttributes","attributeValue","_attributeValue$Name$","_attributeValue$Name","productionDimensionTypes","productionDimensionType","_product$MasterProduc","dimensionForProducts","productsDimensionAvailabilities","dimensionInput","_dimensionValue$Value","inventoryLevelCode","isDisabled","outOfStock","createDimensionAvailabilitiesForProductSearchResultInput","getter","setter","EnumExtensions","enumClass","ObjectExtensions","getNumericValues","isNumber","getNames","isString","getEnumValues","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","regexpExec","R","arity","ceil","trunc","BaseCheckoutCartState","isInitialized","getCheckoutCart","_cart","_status","CartCookieName","CartCookie","Cookie","classofRaw","opt","pairs","dec","decode","substring","tryDecode","enc","fieldContentRegExp","maxAge","isFinite","expires","toUTCString","httpOnly","secure","sameSite","propertyKey","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","getReceiptMasksAsync","createGetSearchSuggestionsInput","searchSuggestionCriteria","getSearchSuggestionsAsync","createStartSessionInput","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","forceActivate","deviceType","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","getCitiesAsync","createGetCountryRegionsForShippingInput","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","getOnlineChannelAsync","createGetCountiesInput","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","searchLocationValue","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","activeDate","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","getDistrictsAsync","createGetHardwareStationProfilesInput","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","hardwareProfileId","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","getStateProvincesAsync","createGetZipCodesInput","district","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","createGetLoyaltyCardTransactionsInput","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","searchJournalTransactionsAsync","createGetGiftCardInput","pin","expirationMonth","expirationYear","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createGetOfflineOpenShiftsInput","filterByCurrentUser","includeAllShiftsForStore","getOfflineOpenShiftsAsync","createDeleteOfflineShiftsInput","deleteOfflineShiftsAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","inventLocationId","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","storeNumber","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createSearchPurchaseHistoryInput","searchPurchaseHistoryAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createSearchVendorsInput","searchVendorsAsync","createValidateVendorApprovedForItemInput","vendorAccountNumber","validateVendorApprovedForItemAsync","createLocalizationIndiaGetBusinessVerticalsInput","localizationIndiaGetBusinessVerticalsAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetOrderManagementConfigurationInput","getOrderManagementConfigurationAsync","createGetSearchConfigurationInput","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","createGetTenderTypesInput","getTenderTypesAsync","createGetUnitsOfMeasureInput","getUnitsOfMeasureAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","getCurrenciesAsync","createGetCurrenciesAmountInput","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","createGetPurchaseConfigurationInput","getPurchaseConfigurationAsync","createSearchJournalNamesInput","searchJournalNamesAsync","createGetAvailableDevicesInput","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","createCheckFiscalIntegrationComplianceInput","checkFiscalIntegrationComplianceAsync","is","y","WeakMap","thisNumberValue","$repeat","repeat","nativeToFixed","toFixed","pow","acc","multiply","c2","divide","dataToString","fractionDigits","z","number","fractDigits","sign","x2","compressedRefinerKeys","hydrateRefinersFromUrl","compressedRefinerArray","parseQueryParam","compressedRefiner","parsedRefiner","refinerKey","buildListPageUrl","fullUrl","sortingColumns","sortedRefiners","RefinerRecordId","compressedRefiners","compressRefiners","getCurrentUrl","classList","regExpFlags","QuickOrderTemplate","quickOrderTemplateLines","totalLines","ArrayBuffer","DataView","scanResultsQuery","scannedText","ScannedText","GetBrandLogoInput","brandShortName","colorCode","Msdyn365","text","MODULE_CSS_CACHE_KEY","MODULE_CSS_CACHE_TYPENAME","normalizeCacheKey","SERVER_ERROR","SERVER_TIMEOUT","RETAIL_SERVER_REDIRECT_ERROR","GENERICERRORMESSAGE","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","RETURN_NO_ORDERS_FOUND","DeviceActivationErrorsForwardLinks","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","canRetry","requestUri","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","BaseCollectionInput","includeAttributes","isUpdateRefinerPanel","convertToString","createBaseCollectionInput","inputClassConstuctor","queryRefiners","updateRefinerPanel","getUpdateRefinerPanel","Recommendation","ProxyErrorSDK","localizedErrorMessage","formatData","extraData","_canRetry","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","errorName","ProductPageSummaryInput","simpleProductsData","simpleProductData","productUrl","productBrand","getProductUrlSync","_unused2","productAttributes","productAttribute","TextValue","getProductBrand","_unused3","sharingImageUrl","canonicalUrl","faviconUrl","AdjustedPrice","sharingImage","SPECIES","CONSTRUCTOR_NAME","ContactInfoType","updateCustomerAttributesInput","customerAttributes","phone","vatNumber","updateCustomerAttributesActionDataAction","_customer$Contacts","primaryContact","Contacts","contact","IsPrimary","AddressTypeValue","PhoneRecordId","VatNumber","requiredModules","binding","handleError","modPath","errObject","detailedWebpackError","errorObject","isNotRegistered","registerActionId","actionPath","exportName","registerSanitizedActionPath","sanitizedActionPath","$type","definitionExtensions","rnds8","rng","msCrypto","validate","uuid","REGEX","byteToHex","substr","arr","v4","buf","rnds","uuidv4","_guid","cartLineProductUnits","CheckOut","GetFullAvailableInventoryNearbyInput","_productId","_latitude","_longitude","_radius","_DistanceUnitValue","_IgnoreLocation","radius","DistanceUnitValue","IgnoreLocation","getFullAvailableInventoryNearbyActionDataAction","searchArea","Radius","retailMulitplePickupMFeatureState","pickup","getEstimatedAvailabilityAsync","productInventoryInformation","mapProductInventoryInformation","productWarehouseInformation","ProductWarehouseInventoryAvailabilities","getOrgUnitLocationsByAreaAsync","DeliveryModeTypeFilter","Pickup","storeMap","stores","InventoryLocationId","locationDeliveryOptions","orgUnitChannel","channelCollection","channelIdList","getChannelDeliveryOptionsAsync","channelDeliveryOptions","_getLocationPickUpDeliveryModes","availabilityPromiseList","_locationDeliveryOpti","locationDeliveryOption","_channeldeliveryoption","orgUnitLocation","channelDeleiveryOptions","OrgUnitNumber","OrgUnitAvailability","getStoreHoursAsync","hours","itemAvailabilities","_element$ProductAvail","InventLocationId","AvailableQuantity","ProductAvailableQuantity","availability","OrgUnitLocation","ItemAvailabilities","ProductInventoryInformation","OrgUnitPickUpDeliveryModes","StoreHours","_getAvailabilityWithHours","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","forceStringMethod","uncurriedNativeMethod","$exec","checkCorrectnessOfIteration","ActiveWishlistInput","wishlists","CommerceListLines","commerceListLine","IS_BROWSER","IS_DENO","V8_VERSION","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","PriceForSelectedVariantInput","createActivePriceForSelectedVariantInput","getPriceForSelectedVariantAction","projectDomain","_featureStates$find2","getActivePricesAsync","ProductTypeValue","ProductType","Master","KitMaster","productPrices","getPriceForSelectedVariantActionDataAction","productPromises","productPrice","productQuantity","productName","productChannelId","productChannelName","productCategoryId","productCategoryName","productCurrency","capability","capabilityReject","accumulator","depth","prop","stringifyValue","isObjectNotEmptyOrNull","returnValue","params2","toJSON","username","hash","FullProductsRefineSearchByTextInput","criteria","productDetailsCriteria","getRefinedProducts","fullProductInputs","searchResults","ProductDetailsCriteria","productSearchResult","getRefinedFullProducts","refineSearchByTextAsync","searchInputData","doesNotExceedSafeInteger","flattenIntoArray","original","sourceLen","start","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","sep","neutralizedName","candidateName","enableUrlEncoding","getParameterizeFeatureFlags","categoryName","getProductPageUrlSync","GetLoyaltyTransactionEstimationInput","_getCart","_getLoyalty","loyaltyCardInput","GetLoyaltyCardInput","getLoyalty","_getOrgUnits","getOrgUnitConfigurationAsync","Currency","points","SERVER_RENDER_ERROR_CACHE_KEY","PAGE_INSIGHTS_VIEWS_KEY","PAGE_INSIGHTS_ACTIONS_KEY","LAZYLOAD_SWITCH_PREFIX","AUTHORING_ADD_RENDER_COMPLETE_EVENT","USER_CONSENT_GIVEN_EVENT","MODULE_LAYOUT_FIELD","getRnrPartnerId","getRnrEndpointId","getRatingsSummary","inputIsValid","sendRequest","getRatingsSummaryDataAction","aConstructor","defaultConstructor","FullProductsRefineSearchByCategoryInput","hasSortingColumn","refineSearchByCategoryAsync","RefreshType","GEOLOOKUP_CACHE_TYPE","ImageFetchPriority","METATYPES","FAVICON_REL","COMPONENT_TYPES","ALLOWED_DUPLICATES","TAG_NAMES","DOMAttributeNames","acceptCharset","className","htmlFor","httpEquiv","reactElementToDOM","tagType","attr","dangerouslySetInnerHTML","innerHTML","__html","textContent","filterScripts","filterBody","tagName","attrVal","addElementToHtmlSlot","loadPointToLookFor","loadPoint","prepend","doUpdateHead","head","tags","headType","titleTag","titleComponent","initialData","titleTemplate","updateTitle","updateElements","headEl","getElementsByTagName","bodyEl","oldTags","querySelectorAll","bodyScriptTags","newTags","newTag","oldTag","removeAttribute","isEqualNode","nodeName","parentNode","removeChild","mapOnServer","htmlHeadIncludeWithSideEffect","withSideEffect","reducedComponents","toArray","reverse","metaTypes","metaCategories","tagComponent","tagElement","metaType","mergedComponents","child","childElement","cloneElement","componentMap","hasFavIcon","comp","rel","nonScriptTags","scriptTags","headStart","headEnd","bodyStart","bodyEnd","updateHead","HtmlHeadInclude","WrappedComponent","_a","canUseDOM","shouldComponentUpdate","nextProps","_isEqual","render","Fragment","peek","rewind","mappedState","PlaceholderForContainerPreviewComponent","ref","useRef","useEffect","comment","slotId","useMemo","textAlign","role","renderModuleAttributes","EmptyPlaceholderImage","classnames","_emptyImageClassName","LoadingPlaceholderImage","_loadingImageClassName","authoring_inline_edit","tryParseInt","parsedValue","SDK_FRAGMENT_NAME","SDK_FRAGMENT_NAME_REGEX","getAsset","assetPath","assetUrl","staticCdnUrl","submissionId","isNonceEnabled","nonceToken","enableNonce","messageTemplate","logOptions","logLevel","isVerboseLogEnabled","feature","originalConsole","showDebug","warn","isOboRequest","isOBORequest","getCustomerAccountNumberForAllChannelType","isChannelTypeB2B","_requestContext$cooki","accountSelectionCookie","getAccountSelectionCookie","isEmptyOrWhitespace","can","isObo","getCustomerAccountNumber","_requestContext$apiSe","channelCustomerType","isUserTypeB2B","_requestContext$user","_requestContext$user2","isB2b","required","PROPERTY_DISABLED","getEditableFieldClassName","disabled","isEditorialMode","ImageField","svgRenderer","setSvgRenderer","useState","editableProps","onKeyPress","charCode","onChange","preventDefault","onDoubleClick","onMouseOver","onFocus","onBlur","onMouseOut","tabIndex","fieldProps","editProps","placeholderImageUrl","placeholderConfig","svg","_fieldProps$placehold","SvgComponent","DEFAULT_PLACEHOLDER","LARGE_IMAGE_PLACEHOLDER","largePicturePlaceholder","SMALL_IMAGE_PLACEHOLDER","smallPicturePlaceholder","TEST_PLACEHOLDER","testPlaceholder","svgProps","divStyle","alignItems","svgConfig","svgPropety","margin","additionalProperties","domPurify","TextField","_this$props$requestCo","displayHtml","dp","_onChange","_onBlur","_onFocus","UNSAFE_componentWillReceiveProps","_isTextEmpty","_getDisplayText","ContentEditable","tag","displayValue","FieldType","Link","currentTarget","innerText","setState","displayText","placeholderText","sanitize","ALLOWED_TAGS","LinkField","ariaLabel","openInNewTab","onClick","linkTag","innerClassName","VideoField","EditableField","_fireClientDataUpdateEventForImagePlaceholder","imagePropertyName","_onChangeHandler","_isRequired","componentDidMount","_checkDisabledStatus","_props$requestContext","enabled","testCafeFlag","testCafe","RichText","videoProps","_this$props","eventObj","editPropKey","eventTarget","getLargestGridSettingViewportName","xl","lg","sm","xs","getMinMaxWidth","viewport","largestGridSettingViewportName","gridSetting","w","viewports","setting","getImageResizeUrl","imageSrc","vpSetting","inputImageSettings","skipWidthAndHeightSettings","externalProvider","isSitecoreCmsProviderUrl","santizeSitecoreImageUrl","qe","quality","updateImageResizerQueryString","srcUrl","getSourceData","imageAttributes","_imageAttributes$requ","getMedia","formatMediaQuery","srcSet","parsedQueryString","cropFocalRegion","siteCoreBaseUrl","externalCmsBaseUrls","imageName","validateBaseImageUrl","imageResizerEndPoint","constructViewportInformationForImage","moduleLayout","themeSettingsForModule","themeSettingsForLayout","imageViewportProperties","_cloneDeep2","key2","shouldUseDefaultSVGPlaceholder","enableDefaultPlaceholder","isDefaultPlaceholderFeatureOn","NativeImage","_this","_this$props$shouldHid","_props$editProps","getSVGConfig","largestViewport","SVGHeight","SVGWidth","getPlaceholderAspectRatio","preserveAspectRatio","getSrcImage","stateSrc","fallBackSrc","urlSrc","urlFallBack","paramsSrc","paramsFallBack","defaultImage","lazyLoad","loaded","loadFailureBehavior","_imageAttributes$edit","_this$props$imageSett","binaryHash","focalRegion","cropRegions","fileName","fileSize","imageStyle","isLocalizable","isDecorativeImage","orientation","_links","_objectWithoutProperties","_excluded","cssClassName","filteredClassName","isUsingSVGPlaceholder","layout","getPlaceholderName","SVGConfig","shouldBeVisibleIfFallbackNotSpecified","shouldHideOnFailure","bypassHideOnFailure","disableLazyLoad","hiddenStyle","loadFailed","visibility","parentTagToRemove","fallbacksrc","alt","onError","imageFailed","onLoad","imageLoaded","node","findDOMNode","complete","naturalWidth","getSourceTag","srcData","imageSetting","preserveImageSpace","configs","prevState","componentDidUpdate","prevProps","onWillRender","pictureAttributes","_excluded2","sourceTags","vp","ThumbnailImage","_thumbnailProps","_props$thumbnailQuali","_props$sizeCompressin","_props$minimumSizeDim","thumbnailQuality","_defaultThumbnailQuality","sizeCompressingFactor","_defaultSizeCompressingFactor","minimumSizeDimensionValue","_defaultMinimumSizeDimensionValue","_updateImageDimension","minSize","newSize","minNewSize","defaultSize","imageDimension","_newImageDimension$q","newImageDimension","originalWidth","_extractParameterValue","originalHeight","_getCompressedSize","part","parameterName","currentWidthParameter","_thumbnailClassName","MainImage","renderOptimziedImageWithEvent","_mainImageClassName","renderPureHtmlOptimzedImage","pictureHtml","ReactDOMServer","renderToString","_props$shouldUseThumb","_props$requestContext2","_props$imageSettings","_props$shouldSkipToMa","_props$requestContext3","_props$requestContext4","localShouldUseThumbnailsSetting","shouldUseThumbnails","globalShouldUseThumbnailsSetting","_shouldUseThumbnails","localShouldSkipToMainImage","shouldSkipToMainImage","globalShouldUseNewImageComponent","shouldUseNewImageComponent","_shouldSkipToMainImage","disable_image_componentv2","getInitialState","onMainImageUpdate","onThumbnailImageUpdate","isLoadingPlaceholderHidden","isThumbnailLoadingFinished","isThumbnailLoadingFailed","isThumbnailHidden","isMainImageLoadingFinished","isMainImageLoadingFailed","_hideThumbnailTimeout","clearTimeout","_hideLoadingPlaceholderTimeout","_setThumbnailHideTimeout","_setLoadingPlaceholderHideTimeout","_renderMainImage","_className","_getImageContent","_getImageContentWithThumbnail","_getImageContentWithoutThumbnail","_renderEmptyPlaceholderImage","_renderLoadingPlaceholderImage","_renderThumbnailImage","_defaultLoadingPlaceholderHidingDelay","_defaultThumbnailHidingDelay","_imageClassName","isHidden","_hiddenStateClassName","isLoading","_loadingStateClassName","isSkipping","WithContext","Consumer","setTelemetryModuleContext","parseODataResponse","createDefaultRequest","httpMethod","timeout","InternalTelemetry","requestConfig","EVENT_HTTP_SERVICE_START","Accept","ContentType","EVENT_HTTP_SERVICE_STOP","_sendRequest","commerceApiRequest","dataActionId","versionComparer","versionToCheck","versionToCompareAgainst","numeric","sensitivity","versionLt","PreviewRequestState","PASSTHROUGH_QUERY_PARAMS","categorySegment","record","platformRoutes","categoryMoniker","productMoniker","listMoniker","ensureSlashConsistency","route","hostName","skipCatalogId","preview","newDomain","overrideDomain","appendQueryString","getRoutePath","returnUrl","populateSitePath","unshift","appRoutes","pageRouteFromAppSettings","catalogidstr","fallbackCatalogId","rcsuVersion","getCategoriesUrlSync","categoriesPath","categoriesPathUrls","tempSegments","Segments","seg","CategoryName","CategoryId","getRichTextHtml","RichTextComponent","onEdit","_this$props$editProps","_this$props$editProps2","onTextChange","linkText","linkUrl","Links","links","l","requestHookRegistrar","RequestReaderAction","requestHookRegistration","createHook","initialHook","preRenderHook","postRenderHook","createInitialHook","createpreRenderHook","createpostRenderHook","_context$requestCache","buildMockSessionStorageContext","buildMockRequest","mockRequest","textDirection","isPreview","concatJs","isTruthy","optOutWebActivityTracking","eCommerceChannelId","ratingsReviewsEndpoint","retailServerProxyVersion","rnr","proxyUrl","imageResizerEndPointPreview","siteTheme","cookiename","_cookieName","_cookieValue","removeCheckoutCartCookie","setAccountSelectionCookie","removeAccountSelectionCookie","isConsentGiven","setConsentCookie","deleteConsentCookie","getTargetIdCookie","themeOverride","disableDefault","eventHubAuthToken","eventHubEndPoint","environmentId","Checkout","Products","siteStylePreset","_merge2","elementId","getModuleById","moduleDataId","foundModule","getElementDataInfo","dataInfo","getAllAddModuleBoxes","getModulesByParentIdAndSlotId","getElementDataInfoById","dataAttribute","json","mt","isFragment","isElementFragment","isFragmentModule","isElementFragmentModule","getElementDataInfoByTarget","moduleElement","closest","getModuleByTarget","getRenderingHelper","_msdyn365AuthoringHelper","updateAddModuleInnerContainerClass","addInnerContainer","appendNoPointerEventsToChildren","removeNoPointerEventsFromChildren","ICON_TYPE","container","d","viewBox","iconType","isDroppable","fragment","notDroppable","SVG_URL","dragAndDropImage","updatePosition","dragImage","hide","setTransparentImage","transparentImage","isStatusDroppable","isStatusNotDroppable","setDropAllowedImage","dragElementDataInfo","_setDragImage","_getIconInfo","_getImageName","setDropNotAllowedImage","iconInfo","droppableClassName","textBox","iconBox","iconPath","iconSVG","_createDragImage","_createDragIcon","_createDragText","createElementNS","dragImageName","helper","getFragmentDisplayName","dragAndDropPlaceholder","getPlaceholder","placement","_removePlaceholderFromElement","_setAllAddModuleBoxesToInitialState","addModuleBoxes","clearAll","_this$renderingHelper","removePlaceholder","setRenderingHelper","movePlaceholder","_setAddModuleBoxToInsertState","currentModule","_movePlaceholder","setPlaceHolderOnPosition","dragModule","dropModule","placeholderInfo","_getPlaceholderPlacementInfo","_this$renderingHelper2","_hasPlaceholderPositionChanged","placeBottom","onDrag","relativeIndex","_getAddModuleBox","foundBox","addModuleBoxElement","firstElementChild","_m$element","_isEqual2","dragModuleIndex","dropModuleIndex","dropModuleRelativeIndex","box","getBoundingClientRect","bottom","dragAndDropEvents","setModuleAsDraggable","sourceModuleId","rootModuleId","_setRootModuleId","_setRootModuleAsDroppable","_onDragStart","_onDrag","_onDragEnd","_clearCache","_cacheHasIsDroppableInfo","_has2","_getCacheKey","_isModuleDroppable","_checkIsDroppableAndAddToCache","_setModuleIsDroppable","canBeDrop","elementDataInfo","_onDragOver","isDragging","isCursorOnDroppableArea","dragEvent","dropElement","dragElement","clientY","pageX","pageY","_onDragEnter","_onDragLeave","_onDrop","_this$renderingHelper3","onDrop","_this$renderingHelper4","_removeDraggableEvents","draggableModule","removeEventListener","_dragEvent$dataTransf","dataTransfer","setDragImage","_removeDroppableEvents","_clearAllCache","droppableModule","setDraggable","nativeToString","NOT_GENERIC","INCORRECT_NAME","updateCart","updatedCartObject","ProductDeliveryOptionsForCartLineItems","getCheckoutState","checkoutStateDataAction","GlobalStateInput","BaseCheckoutState","ArrayPrototype","createProductAsync","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","getRecommendedProductsAsync","createRefineSearchByTextInput","createGetProductSearchRefinersInput","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","skipProductPriceCalculation","readChangedProductsAsync","createGetDeletedListingsInput","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","getCatalogProductAttributesAsync","createSearchMediaLocationsInput","mediaLocationSearchCriteria","createGetPricesInput","inventoryDimensionId","barcode","unitOfMeasureSymbol","getPricesAsync","createGetProductAvailabilitiesInput","getProductAvailabilitiesAsync","createGetActivePricesInput","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","priceLookupContext","createGetFilteredSlotComponentsInput","selectedComponents","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","hitPrefix","hitSuffix","createGetCategoryPathsInput","categoryPathLookups","CategoryPathLookups","getCategoryPathsAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","createSearchByCriteriaInput","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","createGetAttributeValuesInput","createGetMediaLocationsInput","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","GetBotFrameworkInput","_msdyn365Commerce$sec","ISecretValue","getSecretValue","apiToken","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","__proto__","PromiseQueueElement","_dequeue","_canProcess","_processElement","_processNext","isPossiblePrototype","GetProductListInput","productListSearchCriteria","QuickOrder","createGetProductListInput","AddressInput","customerInput","catalogsQuery","createProductCatalogAsync","createGetCatalogsInput","activeOnly","$promiseResolve","remaining","alreadyCalled","ProductsByCategoryInput","getProducts","Reflect","displayLabelEnabled","inventoryCode","inventoryRanges","available","productsWarehouseInventory","physicalProductMap","mapInventoryWithPhysicalBufferEnabled","totalAvailableProductMap","mapInventoryWithTotalAvailableBufferEnabled","productMap","mapInventoryWithThresholdEnabled","productWarehouseInventoryAvailability","TotalAvailable","productQty","outOfStockThreshold","productAvailableQuantity","IsProductAvailable","shouldRenderLabel","_productWarehouseInve","MaximumPurchasablePhysicalAvailableQuantity","PhysicalAvailable","StockLevelCode","StockLevelLabel","PhysicalAvailableInventoryLevelLabel","_productWarehouseInve2","MaximumPurchasableTotalAvailableQuantity","TotalAvailableInventoryLevelLabel","isAggregatedInventory","warehouseAggregation","mapAggregatedProductInventoryInformation","productWarehouseInventoryInformation","_productWarehouseInve3","AggregatedProductInventoryAvailabilities","_product$MaximumPurch","_product$MaximumPurch2","DataAreaId","PhysicalAvailableQuantity","TotalAvailableQuantity","isDefaultWareHouse","isFilterByChannelFulfillmentGroup","defaultDeliveryMode","shipping","inventoryAvailabilitySearchCriteria","QuantityUnitTypeValue","SearchArea","GetOrgUnitLocationsByAreaInput","_Latitude","_Longitude","_Radius","getOrgUnitLocationsByAreaDataAction","locationPromiseList","_getLocationWithHours","getFullProductsAction","getSimpleProducts","productCollection","validProductIds","ratingsAndPricePromises","_getActivePrices","_getProductRatings","_inputs$0$catalogId","validInputs","CustomerContextualPrice","ProductPrice","productRating","ProductRating","getFullProductsActionDataAction","Infinity","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","getSortCompare","isFunction","stateConstructor","globalStateObject","commerceInsightsAttributeRenderer","telemetryId","additionalTelemetryData","NumericLogLevel","critical","CommerceInsightsLogger","webAnalyticsPlugin","_client","eventType","eventData","_isCartInfo","_populateCartInfo","UpdateInCart","_isProductTransaction","_populateProductTransaction","Custom","baseType","baseData","productArray","_populateProductInfo","shippingCost","EVENT_COMMERCE_REQUEST_START","EVENT_COMMERCE_REQUEST_STOP","innerFunction","generateEventNameHash","sha256","TelemetryBase","timerId","_timers","removeTimer","_enableDataAnalytics","_eventLoggers","_attributeRenderers","setTelemetryAttribute","telemetryAttribute","_expLogger","_generateEventName","expPayload","eventNameHash","trackMetric","notifyTraceLoggers","logger","_telemetryContext","measurements","trackPageView","page","_traceLoggers","_namedLoggers","registerEventLogger","eventLogger","expLogger","attributeRenderer","_webAnalyticsPlugin","getNamedLoggerInstance","stringFormat","templateString","fx","_log","regex","placeholders","sendLog","moduleContext","contentCategory","contentAction","pgname","mname","etext","recid","etype","telemetryWithContext","_telemetry","safeStringify","_logTrace","_logException","_len6","_key6","Critical","fullMessage","arg","classificationLevel","isCustomerData","isRestrictedData","isPersonalData","__isDynamicsPrivacy","getFilteredData","getPropertiesFromContext","shouldSkipLogging","severityLevel","loggerType","loggertype","loggerProps","AppInsights","ApplicationInsights","enableCorsCorrelation","correlationHeaderDomains","_loggerProps","loadAppInsights","addTelemetryInitializer","exceptionLog","trackException","operationalInsightsEventFilter","_globalErrors","_severityLevelMapping","buildPropertiesList","traceLog","trackTrace","eventLog","pageViewLog","uri","dependencyLog","responseCode","trackDependencyData","envelope","sdkVersion","_debug","commerceSDKVersion","sskVersion","commerceSSKVersion","retailProxyVersion","commerceCoreEnvironmentId","commerceCoreEnvId","telemetryItem","performanceNavigationTimming","performance","getEntriesByType","performancePaintTiming","performanceNavigationTimmingData","domContentLoadedEventStart","domContentLoadedEventEnd","domInteractive","domComplete","domContentLoadedEvent","paintTiming","expVariantInfo","processID","_daSdkVer","singletonLoggerInstance","printFunction","tagsString","messageValue","stack","isInfo","_printMessages","METRIC_APP_CACHE_INSERT","EXCEPTION_UNREGISTEREDMODULEID","EXCEPTION_ERROR_CLIENT_BOUNDARY","EXCEPTION_MISSINGMODULECONFIG","EXCEPTION_MODULERENDERFAIL","EXCEPTION_LOADDATA_ACTION_0","EXCEPTION_LOADDATA_ACTION_1","EXCEPTION_LOADDATA_ACTION_2","EXCEPTION_DATAACTION_EXECUTION","EXCEPTION_EXPECTED501","functionName","invalidVariable","MESSAGE_CREATE_INPUT_LOADDATA","businessPartnersQuery","businessPartnerId","getOrderHistoryAsync","createGetOrderHistoryInput","getUsersAsync","createGetUsersInput","firefox","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","callee","toPrimitive","prim","BigInt","callWithSafeIterationClosing","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","firstOrDefault","predicate","arrayLine","equals","firstArray","secondArray","comparator","haveSameItems","valueFromFirstArray","valueFromSecondArray","otherItem","calculateSum","newArray","functionToString","CategoryPageSummaryInput","currentCategoryResult","createGetCurrentCategoryInput","categoryUrl","OfflineImage","OrganizationUsersCountInput","users","ownKeys","getOwnPropertyDescriptorModule","exceptions","hasIndices","ignoreCase","unicodeSets","endPos","getDescriptor","EXISTS","__webpack_public_path__","___publicPath___","orderTemplateLinesState","_inputData$getPrice","_inputData$getRating","OrderTemplateLine","shippingProductAvailabilities","productAvailabilities","shouldDisable","_line$productListLine","_line$productListLine2","unassortedProduct","DefaultUnitOfMeasure","BasePrice","getPaginatedOrderTemplateLinesActionDataAction","createGetPaginatedOrderTemplateLinesInput","GetFullProductListInput","inputParameters","getProductList","getProductListLines","createGetFullProductListInput","PrototypeOfArrayIteratorPrototype","arrayIterator","DefaultValues","RefinersByCollectionInput","searchProductId","channelInventoryConfigurationPromise","_inventoryRefiner$Val","_inventoryRefiner","refinerInput","getInventoryRefinerAction","getInventoryInStockRefinerValueAsync","defaultCategoryIdValue","SearchCondition","searchObject","defaultProductIdValue","CONFIGURABLE_LENGTH","TEMPLATE","removeCartLinesInternal","updateShippingAddress","CartsDataActions","ErrorParser","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","rdc","parseError","responseText","jsonResponse","ErrorResourceId","Message","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","localizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","ErrorContext","contentType","bodyString","Exception","parseJSONError","$RegExp","GetInvoiceDetailsInput","InvoiceId","getInvoiceDetailsAsync","entitySet","returnType","tokens","filterSettings","expand","expands","inlineCount","orderBy","_createODataParameters","_createRequest","setGetAllRecords","isGetAllRecords","operationName","HttpException","HttpRedirectException","clientRenderOptimizationEnabled","optimize_client_hydrate","clientRenderQsp","optimize_hydrate","getCurrency","_requestContext$query2","disable_lazy_render_support","_requestContext$query3","allModulesListArray","flat","check","globalThis","getCatalogAction","CatalogsDataActions","getCatalogActionDataAction","_this$queryResultSett","_this$queryResultSett2","createGetOrderTemplatesInput","getLoyaltyAction","cards","firstCard","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","getLoyaltyActionDataAction","GetFullProductsByCollectionInput","returnProducts","metadataCount","productSearchResultsWithImages","channelInventoryConfigurationId","inventoryAwareSortableAttributeId","_input$queryResultSet","_input$queryResultSet2","sortColumnName","getActiveCartProductsActionDataAction","defaultOrderQuantityLimitsFeatureConfig","enableDefaultOrderQuantityLimits","isQuantityLimitsFeatureEnabledInHq","customerInfo","IsB2b","isOrderQuantityLimitsFeatureEnabled","productIdsByWarehouseId","resultProducts","_productIdsByWarehous","_ref","entryWarehouseId","entryProductIds","accum","getActiveCartProductsActionWhenQuantityLimitsFeatureIsOn","hasInvoiceLine","handleMissingImplementationDetails","connectorName","connectorDictionary","connectorProviderImpl","connectorListenerImpl","connectorDomainsList","connectorDomains","validateConnectorRegistration","connectorImpl","verifyExperimentationReigstration","updateCartLinesInternal","cartLinesToUpdate","GetRelatedProductsInput","relationType","querySettings","productRelationTypes","productRelationTypeId","_productRelationType","foundProductRelationTypeId","productRelationType","searchProductRelationType","defineProperties","AddOrganizationUserInput","addOrganizationUserDataAction","createBusinessPartnerUserAsync","createAddOrganizationUserInput","CurrentCategoryHierarchyInput","activeCategoryId","_activeCategoryId","activeCategoryParsedId","findCategoryHierarchy","innerCategoryHierarchy","getCurrentCategoryHierarchyAction","_findCategoryHierarch","fullCategoryHierarchy","getCategoriesHierarchy","getCurrentCategoryHierarchyActionDataAction","documentAll","tempActionContext","searchCategory","foundCategory","cat","matchingChild","getCurrentCategoryAction","categoryInput","getCategoryHierarchy","getCurrentCategoryActionDataAction","MediaLocationsByIdInput","createMediaLocationsByIdInput","getMediaLocationsByIdAction","OmniChannelMedia","mediaLocationsInput","getMediaLocationsByIdActionDataAction","CreateProductListInput","templateType","createProductListInput","GetCategoryPathsInput","categoryPathLooksups","categoryPath","getCategoryPathsAction","categoryPathResults","CategoryPath","getCategoryPathsActionDataAction","RefinersByTextInput","AdditionalMediaLocationsForSelectedVariantInput","createMediaLocationsForSelectedVariantInput","getAdditionalMediaLocationsForSelectedVariantAction","getAdditionalMediaLocationsForSelectedVariantActionDataAction","clearCartLinesDeliveryInformation","_actionContext$reques","_actionContext$reques2","matchingLines","pickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","dM","copiedLines","_cloneDeep","targetProperty","sourceProperty","TARGET","GLOBAL","OrganizationUsersInput","CheckoutStorageKey","GlobalState","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_customerAccountAmount","_emailAddressFromExpressCheckout","_checkoutGenericData","_checkoutCart","_attributeValues","_extensionProperties","_shouldEnableSinglePaymentAuthorizationCheckout","shouldEnableSinglePaymentAuthorizationCheckout","_shouldEnableCheckoutErrorDisplayMessaging","shouldEnableCheckoutErrorDisplayMessaging","_salesOrder","_orderedProducts","_tokenizedPaymentCard","_tenderLine","_billingAddress","_isBillingAddressSameAsShippingAddress","_shippingAddress","_hasShippingAddress","_hasCartDeliveryMode","_cardPrefix","_paymentTenderType","giftCardExtends","_loyaltyCardNumber","_hasGuestCheckoutEmail","_isTermsAndConditionAccepted","_isTermsAndConditionChecked","_shouldCollapsePaymentSection","_shouldTriggerPaymentWithPlaceOrder","_isPaymentSectionContainerReady","_cardPaymentAcceptResult","_isPaymentSectionContainerHasError","_redirectAdditionalContext","_redirectPaymentConnectorId","_checkoutErrorPaymentConnectorId","_isPlaceOrderEnabledInRedirection","_isPaymentVerificationRequired","_isCheckoutCallFailed","_shouldEnableExpressCheckoutInCheckout","_shouldEnableExpressCheckoutInCart","_shippingAddressFromExpressCheckout","_billingAddressFromExpressCheckout","_isExpressCheckoutApplied","_isExpressAddressApplied","_isExpressCheckoutAppliedInCartPage","_isExpressPaymentModulesReady","redirectResult","_checkoutError","_isBillingAddressHasError","_checkoutErrorFocus","_shouldFocusOnCheckoutError","updateSalesOrder","newSalesOrder","newOrderedProducts","newAttributeValues","newExtensionProperties","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","newShippingAddress","newHasShippingAddress","newHasCartDeliveryMode","newIsTermsAndConditionAccepted","newIsTermsAndConditionChecked","newShouldCollapsePaymentSection","newShouldTriggerPaymentWithPlaceOrder","newIsPaymentSectionContainerReady","newCardPaymentAcceptResult","newIsPaymentSectionContainerHasError","newRedirectAdditionalContext","newRedirectPaymentConnectorId","newCheckoutErrorPaymentConnectorId","newIsCheckoutCallFailed","newIsPlaceOrderEnabledInRedirection","newIsPaymentVerificationRequired","updateBillingAddress","_input$additionalProp","newBillingAddress","isBillingAddressSameAsShippingAddress","removeBillingAddress","updatePaymentTenderType","newPaymentTenderType","updateCardPrefix","newCardPrefix","removeGiftCard","giftCard","giftCardNumber","removeGiftCardExtend","addGiftCard","Pin","ExpirationDate","TenderTypeId","gitCardExtend","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","newGuestCheckoutEmail","ReceiptEmail","updateReceiptEmail","newEmail","updateCartLines","updatedCartLinesObject","newHasGuestCheckoutEmail","removeCheckoutCartId","saveDataInStorage","BillingAddress","GiftCard","loyaltyCardNumber","LoyaltyCardNumber","loyaltyAmount","LoyaltyAmount","isTermsAndConditionAccepted","TermsAndCondition","paymentTenderType","PaymentTenderType","redirectPaymentConnectorId","RedirectPaymentConnectorId","isExpressCheckoutApplied","IsExpressCheckoutApplied","filtered","filteredData","SaveDataBeforeRedirect","CheckoutGenericData","checkoutGenericData","updateCustomerAccountAmount","newBillingAddressFromExpressCheckout","newShippingAddressFromExpressCheckout","newEmailAddressFromExpressCheckout","newShouldEnableExpressCheckoutInCheckout","newShouldEnableExpressCheckoutInCart","newIsExpressCheckoutApplied","newIsExpressAddressApplied","newIsExpressCheckoutAppliedInCartPage","newIsBillingAddressHasError","newIsExpressPaymentModulesReady","newCheckoutError","setCheckoutGenericData","getCheckoutGenericData","newCheckoutErrorFocus","newShouldFocusOnCheckoutError","setInitialData","cleanCheckoutData","isPaymentVerificationRedirection","_window$sessionStorag","PromotionOptionsForCartLineItems","_isProductAddedToCart","total","num","_doAsyncAction","refreshCartInternal","_input$product$Behavi","isPriceKeyedIn","IsGiftCard","customPrice","retailMultiplePickupModeEnabled","_buildAddressFromOrgUnitLocation","isAddEmailDeliveryItemToCart","Behavior","MaximumQuantity","_doCartOperationWithRetry","internalInput","_inputItem$catalogId","_this$actionContext$r","PRODUCTASSERVICE","isStockCheckEnabled","addInvoicesToCartInternal","addOrderInvoiceToCartInternal","setInvoiceLinePriceInternal","removeCartLineInternal","clearCartLineDeliveryModeInternal","channelDeliveryOptionConfiguration","cartLineDeliverySpecification","DeliverySpecification","DeliveryModeId","DeliveryPreferenceTypeValue","PickUpStoreId","DeliveryAddress","deliveryModeId","cartLinesForShipping","_input$channelDeliver","deliverySpecifications","_input$additionalProp2","updateCartLineQuantityInternal","newQuantity","isUsingDefaultOrderSettingsMax","updateLoyaltyCardIdInternal","addPromoCode","addPromoCodeInternal","promoCode","removePromoCodesInternal","removeAllPromoCodesInternal","newCartObject","callbackResult","PostalAddressId","OrgUnitName","FullAddress","Address","StreetNumber","DistrictName","BuildingCompliment","Postbox","County","CountyName","StateName","UNSCOPABLES","toOffset","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","0","TO_OBJECT_BUG","PriceForProductSearchResultInput","getPriceForProductSearchResultDataAction","productRecIds","productResults","activePrice","_activePrice$Customer","_activePrice$BasePric","_activePrice$TradeAgr","_activePrice$Adjusted","TradeAgreementPrice","$forEach","STRICT_METHOD","arrayMethodIsStrict","Target","Source","viewDictionary","ltrim","rtrim","updatedCartLines","updatedProducts","updateCartLinesParams","lambda","IssueLoyaltyInput","issueLoyaltyActionDataAction","CustomerAccount","issuedCard","hasPromoCode","GetCustomerBalanceInput","InvoiceAccount","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","ENUMERABLE_NEXT","detection","normalize","POLYFILL","NATIVE","navigator","ProductAvailabilitiesForCartLineItems","getDeliveryMode","featureSate","pickupDeliveryMode","shippingItems","bopisItems","retailMultiplePickUpOptionEnabled","bopisItem","productWarehouse","InventLocationDataAreaId","quantityUnitTypeSales","getProductWarehouseAvail","productWarehouseMapping","trimmedString","MediaLocationsForSelectedVariantInput","getMediaLocationsForSelectedVariantAction","getMediaLocationsForSelectedVariantActionDataAction","documentId","itemsCount","DocumentId","ItemsCount","ItemsPerPage","SkipCount","Items","ProductItems","getListDataDataAction","GetProducts","listitem","getInutListData","businessPartnerUsersQuery","b2BUserId","B2BUserId","createRequestAccountStatementInput","accountStatementParameters","requestAccountStatementAsync","createRequestInvoiceCopyInput","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","getOperationRequestsAsync","createGetCurrentInput","deep","_value","toCache","flushAll","ProductAvailabilitiesForSelectedVariantInput","createProductAvailabilitiesForSelectedVariantInput","getProductAvailabilitiesForSelectedVariantAction","shippingSearchCriteria","pickupSearchCriteria","shippingAvailability","shippingInventory","pickupAvailability","pickupInventory","mergeProductWarehouseToProductAvailabities","productAvailable","getProductAvailabilitiesForSelectedVariantActionDataAction","real","Pebble","ENTRIES","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","getFulfillmentLinesAsync","createGetReceiptsInput","customerOrderType","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","getSalesOrderDetailsByTransactionIdAsync","createGetSalesOrderDetailsBySalesIdInput","getSalesOrderDetailsBySalesIdAsync","createGetOrderByChannelReferenceLookupCriteriaInput","channelReferenceLookupCriteria","getOrderByChannelReferenceLookupCriteriaAsync","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createGetOrderOriginatorsInput","orderOriginatorSearchCriteria","getOrderOriginatorsAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","PackingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","createSearchInvoicedSalesLinesInput","invoicedSalesLinesSearchCriteria","searchInvoicedSalesLinesAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","checkInForOrderPickupAsync","createGetPackingSlipsDataInput","getPackingSlipsDataAsync","errorInstance","normalHeaders","accept","normalizeHeaders","lowerName","normalName","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","clientTimeout","abort","handleTimeout","cancelToken","CancelToken","cancel","isAbsoluteUrl","authenticationCreds","password","axiosTimeout","timeoutMS","_initialData$_clientP","_initialData$_clientP2","rTypeLowerCase","getCacheObjectValueFromReturnType","clientTimeoutMap","pageInsightsData","Method","Body","Response","StatusText","StatusCode","auth","axiosResponse","_callerContext$reques","insightsKey","insightsData","axiosError","_callerContext$reques2","ODataHttpRequest","recognizeDates","useJsonLight","inferJsonLightFeedAsObject","prepareRequest","maxDataServiceVersion","jsonHandler","invokeRequest","httpClient","ApiVersion","EntityIdentifier","AutoExitMethodType","CardType","PublishingAction","ListingPublishingActionStatus","OnlineChannelPublishStatusType","ReceiptTransactionType","EmployeePriceOverrideType","KeyInPriceRestriction","KeyInQuantityRestriction","NumberSequenceSeedType","ReasonCodeSourceType","TriggerFunctionType","QueryType","ChangeAction","PeriodicDiscountOfferType","SearchFilterType","InfoCodeActivity","SrsReportFileFormat","ShiftReconciliationLineStatus","ProductSearchServiceType","SearchSuggestionType","SalesStatus","EFTType","InventoryDocumentLineOperationResultMode","InventoryDocumentStatus","InventoryDocumentUpdateLinesActionType","InventoryInboundOutboundDocumentOperationType","InventoryInboundOutboundSourceDocumentStatus","InventorySourceDocumentType","InventoryInboundOutboundDocumentState","ReceiptNumberResetType","PeriodUnit","WarrantyPriceRangeBaseType","LogOnKeyboardType","LogOnLayoutType","InventoryDocumentValidationResultSeverity","InventoryDocumentOverreceivingErrors","InventoryDocumentSerialNumberErrors","EmployeeIdentityType","FulfillmentOperationType","PaymentStatus","UserAlertSourceType","CustomerOrderMode","InventoryValidationErrors","InventoryJournalPosAdjustmentType","ProductDataValidationErrors","CheckoutLocation","AddressOperationType","AddressType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","PriceMethod","ConcurrencyMode","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","CustomerOrderSynchronizationMode","StatementMethod","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DeviceActivationStatus","DeviceType","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","ReceiptType","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventAvailabilityCalculationMode","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","RecordingValueType","UserActionType","ArtifactType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","NatureOfAssessee","CartType","CartStatus","PeriodicDiscountsCalculateScope","TaxCalculationType","CustomerType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","ElectronicAddressType","MediaUsageType","DateValidationType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","VendorValidationResultLevel","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","InvoiceDataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","ProductPricingConfigurationErrorCode","OrderDataValidationErrors","PaymentConfigurationErrors","TaxLimitBase","BusinessPartnerOperationDeliveryType","ProspectType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","usingIterator","NATIVE_WEAK_MAP","STATE","deletePropertyOrThrow","FAILS_ON_UNDEFINED","FAILS_ON_NULL","itemsLength","arrayLength","GetEmployeeInput","createGetEmployeeInput","getEmployeeAction","StaffId","firstName","getEmployeeActionDataAction","clearCartLineDeliveryMode","copyCartLine","InventLocation","GetOrganizationWideOrderHistoryInput","innerResult","innerError","_context$apiSettings","getCategoryActionDataAction","CategoriesDataActions","productListsQuery","createAddProductListLinesInput","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","onFinally","serverWorkerNotUpdated","DEFAULT_HEADER","Prefer","fetchCommerceModels","isServiceWorkerSupportedOnClient","parseOdataResult","resultType","serviceWorker","Models","skipSerializationFromSW","shouldSkipSerializationFromSW","enable_service_worker","disableRetailProxySW","ready","initServerWorker","getSerializedResponseFromServiceWorker","resultSet","hasNextPage","dynamicImportPromise","serializePromise","messageChannel","MessageChannel","port1","onmessage","serializedData","active","postMessage","port2","_actionId","getDataCacheType","overrideCacheType","setClientTimeoutInMs","_clientTimeoutInMs","recurseEverything","_hasOperationName","_method","getActionIdFromInput","entityIdentifier","Key","buildCacheFromInput","_callerContext","batchRequestUri","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","odataRequest","_requestUri","toJson","__changeRequests","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","__edmType","__offset","pad","getTimezoneOffset","abs","minutes","formattedKey","parameter","paramValue","parameterSeparator","cacheKeyValue","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","buildBatchRequest","responses","parseBatchResponses","__batchResponses","Errors","parseErrorMessage","formatKey","formatFunctionParameter","addParameter","orderByColumns","loadPageResults","headerName","accountSelectionCustomerId","accountSelectionCustomerIdParts","tokenName","tokenValue","accessToken","cookieData","appSessionCookie","userSessionCookie","_appSessionCookie$val","_userSessionCookie$va","otherOdata","setMetadata","odataList","newData","batchResponses","__changeResponses","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","__assign","Cookies","changeListeners","HAS_DOCUMENT_COOKIE","parseCookies","_updateBrowserValues","parseOptions","_emitChange","name_1","finalOptions","addChangeListener","removeChangeListener","_setCookieList","_serverCookieList","_clientCookieList","cookieName","isEssential","_cookies","sameSiteRequiredFlag","_options","cookieOptionsWithDefaults","filteredOptions","clientCookieString","createCookieString","serverCookieString","setAlways","prefix","cartCookieOptions","existingCart","checkoutCartCookieOptions","existingCookie","accountSelectionCookieOptions","setCookieFunction","optionsString","_appendCookieOptions","cookieOptions","req","createSearchStateInput","tail","PageSummaryInput","cartStateDataAction","customersQuery","createCustomerAsync","customerSearchCriteria","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","refinerSourceTypes","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","getCustomerTimelineRefinersAsync","createGetTitlesInput","getTitlesAsync","UpdateOrderTemplateInput","getLinesInput","getPaginatedOrderTemplateLines","linesToUpdate","lineToUpdate","updatedLines","updatedLine","updateOrderTemplateInput","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","numberToString","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","urlString","stateOverride","codePoints","bufferCodePoints","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","port","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","pieceIndex","parseIPv6","partsLength","numbers","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","aFunction","namespace","contentTypeParts","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","handlerWrite","cType","writeContext","maxVersion","leftParts","rightParts","leftVersion","rightVersion","contentTypeObj","contentTypeToString","handlerRead","toggle","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queue","flush","nextTick","createTextNode","characterData","updateAddressHandler","webkit","AddressManagementInput","operationHandler","addAddressHandler","AddControlMode","AsyncClientRenderComponent","loadScriptAsync","onload","onerror","moduleChunk","waitAndInitializeModule","__bindings__","mappedProps","retryCount","currentModuleArray","lazyLoadHandler","_this$props$requestCa","scriptInitCompleted","clientModuleChunks","chunksToBeAdded","chunk","scriptElements","chunkExistsOnPage","scriptEl","_moduleBinder$compone","registrationBindings","moduleTypeName","rawModuleRegistrationObj","newModuleRegistrationObj","registeredViews","viewRegistrationKey","rawViewRegistrationObj","newViewComponent","componentRef","renderView","AddModuleControl","toggleMenuDisplay","button","getAddButtonId","menu","getAddButtonMenuId","hideMenuDisplay","onKeyPressMenu","onKeyPressAddModule","addModule","onKeyPressAddFragment","addFragment","getLocalizedStringsfromTools","stringName","getLocalizedString","localizedStrings","insertModule","insertFragment","moveNotAllowed","tooltip","onKeyDown","Sibling","slotName","parentData","AddModuleWrapper","safeRenderProps","addModuleProps","SafeRenderModuleWithContext","getViewBinder","viewLookupKey","viewCacheKey","viewInsights","viewLookupFunc","getView","viewLookup","defaultViewLookupFunc","renderId","runPreRenderViewPerformanceHook","_view$component","renderViewForModule","runPostRenderViewPerformanceHook","ErrorModule","getStandardErrorModuleMarkup","shouldDisplayErrors","isRenderAttrributeCalled","disableSSRErrorChecks","renderCallsCounter","isLazyLoaded","_props$context$reques","telemetryAttributes","moduleAttributes","_isEditorial","_setDataInfoAttribute","moduleIdToExperimentIdMap","info","isConfigured","isRegistered","mounted","disableServerSideErrorChecking","mobxShouldComponentUpdate","customShouldComponentUpdate","_setErrorStates","_setDataAttributes","_initializePerformanceComponent","nextState","componentDidCatch","runPreRenderPerformanceHook","renderCallIndex","_renderModule","runPostRenderPerformanceHook","initializePerformance","isMounted","mapStateToProps","lazyRenderModuleEnabled","errorType","renderErrorOrPlaceHolderModules","componentStack","moduleError","LazyLoad","offsetTop","_this$props$store","lazyload_offset","_generateDataInfo","_doServerSideRender","renderHtmlString","renderHtml","addFailingModuleServerRenderToCache","buildModuleServerRenderCacheKey","errorStack","getModuleServerRenderCacheKeyName","refNode","moduleConfig","getModuleConfig","Item","enableAddModuleControls","getSlotDictionary","slotDictionary","slotsWithAddModuleControls","addSiblingIndexDictionary","getNonPlaceholderModules","mods","getRenderSlotComponent","parentProps","moduleConfigs","addSiblingIndices","canAddAtIndex","_parentProps$store","EmptySlot","orgUnitsQuery","orgUnitNumber","deliveryModeTypeFilter","createGetOrgUnitLocationsByAreaInput","createGetStoreHoursInput","channelIds","createGetChannelDeliveryOptionsInput","depthArg","querySettingsProxy","formatNumberWidth","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","timezone","year","ms","seconds","direction","parseTimezone","setUTCFullYear","setUTCHours","__ns","jsonLightReadStringPropertyValue","propertyType","EDM","propertyValue","years","months","days","parseDuration","dateStr","timezoneOffsetIndex","SearchConfigurationInput","_cacheType","skipToken","baseCacheKey","ListPageState","activeFilters","sortingCritera","currentPageNumber","featureProduct","ListPageStateInput","listPageStateAction","createListPageInput","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","passed","$location","setImmediate","clearImmediate","Dispatch","runner","eventListener","globalPostMessageDefer","importScripts","createAccordionStateInput","createAccordionStateInputInternal","ArrayIteratorMethods","ArrayValues","getPrices","getRatings","getFullOrderTemplatesActionDataAction","orderTemplates","inputLinesRequests","inputLinesResponses","productLinesResponse","AddItemToProductListInput","addItemToProductListInput","$fill","toBigInt","actualValue","fill","callActionOrExecute","clientTimeoutInMs","_customer$Addresses","setPrimaryAddress","primaryAddresses","addresses","addr","inventoryProductAttributeRecordId","_input$channelInvento3","ActionRuntime","complexDataTypesPromises","dataActionMetadataList","lazyLoadModuleIds","tempMetadataList","storeLazyloadModuleId","loadDataProcessing","storeTemporaryAsyncResults","tempResultCacheItem","tempMetadata","firstInput","dataActionFunction","tempInput","processDataActionMetadataList","moduleContract","moduleBinderInitial","combineExtendedDataActionToModule","originalModuleBinder","themeDataActionsForModule","moduleDataActions","dataActionCustimizedMerge","newDataAction","customizer","originAction","lookupId","newLookUpId","fetchDataActionWithActionid","processModuleDataAction","dataActionInsightsKey","dataActionsInsights","Server","Client","convertRunOnToString","server","serverOnly","renderingContext","switchName","dataActionMetadata","disable_inst_action_await","isServerInstanceAction","runtime","client","ErrorMessageResource","ErrorLocation","CheckoutModule","updateCartLineQuantityValidateMaxAgainstDefaultOrderSettings","updateCartLineQuantityValidateMaxAgainstSiteSettings"],"mappings":";mxBA2BO,MAAMA,EAOTC,YAAmBC,EAAmBC,EAAmBC,GAalD,KAAAC,YAA4B,IAAM,sCAMlC,KAAAC,mBAAmC,IAAM,sCAMzC,KAAAC,cAAgB,IAAiB,OAxBpCC,KAAKN,UAAYA,EACjBM,KAAKL,UAAYA,EAEbC,IACAI,KAAKC,UAAYC,YAAaN,KA+GYO,YAA2B,CAC7EC,GAAI,uFACJC,OAhEGC,eACHC,EACAC,GAAuB,IAAAC,EAEvB,MAAMC,EAAiBC,kBAAgBC,kBAC7BC,sBAAoBC,cACtB,CACIC,cAAeP,EACfQ,oBAAqBC,IAAyBC,qCAAqCV,IAEvFD,EAAMZ,UACN,CAACY,EAAMb,WACP,KACe,QADXe,EACJF,EAAMN,iBAAS,IAAAQ,IAAI,IAI3B,IAAKE,kBAAgBQ,YAAYT,GAC7B,MAAO,GAGX,MAAMU,EAAgBV,EAAe,GAErC,IAAKC,kBAAgBQ,YAAYC,EAAcC,YAC3C,MAAO,GAGX,MAAMC,EAAWF,EAAcC,WAAWE,IAAIC,IAC1C,MAAMC,EAAiCC,YAA0ClB,EAAS,IAAI,OAAMmB,OAAWA,GACzGC,EAA6D,CAC/DC,4BAA6BL,EAAUM,mBACvCC,wBAAyB,GACzBC,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAW5B,EAAMN,WAgBrB,OAb+BY,sBAAoBuB,mDAC/C,CAAErB,cAAeP,EAASQ,oBAAqBC,IAAyBC,qCAAqCV,IAC7GY,EAAciB,gBAAkBjB,EAAciB,gBAAkBjB,EAAckB,SAC9EV,GAEgDW,KAAKC,GAClCC,IAAA,GACZjB,GAAS,IACZkB,6BAA8BF,OAS1C,aAAaG,QAAQC,IAAItB,IAUzBf,MArFAsC,IAEA,MAAMnD,EAAYoD,8CAAoCD,GAEtD,GAAInD,EACA,OAAO,IAAIF,GACNE,GACAmD,EAAUjD,eAAemD,YAAYpD,UACtCkD,EAAUjD,gBAGlB,MAAM,IAAIoD,MAAM,+G,oCC9EpB,IAAIC,EAAc,EAAQ,QAEtBC,EAAWD,EAAY,GAAGC,UAC1BC,EAAcF,EAAY,GAAGG,OAEjCC,EAAOC,QAAU,SAAUC,GACzB,OAAOJ,EAAYD,EAASK,GAAK,GAAI,K,g4BC2BhC,MAoCMT,EAAuCD,IAAuE,IAAAW,EACvH,MAAMhD,EAAUqC,EAAUjD,eAC1B,OAAiB,QAAjB4D,EAAIhD,EAAQiD,aAAK,IAAAD,GAAbA,EAAe9D,UACRc,EAAQiD,MAAM/D,UAGrBc,EAAQkD,WACRb,EAAUjD,eAAe8D,UAAUC,QACa,YAAhDd,EAAUjD,eAAe8D,UAAUE,SAE5BpD,EAAQkD,UAAUC,OAClBd,GAAaA,EAAUgB,QAAUhB,EAAUgB,OAAOnE,UAClDmD,EAAUgB,OAAOnE,eADrB,GAYEoE,EAAmBA,CAACC,EAA8BhB,IACpDiB,YAAwBjB,EAAagB,GAyBzC,IAAKE,EAWAC,GAXZ,SAAYD,GACRA,EAAA,YACAA,EAAA,cACAA,EAAA,8BACAA,EAAA,YACAA,EAAA,cALJ,CAAYA,MAAc,KAW1B,SAAYC,GACRA,EAAA,kBACAA,EAAA,0BAFJ,CAAYA,MAA2B,KAYhC,MAAMC,EAA+B,SACxCC,EACA5D,GAES,IADT6D,EAAAC,UAAAC,OAAA,QAAA5C,IAAA2C,UAAA,GAAAA,UAAA,GAA2CJ,EAA4BM,QAGvE,GAAIH,IAAgBH,EAA4BO,YAAa,CACzD,MAAMC,EAAmClE,EAAQmE,IAAId,OAAOe,wBAC5D,IACKjE,IAAgBQ,YAAYuD,IAC7BA,EAAiCG,SAASZ,EAAea,QACxDJ,EAAiCG,SAAST,GAE3C,OAAO,EAIf,MAAMW,EAA8BvE,EAAQmE,IAAId,OAAOmB,uBACvD,OACIrE,IAAgBQ,YAAY4D,KAC3BA,EAA4BF,SAASZ,EAAea,OACrDC,EAA4BF,SAAST,IAUhCa,EAAyBA,CAAClB,EAAkBhB,IACjDgB,EAASmB,WAAW,QACbnB,EAGJhB,EAAYoC,aAAeC,mBAAmBrB,GAS5CsB,EAA0BA,CACnCC,EACAvC,IAEOe,EAAiBwB,EAAQC,gBAAiBxC,GA8BxCyC,EAAoBA,CAAC9F,EAAmB+F,EAAoBC,KAC9D,CACHC,eAAgBD,EAChBE,UAAWlG,EACXmG,WAAYJ,IAQPK,EAA4CjD,GACjDA,GAAaA,EAAUgB,OAChB,CACHkC,UAAWlD,EAAUgB,OAAOmC,UAC5BC,WAAYpD,EAAUgB,OAAOqC,YAG9B,CACHH,UAAU,EACVE,WAAW,GAqBNE,EAAgBA,CAACC,EAAcrD,EAAmCsD,IACpE,GAAGD,YAAerD,EAAYpD,mBAAmBoD,EAAY9C,YAAYoG,EAAS,IAAIA,EAAW,KAM5G,IAAKC,GAAL,SAAKA,GACDA,EAAA,yBACAA,EAAA,+CAFJ,CAAKA,MAA4B,KAW1B,MAAMC,EAAmB,SAC5BxD,GAEQ,QAAAyD,EAAAlC,UAAAC,OADLkC,EAAyD,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAzDF,EAAyDE,EAAA,GAAArC,UAAAqC,GAE5D,MAAMC,EAAkEH,EAAQlF,IAAIsF,IACzE,CAAEC,IAAKD,EAAKC,IAAIC,oBAAqBC,MAAOH,EAAKG,SAGtDC,EAAwBL,EAAcrF,IAAIsF,GAAQA,EAAKC,KAY7D,OAVI/D,IACKkE,EAAsBpC,SAASyB,EAA6BY,eAC7DN,EAAcO,KAAK,CAAEL,IAAKR,EAA6BY,aAAcF,MAAOjE,EAAYpD,aAGvFsH,EAAsBpC,SAASyB,EAA6Bc,0BAA4BrE,EAAY9C,WACrG2G,EAAcO,KAAK,CAAEL,IAAKR,EAA6Bc,wBAAyBJ,MAAOjE,EAAY9C,aAIpG2G,EACFS,KAAK,CAACC,EAAGC,IAAMD,EAAER,IAAIU,cAAcD,EAAET,MACrCvF,IAAIsF,GAAQ,GAAGA,EAAKC,QAAQD,EAAKG,UACjCS,KAAK,MAGDC,EAA6BA,CAACtB,EAAcxG,KACrD,MAAM8D,EAAY9D,EAAe8D,UAC3BiE,EAAkBxB,EAAcC,EAAMxG,EAAemD,YAAanD,EAAeyG,QACvF,OAAO3C,EAAY,GAAGiE,KAAmBjE,EAAUC,UAAUD,EAAUkE,YAAYlE,EAAUE,WAAa+D,GAkCjGE,EAAsBA,CAC/BlE,EACAZ,EACA+E,KAEA,IAAKnE,GAAUmE,EACX,MAAO,GAGX,MAAMC,EAAepE,EAAOqE,OAAOC,MAAM,KAAK,GAG9C,OAAOnE,EADY,YAAYiE,gBACKhF,IAQ3BmF,EAA+CC,IACxD,OAAQA,GACJ,KAAKC,uBAAqBC,MACtB,OAAOpE,EAAeqE,MAC1B,KAAKF,uBAAqBG,cACtB,OAAOtE,EAAeuE,cAC1B,KAAKJ,uBAAqBK,KACtB,OAAOxE,EAAeyE,KAC1B,KAAKN,uBAAqBO,MACtB,OAAO1E,EAAe2E,MAC1B,QACI,OAAO3E,EAAea,OASrB+D,EAA8CzE,IACvD,OAAQA,GACJ,KAAKH,EAAeqE,MAChB,OAAOF,uBAAqBC,MAChC,KAAKpE,EAAeuE,cAChB,OAAOJ,uBAAqBG,cAChC,KAAKtE,EAAeyE,KAChB,OAAON,uBAAqBK,KAChC,KAAKxE,EAAe2E,MAChB,OAAOR,uBAAqBO,MAChC,QACI,OAAOP,uBAAqBU,OAS3BC,EAA4BA,CAACC,EAAeC,KACrD,IAAK,MAAMzH,KAAayH,EAAmB,CAAC,IAADC,EACvC,MAAMC,EAAyC,QAA3BD,EAAG1H,EAAU4H,sBAAc,IAAAF,OAAA,EAAxBA,EAA0BG,MAC5CC,IAAiBC,mBAAmBJ,IACrCH,EAASQ,aAAaC,IAAIvB,EAA4C1G,EAAUM,oBAAqBqH,GAIzGO,IAAiBC,WACjBC,OAAOC,QAAQC,aAAaF,OAAOC,QAAQE,MAAO,GAAIf,EAAS9F,WAAW8G,QAAQhB,EAASiB,KAAML,OAAOM,SAASD,QAiCnHE,EAA0BC,IAC5B,MAMMC,EAN4C,CAC9CjC,uBAAqBC,MACrBD,uBAAqBG,cACrBH,uBAAqBK,KACrBL,uBAAqBO,OAEkBpH,IAAIC,GA9BrB8I,EAC1BF,EACAjC,KAEA,MAAMoC,EAAqBrC,EAA4CC,GACjEnB,EAAQoD,EAAcI,IAAID,GAChC,GAAKvD,EAGL,MAAO,CACHlF,mBAAoBqG,EACpBiB,eAAgB,CACZ9G,SAAU,EACV+G,MAAOrC,KAiB6CsD,CAAsBF,EAAe5I,IACjG,OAAOb,IAAgBC,YAAYyJ,IAQ1BI,EAA+BzB,IACxC,MACMoB,EADqB,IAAIM,IAAI1B,EAAS9F,WAAWyH,qBACdnB,aAEzC,OADuCW,EAAuBC,IAUrDQ,EAAoCA,CAC7CC,EACAC,IAEKD,EAGAC,EAIED,EAAgBE,OACnBC,GACIA,EAAU1I,WAAawI,EAA8BG,mCACrDD,EAAU1I,WAAawI,EAA8BI,8CANlDL,EAHA,GAkBFM,EAAyBA,CAACnC,EAAkBpJ,KACrD,GAAIA,WAAgBwL,UAAYxL,EAAewL,SAASC,kBAAmB,CACvE,MAAMC,EAAM,IAAIZ,IAAI1B,GACduC,EAA6B,IAAIC,gBAAgBF,EAAIG,QAK3D,OAJIF,EAAUG,IAAI,WACdH,EAAUI,OAAO,UAErBL,EAAIG,OAASF,EAAUrI,WAChBoI,EAAIpI,WAEf,OAAO8F,GAOE4C,EAAqB3L,IAC9B,IAAmB,IAAfA,EACA,MAAM,IAAI+C,MACN,gI,mNCzfL,MAoBM6I,EAAsBA,CAC/BC,EACA/I,KAEA,MAAMgJ,EAAiE,GAUvE,OARAD,GACIA,EAASE,QAAQ1G,IACTA,GAAWA,EAAQhD,WACnBgD,EAAQC,gBA7BQzB,EAACC,EAA8BhB,IACvDgB,EAEIA,EAASmB,WAAW,QACbnB,EAIJhB,EAAYoC,aAAeC,mBAAmBrB,QAGrD,EAkBkCD,CAAiBwB,EAAQC,gBAAiBxC,GACpEgJ,EAAsB5E,KAAK7B,MAIhCyG,GCpCEE,EAAsBnB,IAC/B,IAAIoB,EACJ,GAAIpB,GAAiCA,EAA8BI,6CAA8C,CAE7GgB,EAAU,CACNC,QAAS,CACL,CACIC,WAJW,QAAQtB,EAA8BI,6CAKjDmB,cAAc,KAK9B,OAAOH,G,ICZCI,E,aAAZ,SAAYA,GAIRA,EAAA,kBAKAA,EAAA,kBAKAA,EAAA,kBAdJ,CAAYA,MAAoC,KAoBzC,MAAMC,EAMT9M,YAAmB+M,EAA+B7M,EAAmBmL,GAAoD,IAArB7K,EAAAqE,UAAAC,OAAA,QAAA5C,IAAA2C,UAAA,GAAAA,UAAA,GAAoB,EAOjH,KAAAzE,YAAc,SAAA4M,EAAA,MACjB,GAAGzM,KAAKL,aAAaK,KAAKC,aAA+C,QAAtCwM,EAAIzM,KAAK8K,qCAA6B,IAAA2B,OAAA,EAAlCA,EAAoCxB,qCACxE,KAAAnL,mBAAqB,IAAc,cACnC,KAAAC,cAAgB,IAAiB,cATpCC,KAAKC,UAAYA,EACjBD,KAAKL,UAAYA,EACjBK,KAAKwM,cAAgBA,EACrBxM,KAAK8K,8BAAgCA,GAmGtC,MAAM4B,EAAmCvM,YAA2B,CACvEC,GAAI,oDACJC,OA5CGC,eACHC,EACAC,GAAuB,IAAAmM,EAEvB,MAIMC,QAjDVtM,eACIsB,EACAZ,EACA6L,GAOA,GADsDC,YAD5CC,SACkE,QACzB,CAG/C,OAD4BC,EAAQ,QAE/BC,8BAA8B,CAAElM,cAAe8L,EAAK7L,uBAAuBY,GAC3EW,KAAM2K,IACH,IAAKA,EAED,OADAL,EAAIM,MAAM,sDACyB,GAGvC,MAAMC,EAASF,EAEf,OAAsB,IAAlBE,EAAO7I,QACPsI,EAAIM,MAAM,8EACyB,IAGhCC,IAGf,OAAOzK,QAAQ0K,QAAQ,IAkBJC,CACnB,CACIC,QAAS,CACLC,UAAWjN,EAAMZ,UACjBwC,UAAW5B,EAAMN,YARD,CACxBwN,OAAO,GAWPjN,GAKEkN,EACyE,KAAxC,QAAnCf,EAAApM,EAAMuK,qCAA6B,IAAA6B,OAAA,EAAnCA,EAAqC1B,oCACrC2B,EAASe,KAAKC,IAAO,IAAAC,EAAA,OAAID,EAAQtL,YAAgD,QAAxCuL,EAAKtN,EAAMuK,qCAA6B,IAAA+C,OAAA,EAAnCA,EAAqC5C,qCACvF,IAAI6C,EASJ,OARIJ,IACAI,EAAiBJ,EAAiBK,OAAOJ,KACrC3G,GACIA,EAAMgH,uBAAyBzN,EAAMuK,8BAA8BmD,uCACnEjH,EAAMkH,wBAA0B3N,EAAMuK,8BAA8BmD,wCAIzEH,KC7GJ,MAuFMK,EAAkChO,YAA2B,CACtEE,OAxFqCC,MAAOC,EAAyBC,KACrE,IAAI4N,EACJ,MAAM1K,EAAYlD,EAAQZ,eAAe8D,UAGzC,GAAInD,EAAM8N,aAAaC,aAAe/N,EAAM8N,aAAaC,YAAY/J,OAAS,EAC1E6J,EAAa7N,EAAM8N,aAAaC,YAAY,QACzC,GAAI5K,GAAaA,EAAUE,UAAYF,EAAUE,SAAS2K,gBAAkBC,KAAsB9K,EAAUkE,SAC/GwG,GAAc1K,EAAUkE,aACrB,MAAIlE,GAAaA,EAAU+K,YAAc/K,EAAU+K,WAAWlK,OAAS,GAI1E,MAAM,IAAIvB,MAAM,kDAHhBoL,GAAc1K,EAAU+K,WAAW,GAKvCjO,EAAQkO,UAAUC,MAAM,oDAAoDP,GAC5E,MAAMQ,EAA+C,CACjDrB,QAAS,CACLC,WAAYjN,EAAMZ,UAClBwC,WAAY5B,EAAMN,WAEtB4O,YAAa,CAACT,GACdU,sBAAsB,EACtBC,mBAAmB,GAGjB/N,EAA2C,CAC7CgO,OAAQ,CACJC,IAAK1O,EAAM8N,aAAaa,UAAY,KAS5C,GADsDpC,aAD5CC,SACkE,QACzB,CAAC,IAADoC,EAAAC,EAAAC,EAAAC,EAC/C,IAAIxE,EAAgC,GACpC,IACqC,QAAjCqE,EAAA3O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAsL,OAAA,EAAjCA,EAAmCI,+BAAgCjD,EAAqCkD,UACvE,QAAjCJ,EAAA5O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAuL,OAAA,EAAjCA,EAAmCG,+BAAgCjD,EAAqCmD,QAC1G,CAEE,MAAMC,EAA6B1C,EAAQ,QAC3ClC,QAAsC4E,EAA2BC,+BAA+B,CAAE5O,cAAeP,IAGrH,IAAqC,QAAjC6O,EAAA7O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAwL,OAAA,EAAjCA,EAAmCE,+BAAgCjD,EAAqCkD,QAAS,CACjH,MAAMI,EAAoC,IAAIrD,EAC1C/L,GACCD,EAAMZ,UACPmL,GACCvK,EAAMN,WAGL4P,QAAqCnD,EAAiCkD,EAAmCpP,GAC3GqP,IACAjB,EAAsBkB,WAAa,CAACD,IAI5C,IAAqC,QAAjCP,EAAA9O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAyL,OAAA,EAAjCA,EAAmCC,+BAAgCjD,EAAqCmD,QAAS,CACjH,MAAMvD,EAAUD,EAAoBnB,GAChCoB,IACAlL,EAAoB+O,QAAU7D,IAK1C,OAAO8D,gCACH,CACIjP,cAAeP,EACfQ,uBAEJ4N,GAECrM,KAAMuJ,IACHtL,EAAQkO,UAAUC,MAAM,gDAAiD7C,GAClED,EAAoBC,EAAUtL,EAAQZ,eAAemD,eAE/DkN,MAAMC,IAEH,MADA1P,EAAQkO,UAAUwB,MAAM,2CAA2CA,GAC7D,IAAIlN,MAAMkN,MAMxB9P,GAAI,4C,gBCxFD,MA4EM+P,EAAwChQ,YAA2B,CAC5EE,OA7E2CC,MAAOC,EAAyBsM,KAC3E,MAAMuD,EAA6C,GAC7CC,EAA+B,IAAIC,IACnCrQ,EAAYsQ,YAAmB1D,EAAIjN,eAAgB,MACzDwQ,EAAoB7C,QAAU,CAC1BC,UAAWX,EAAIjN,eAAemD,YAAYpD,UAC1CwC,UAAWlC,GAEfmQ,EAAoBrB,mBAAoB,EACxCqB,EAAoBtB,sBAAuB,EAC3C,MACM0B,EAAcH,EAAc7F,IADP,wCACuExD,MAC5FyJ,GAAaD,aAAW,EAAXA,EAAazF,OAAO/D,GAASA,EAAM/G,YAAcA,GAAWsB,IAAIyF,GAASA,EAAMtH,aAAc,CAAC,GACjH0Q,EAAoBM,IAAMD,EAE1B,MAAMzP,EAA2C,CAC7CgO,OAAQ,CACJC,IAAK1O,EAAM8N,aAAaa,UAAY,KAS5C,GADsDpC,aAD5CC,SACkE,QACzB,CAAC,IAAD4D,EAAAC,EAAAC,EAAAC,EAC/C,IAAIhG,EAAgC,GACpC,IACiC,QAA7B6F,EAAA9D,EAAIjN,eAAe+E,IAAId,cAAM,IAAA8M,OAAA,EAA7BA,EAA+BpB,+BAAgCjD,EAAqCkD,UACvE,QAA7BoB,EAAA/D,EAAIjN,eAAe+E,IAAId,cAAM,IAAA+M,OAAA,EAA7BA,EAA+BrB,+BAAgCjD,EAAqCmD,QACtG,CAEE,MAAMC,EAA6B1C,EAAQ,QAC3ClC,QAAsC4E,EAA2BC,+BAA+B,CAAE5O,cAAe8L,IAGrH,IAAiC,QAA7BgE,EAAAhE,EAAIjN,eAAe+E,IAAId,cAAM,IAAAgN,OAAA,EAA7BA,EAA+BtB,+BAAgCjD,EAAqCkD,QAAS,CAC7G,MAAMI,EAAoC,IAAIrD,EAC1CM,GACCtM,EAAMZ,UACPmL,GACCvK,EAAMN,WAGL4P,QAAqCnD,EAAiCkD,EAAmC/C,GAC3GgD,IACAO,EAAoBN,WAAa,CAACD,IAI1C,IAAiC,QAA7BiB,EAAAjE,EAAIjN,eAAe+E,IAAId,cAAM,IAAAiN,OAAA,EAA7BA,EAA+BvB,+BAAgCjD,EAAqCmD,QAAS,CAC7G,MAAMvD,EAAUD,EAAoBnB,GAChCoB,IACAlL,EAAoB+O,QAAU7D,IAK1C,OAAO8D,gCACH,CACIjP,cAAe8L,EACf7L,uBAEJoP,GAEC7N,KAAMuJ,IACHe,EAAI6B,UAAUC,MAAM,sDAAuD7C,GACpED,EAAoBC,EAAUe,EAAIjN,eAAemD,eAE3DkN,MAAMC,IAEH,MADArD,EAAI6B,UAAUwB,MAAM,iDAAiDA,GAC/D,IAAIlN,MAAMkN,MAMxB9P,GAAI,mD,oDC3ED,MAAM2Q,EAMTtR,YAAYC,EAA4BqD,EAAmC9C,GAOpE,KAAAJ,YAAc,IApBHsG,EAACC,EAAcrD,EAAmC9C,IAC7D,GAAGmG,YAAerD,EAAYpD,mBAAmBM,IAmB7BkG,CAAc,YAAYnG,KAAKN,UAAUwD,WAAclD,KAAK+C,YAAa/C,KAAKC,WAClG,KAAAH,mBAAqB,IAAM,gBAC3B,KAAAC,cAAgB,IAAiB,cARpCC,KAAK+C,YAAcA,EACnB/C,KAAKN,WAAaA,EAClBM,KAAKL,UAAYoD,EAAYpD,UAC7BK,KAAKC,UAAYA,GAazB,SAAS+Q,EACLhQ,EACArB,EACA8Q,EACAxQ,GAGA,OAZJ,SAAuB2H,GACnB,MAAMd,EAAMc,EAAW,CAAEtF,SAAUsF,GAAa,KAChD,OAAO,IAAIqJ,mBAAiB,WAAY,UAAW,eAAgBnK,GASrDoK,GAAgBC,eAAenQ,GAChCoQ,qCACT,YACA,EACA,qBACA,OACA,CAAEC,YAAa,OAAQC,aAAc,iBACrC,CAAE3R,UAAWA,EAAW8Q,WAAYA,EAAYxQ,UAAWA,IAsDpDE,YAA2B,CACtCE,OArCGC,eAAuCiR,EAAwB1E,GAClE,IAAK0E,IAAW7K,MAAM8K,QAAQD,IAA6B,IAAlBA,EAAOhN,OAE5C,OADAsI,EAAIM,MAAM,6DACH,GAGX,MAAMsE,EAAwC,GACxChB,EAAac,EAAOhQ,IAAI,CAAChB,EAAOmR,KAClCD,EAAiBlR,EAAMb,WAAagS,EAC7BnR,EAAMb,YAGjB,OA1BJ,SACIc,EACAb,EACA8Q,EACAxQ,GAGA,MAAM0R,EAAUX,EAAyBxQ,EAAQQ,oBAAqBrB,EAAW8Q,EAAYxQ,GAC7F,OAAO2R,wBAA+BD,EAASnR,GAkBxCqR,CAAoB,CAAE9Q,cAAe8L,GAAO0E,EAAO,GAAG5R,UAAW8Q,EAAYc,EAAO,GAAGtR,WAAWsC,KAAKuJ,IAC1G,IAAKA,EACD,MAAO,GAEX,MAAMgG,EAAmCjG,EAAoBC,EAAUe,EAAIjN,eAAemD,aAAcgP,OACpG,CAACC,EAAuB1M,KACpB,IAAKA,EACD,OAAO0M,EAIX,OADAA,EADYP,EAAiBnM,EAAQhD,WACzBgD,EACL0M,GAEX,IAIJ,OAAOT,EAAOhQ,IAAIhB,GACOuR,EAAenE,KAAKrI,GAAWA,GAAWA,EAAQhD,WAAa/B,EAAMb,YACpD,OAO9CU,GAAI,yCACJ6R,WAAW,ICvFf,MA0EMC,EAAsB5R,MAAO6R,EAAgD5R,EAAyBC,KACxG,IAAIiQ,EAAuB,GAE3B,GAAIlQ,EAAM8N,aAAa+D,YAAa,CAChC,MAAMC,OAlCE/R,WACZ,IAAI+R,EACJ,GAAIxF,EAAIjN,gBAAkBiN,EAAIjN,eAAe0S,QAAS,CAClD,MAEMC,GAFU1F,EAAIjN,gBAAkBiN,EAAIjN,eAAe0S,SAC9BE,gBACQvK,MAAM,KACzC,GAAIsK,GAA8C,IAA3BA,EAAgBhO,SAE9BsI,EAAIjN,eAAe6S,KAAKC,iBAAqC,MAAlBH,EAAgB,KAC1D1F,EAAIjN,eAAe6S,KAAKC,iBAAqC,MAAlBH,EAAgB,IAC/D,CACE,MAAMI,QAAiBC,oBAAU,CAAE7R,cAAe8L,GAAO0F,EAAgB,IACrEI,GAAYA,EAASE,KACrBR,EAAOM,IAKvB,OAAON,GAgBgBS,CAAQtS,GAC3B,GAAI6R,GAAQA,EAAKU,UAAW,CACxB,MACMC,EADiBX,EAAKU,UAAUhI,OAAOkI,QAAiCtR,IAAtBsR,EAAQrN,WAC1BrE,IAAI+D,GAAWA,EAAQM,WAC7DpF,EAAQkO,UAAUC,MAAM,qBAAqBqE,GAEzCA,GAAkBA,EAAezO,OAAS,IAC1CkM,EAAkBuC,SAGvB,GAAIzS,EAAM8N,aAAa6E,qBAAuB3S,EAAM8N,aAAaoC,YAAuD,IAAzClQ,EAAM8N,aAAaoC,WAAWlM,OAAc,CAC9H,MAAMb,EAAYlD,EAAQZ,eAAe8D,UAErCA,GAAaA,EAAUkE,UAAYlE,EAAUE,UAAYF,EAAUE,SAAS2K,gBAAkB4E,MAC9F1C,EAAa,EAAE/M,EAAUkE,gBAIzBrH,EAAM8N,aAAaoC,YAAclQ,EAAM8N,aAAaoC,WAAWlM,OAAS,IACxEkM,EAAa,CAAClQ,EAAM8N,aAAaoC,WAAW,KAIpD,OAAOA,GAGL2C,EAAmC9S,MACrCC,EACAQ,EACA+J,KACgC,IAAAqE,EAChC,MAAM3O,EAA0BO,EAAcA,cACxCsS,QAA2BC,YAA4B,IAAIC,IAAiB/S,EAAQZ,eAAemD,YAAa,IAAKvC,GAErHoB,EAAwC,CAE1C4R,uBAH0BH,aAAQ,EAARA,EAAUI,gBAAiBjT,EAAQZ,eAAe6S,KAAKiB,sBAIjFC,qBAAsBpT,EAAM8N,aAAauF,qBACzCrG,QAAS,CACLC,WAAYhN,EAAQZ,eAAemD,YAAYpD,UAC/CwC,WAAY5B,EAAMN,WAEtB6O,sBAAsB,EACtBC,mBAAmB,GAWvB,GADsCjC,aAL5BC,SAKkD,UACA,QAAvBoC,EAAC3O,EAAQZ,sBAAc,IAAAuP,GAAU,QAAVA,EAAtBA,EAAwB/D,gBAAQ,IAAA+D,IAAhCA,EAAkC0E,0CACpE,IApHqBC,EAAC3B,EAAgD5R,EAAyBC,KACnG,IAAI8N,EAAwB,GAE5B,GAAI/N,EAAM8N,aAAa6E,qBAAuB3S,EAAM8N,aAAaC,aAAyD,IAA1C/N,EAAM8N,aAAaC,YAAY/J,OAAc,CACzH,MAAMb,EAAYlD,EAAQZ,eAAe8D,UAErCA,GAAaA,EAAUE,UAAYF,EAAUE,SAAS2K,gBAAkBC,KACpE9K,EAAUkE,WACV0G,EAAc,EAAE5K,EAAUkE,gBAK9BrH,EAAM8N,aAAaC,aAAe/N,EAAM8N,aAAaC,YAAY/J,OAAS,IAC1E+J,EAAc/N,EAAM8N,aAAaC,aAIzC6D,EAAuBtD,YAAcP,GAmG7BwF,CAAqBlS,EAAgBrB,EAAOC,GAC5CoB,EAAe8O,UAAYwB,EAAoBtQ,EAAgBrB,EAAOC,GAEtE,MAAMQ,EAA2C,CAC7CgO,OAAQ,CACJC,IAAK1O,EAAM8N,aAAaa,UAAY,KAK5C,GADsDpC,aAjBpDC,SAiB0E,QACzB,CAAC,IAADqC,EAAAC,EAC/C,IAAqC,QAAjCD,EAAA5O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAuL,OAAA,EAAjCA,EAAmCG,+BAAgCjD,EAAqCkD,QAAS,CACjH,MAAMI,EAAoC,IAAIrD,EAC1C/L,GACCD,EAAMZ,UACPmL,GACCvK,EAAMN,WAGL4P,QAAqCnD,EAAiCkD,EAAmCpP,GAC3GqP,IACAjO,EAAekO,WAAa,CAACD,IASrC,IAAqC,QAAjCR,EAAA7O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAwL,OAAA,EAAjCA,EAAmCE,+BAAgCjD,EAAqCmD,QAAS,CACjH,MAAMvD,EAAUD,EAAoBnB,GAChCoB,IACAlL,EAAoB+O,QAAU7D,IAK1C,IAAI6H,QAA6B/D,gCAC7B,CACIjP,cAAeP,EACfQ,uBAEJY,GAEJ,GAAImS,EAAqBxP,OAAQ,CAC7B,IAAIyP,EAAiD,GASrD,GARAA,EAA0BD,EAAqBhJ,OAAOkJ,MAExBA,EAAKC,iBAA4C,IAAzBD,EAAK5R,kBAG3D0R,EAAuBC,EAGnBD,EAAqBxP,OAAS,EAE9B,OADAsH,EAAoBkI,EAAsBvT,EAAQZ,eAAemD,aAC1DgR,GAGjB,MAAOI,GAEL3T,EAAQkO,UAAUwB,MAAM,4CAA4CiE,GAG5E,MAAO,IAsKEC,EAAwCjU,YAA2B,CAC5EE,OApK2CC,MAAOC,EAAyBC,KAE3E,MAAMkT,EACFlT,EAAQZ,gBAAkBY,EAAQZ,eAAe6S,MAAQjS,EAAQZ,eAAe6S,KAAKiB,sBACzF,GAAInT,EAAM8N,aAAauF,uBAAyBS,MAAuBX,EACnE,MAAO,GAGX,MAAMvB,EAAiD,GACjDmC,EAAyB,CAAEvT,cAAeP,EAASQ,oBAAqB,CAAEgO,OAAQ,CAAEC,IAAK1O,EAAM8N,aAAaa,UAAY,MAG9H,IAAIqF,EAFJpC,EAAuBhQ,UAAY5B,EAAMN,UAGrCM,EAAM8N,aAAauF,qBACnBW,EAAuBhU,EAAM8N,aAAauF,qBAxNxBY,KACtB,MAAM,IAAIxR,MAAM,SAASwR,0EAyNrBC,CAAiB,4CAErBtC,EAAuBuC,iBAAmBxC,EAAoBC,EAAwB5R,EAAOC,IAExFD,EAAM8N,aAAasG,iBAAmBJ,IAAyBF,MAAuBX,IACvFvB,EAAuBqB,sBAAwBE,EAC/CY,EAAajD,YAAc,OAG/B,MAIMuD,EAAgD9H,aAD5CC,SACkE,QAC5E,IAAIjC,EAAgC,GACgB,IAADwE,EAAAuF,EAAnD,GAAID,KAEqC,QAAjCtF,EAAA9O,EAAQZ,eAAe+E,IAAId,cAAM,IAAAyL,OAAA,EAAjCA,EAAmCC,+BAAgCjD,EAAqCkD,UACvE,QAAjCqF,EAAArU,EAAQZ,eAAe+E,IAAId,cAAM,IAAAgR,OAAA,EAAjCA,EAAmCtF,+BAAgCjD,EAAqCmD,SAC1G,CAEE,MAAMC,EAA6B1C,EAAQ,QAC3ClC,QAAsC4E,EAA2BC,+BAA+B,CAAE5O,cAAeP,IAIzH,MAAMsL,QAAiBsH,EAAiC7S,EAAO+T,EAAcxJ,GAC7E,OAAIgB,EAASvH,OAAS,EACXuH,GAGXtL,EAAQkO,UAAUC,MAAM,4BAA4BmG,KAAKC,UAAU5C,IAG/DoC,IAAyBS,KAErB7C,EAAuBuC,YACsB,IAA7CvC,EAAuBuC,WAAWnQ,QAClC4N,EAAuBtD,aACuB,IAA9CsD,EAAuBtD,YAAYtK,OAE5B,GAIR0Q,YAAiBX,EAAcC,EAAsBpC,GACvD5P,KAAKjC,UACF,GAAI4U,EAAqB,CACrB,MAAMC,EAAgC,GAChCC,EAA0B,GAC1BC,EAAkB9E,YAAmB/P,EAAQZ,eAAgB,MAEnE,IAAK,IAAI0V,EAAI,EAAGA,EAAIJ,EAAoB3Q,OAAQ+Q,IAAK,CACjD,MAAMrC,EAAUiC,EAAoBI,GAEhCrC,EAAQsC,WAA0C,IAA7BtC,EAAQuC,mBAC7BL,EAAcG,GAAK,IAAIvE,GAAckC,EAAQsC,UAAW/U,EAAQZ,eAAemD,YAAasS,GAC5FD,EAAcE,GAAKrC,EAAQsC,WAOnC,GAJA/U,EAAQkO,UAAUC,MAAM,0CAA0CpO,EAAM8N,aAAauF,sBACrFpT,EAAQkO,UAAUC,MAAM,gCAAgCyG,EAAc7Q,QACtE/D,EAAQkO,UAAUC,MAAM,uBAAwByG,GAE5CD,EAAc5Q,OAAQ,CACtB,MAAMkR,EAAoBN,EAAc5T,IAAIyF,GAASA,EAAMtH,WACrDkP,EAA+C,CACjD8B,IAAK+E,EACLlI,QAAS,CACLC,WAAYhN,EAAQZ,eAAemD,YAAYpD,UAC/CwC,WAAY5B,EAAMN,WAEtB6O,sBAAsB,EACtBC,mBAAmB,GAGjB/N,EAA2C,CAC7CgO,OAAQ,CACJC,IAAK1O,EAAM8N,aAAaa,UAAY,KAI5C,GAAI0F,EAA+C,CAAC,IAADc,EAAAC,EAC/C,IACqC,QAAjCD,EAAAlV,EAAQZ,eAAe+E,IAAId,cAAM,IAAA6R,OAAA,EAAjCA,EAAmCnG,+BAAgCjD,EAAqCkD,QAC1G,CACE,MAAMI,EAAoC,IAAIrD,EAC1C/L,GACCD,EAAMZ,UACPmL,GACCvK,EAAMN,WAGL4P,QAAqCnD,EACvCkD,EACApP,GAEAqP,IACAjB,EAAsBkB,WAAa,CAACD,IAS5C,IACqC,QAAjC8F,EAAAnV,EAAQZ,eAAe+E,IAAId,cAAM,IAAA8R,OAAA,EAAjCA,EAAmCpG,+BAAgCjD,EAAqCmD,QAC1G,CACE,MAAMvD,EAAUD,EAAoBnB,GAChCoB,IACAlL,EAAoB+O,QAAU7D,IAK1C,IACI,IAAI6H,QAA6B/D,gCAC7B,CACIjP,cAAeP,EACfQ,uBAEJ4N,GAKJ,GADApO,EAAQkO,UAAUC,MAAM,kCAAmCmG,KAAKC,UAAUhB,IACtEA,EAAqBxP,OAAS,EAG9B,OAFAsH,EAAoBkI,EAAsBvT,EAAQZ,eAAemD,aNjUzF6S,EMkUkF7B,EAA1DA,EAAiD0B,ENhUtD1D,OAAO,CAAC3E,EAA+BzJ,KACtD,MAAM2B,EAAUsQ,EAA8BjI,KAAKsF,GAAWA,EAAQ3Q,WAAaqB,GAInF,OAHI2B,GACA8H,EAAOjG,KAAK7B,GAET8H,GACR,IM2T4B2G,EAEb,MAAOI,GAEL3T,EAAQkO,UAAUwB,MAAM,4CAA4CiE,KNzUnD0B,IAErCD,EM2UQ,MAAO,KAEV3F,MAAMC,IAEH,MADA1P,EAAQkO,UAAUwB,MAAM,iDAAiDA,GACnE,IAAIlN,MAAMkN,OAMxB9P,GAAI,kDCpYFqU,EAAoBD,IACtB,MAAM,IAAIxR,MAAM,SAASwR,sEAwChBsB,EAAwC3V,YAA2B,CAC5EE,OAtC2CC,MAAOC,EAAyBC,KAC3E,IAAId,EACAqW,EAkBJ,OAhBIxV,EAAM8N,aAAaoC,YAAclQ,EAAM8N,aAAaoC,WAAWlM,OAAS,EACxE7E,EAAYa,EAAM8N,aAAaoC,WAAW,GACnCjQ,EAAQZ,eAAe8D,WAAalD,EAAQZ,eAAe8D,UAAUC,OAC5EjE,GAAac,EAAQZ,eAAe8D,UAAUC,OAE9C8Q,EAAiB,aAGjBlU,EAAM8N,aAAa0H,eACnBA,GAAkBxV,EAAM8N,aAAa0H,eAErCtB,EAAiB,kBAErBjU,EAAQkO,UAAUC,MAAM,qDAAqDjP,GAC7Ec,EAAQkO,UAAUC,MAAM,0DAA0DoH,GAE3EC,kCACH,CAAEjV,cAAeP,EAASQ,oBAAqB,CAAEgO,OAAQ,CAAEC,IAAK1O,EAAM8N,aAAaa,UAAY,MAC/FxP,EACAa,EAAMZ,UACNY,EAAMN,UACN8V,GAECxT,KAAMuJ,IACHtL,EAAQkO,UAAUC,MAAM,iDAAkD7C,GACnED,EAAoBC,EAAUtL,EAAQZ,eAAemD,eAE/DkN,MAAMC,IAEH,MADA1P,EAAQkO,UAAUwB,MAAM,4CAA4CA,GAC9D,IAAIlN,MAAMkN,MAMxB9P,GAAI,mDCfK6V,EAAgC9V,YAA2B,CACpEE,OA7BmCC,MAAOC,EAAyBC,KACnE,IAAI0V,EACJ,GAAI3V,EAAM8N,aAAa6H,WACnBA,EAAa3V,EAAM8N,aAAa6H,eAC7B,MAAI1V,EAAQZ,eAAe6D,OAASjD,EAAQZ,eAAe6D,OAASjD,EAAQZ,eAAe6D,MAAM0S,GAGpG,MAAM,IAAInT,MACN,4HAHJkT,EAAa1V,EAAQZ,eAAe6D,MAAM0S,EAO9C,OAAOC,4BACH,CAAErV,cAAeP,EAASQ,oBAAqB,CAAEgO,OAAQ,CAAEC,IAAK1O,EAAM8N,aAAaa,UAAY,MAC/F3O,EAAMZ,UACNY,EAAMN,UACNiW,GAEC3T,KAAMuJ,IACHtL,EAAQkO,UAAUC,MAAM,gDAAiD7C,GAClED,EAAoBC,EAAUtL,EAAQZ,eAAemD,eAE/DkN,MAAMC,IAEH,MADA1P,EAAQkO,UAAUwB,MAAM,0CAA0CA,GAC5D,IAAIlN,MAAMkN,MAMxB9P,GAAI,0C,gBCjBD,MAAMiW,EAAqB/V,MAC9BgW,EACA9V,EACA+V,EACAC,KAEA,IAAInW,EACJ,MAAMoW,EAA8CH,EAGpD,OAFAG,EAAoB3K,SAAW,GAEvB4K,IAAgBJ,EAAaK,WACjC,KAAKD,IAAgBE,gBACjBvW,EAAS4V,EACT,MACJ,KAAKS,IAAgBG,kBACjBxW,EAAS8N,EACT,MACJ,KAAKuI,IAAgBI,gBACjBzW,EAASyV,EACT,MACJ,KAAKY,IAAgBK,uBACjB1W,EAAS8P,EACT,MACJ,KAAKuG,IAAgBM,UACrB,KAAKN,IAAgBO,KACrB,KAAKP,IAAgBQ,eACjB7W,EAAS+T,EACT,MACJ,QACI5T,EAAQkO,UAAUwB,MAAMiH,IAA2Bb,EAAaK,UAChEF,EAAoBpI,aAAe,CAAE6B,MAAOiH,KAGpD,QAAexV,IAAXtB,EACA,OAAOA,EAAO,IAAI+W,IAAiBd,EAAc9V,GAAUA,GACtD+B,KAAK8U,IACFZ,EAAoB3K,SAAWuL,UAAe,GAC9CZ,EAAoB3K,SAAW2K,EAAoB3K,SAASf,OAAOkJ,GAAQA,GAAQA,EAAKqD,MACxFC,EAA6B/W,EAAS6W,EAAad,EAAUC,KAEhEvG,MAAMC,IACH1P,EAAQkO,UAAUwB,MAAMsH,KACxBhX,EAAQkO,UAAU+I,UAAUvH,GAC5BuG,EAAoBpI,aAAe,CAAE6B,MAAOsH,KAC5CD,EAA6B/W,EAASiW,EAAoB3K,SAAUyK,EAAUC,MAcxFe,EAA+BA,CACjC/W,EACAsL,EACAyK,EACAC,KAEA,GAAI9M,IAAiBC,WAAa+N,YAAsBlX,EAAQZ,iBAAmB2W,GAAYC,EAAuB,CAElH,MAAMmB,EAA6BnX,EAASmX,aACtCC,EAAaD,EAAanN,IAAsD,CAClFqN,SAAUC,IACVhR,IAAKyP,IAET,GAAIqB,EAAY,CACZ,MAAM/T,EAASkU,YAAKH,EAAW3D,MAC/BpQ,EAAO2S,GAAuB1K,SAAWA,EACzCkM,IAAKnU,EAAQ,CAAC2S,GAAwB3S,EAAO2S,IAC7CmB,EAAaM,IAAI,CAAEJ,SAAUC,IAAmBhR,IAAKyP,GAAY,CAAEtC,KAAMpQ,Q,oCCnGrF,IAAIqU,EAAa,EAAQ,QACrBC,EAAuB,EAAQ,QAC/BC,EAAc,EAAQ,QACtBC,EAAuB,EAAQ,QAEnChV,EAAOC,QAAU,SAAUgV,EAAGxR,EAAKE,EAAOuR,GACnCA,IAASA,EAAU,IACxB,IAAIC,EAASD,EAAQE,WACjBC,OAAwB/W,IAAjB4W,EAAQG,KAAqBH,EAAQG,KAAO5R,EAEvD,GADIoR,EAAWlR,IAAQoR,EAAYpR,EAAO0R,EAAMH,GAC5CA,EAAQI,OACNH,EAAQF,EAAExR,GAAOE,EAChBqR,EAAqBvR,EAAKE,OAC1B,CACL,IACOuR,EAAQK,OACJN,EAAExR,KAAM0R,GAAS,UADEF,EAAExR,GAE9B,MAAOoJ,IACLsI,EAAQF,EAAExR,GAAOE,EAChBmR,EAAqBU,EAAEP,EAAGxR,EAAK,CAClCE,MAAOA,EACPyR,YAAY,EACZK,cAAeP,EAAQQ,gBACvBC,UAAWT,EAAQU,cAErB,OAAOX,I,o2BCeJ,MAAMY,EAWTzZ,YACIC,EACAC,EACAwZ,EACA9H,EACAzR,GAgBG,KAAAC,YAA4B,IAAM,kBAMlC,KAAAC,mBAAmC,IAAM,gBAMzC,KAAAC,cAAgB,IAAiB,OA1BpCC,KAAKN,UAAYA,EACjBM,KAAKL,UAAYA,EACjBK,KAAKmZ,wBAA0BA,EAC/BnZ,KAAKqR,YAAcA,EAEfzR,IACAI,KAAKC,UAAYC,YAAaN,KAwOnC,MAAMwZ,EAAqCjZ,YAA2B,CACzEC,GAAI,iEACJC,OAxEJC,eAAwCC,EAA6BC,GAAuB,IAAA6Y,EAAAC,EACxF,MAAMH,EAAuD,QAAhCE,EAAG9Y,EAAM4Y,+BAAuB,IAAAE,IAAI5O,YAA4BjK,EAAQZ,eAAe2Z,IAAIC,YAaxH,IAAIlU,SAXiBzE,sBAAoBC,cACrC,CACIC,cAAeP,EACfQ,oBAAqBC,IAAyBC,qCAAqCV,GACnF6Q,YAAa9Q,EAAM8Q,aAEvB9Q,EAAMZ,UACN,CAACY,EAAMb,WACP,KACe,QADX4Z,EACJ/Y,EAAMN,iBAAS,IAAAqZ,IAAI,IAEF,GAOrBhU,EAAO7C,EAAA,GAAQ6C,GACf,MAAMmU,EAtI4BC,EAACpU,EAAwB6T,KAC3D,IAAIM,GAAiC,EACrC,GAAInU,EAAQjE,WAAY,CACpBiE,EAAQjE,WAAaiE,EAAQjE,WAAWE,IAAIC,GACxCiB,EAAA,GAAYjB,IAEhB,IAAK,MAAMA,KAAa8D,EAAQjE,WAAY,CACxC,MAAMsY,EAAyBR,EAAwBxL,KACnDiM,GAAmBA,EAAgB9X,qBAAuBN,EAAUM,oBAGpE6X,EACAnY,EAAU4H,eAAiBuQ,EAAuBvQ,eAElDqQ,GAAwB,GAIpC,OAAOA,GAoHuBC,CAA8BpU,EAAS6T,GAE/DU,EAAcxU,YAAwBC,EAAS9E,EAAQZ,eAAemD,aAExE8W,IACAvU,EAAQC,gBAAkBsU,GAG9B,MAAMC,OAjHgBxZ,OACtBgF,EACA6T,EACA3Y,EACAP,KACA,IAAA8Z,EACA,IAAID,EAA6D,GACjE,MAAME,GAA2C,QAAnBD,EAACzU,EAAQjE,kBAAU,IAAA0Y,IAAI,IAAIxY,IAAIC,IACzD,MAAMC,EAAiCC,YAA0ClB,EAAS,IAAI,OAAMmB,OAAWA,GACzGC,EAA6D,CAC/DC,4BAA6BL,EAAUM,mBACvCC,wBAAyBoX,EACzBnX,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAWlC,GAQf,OAN+BY,sBAAoBuB,mDAC/C,CAAErB,cAAeP,EAASQ,oBAAqBC,IAAyBC,qCAAqCV,IAC7G8E,EAAQjD,gBAAkBiD,EAAQjD,gBAAkBiD,EAAQhD,SAC5DV,GAG0BW,KAAKC,GACZC,IAAA,GACZjB,GAAS,IACZkB,6BAA8BF,OAM1C,OADAsX,QAAuBnX,QAAQC,IAAIoX,GAC5BF,GAiFkEG,CACrE3U,EACA6T,EACA3Y,EACAD,EAAMN,WAIJia,EAA4CvZ,kBAAgBQ,YAAYgY,QA/ExD7Y,OACtBC,EACAC,EACAsZ,KAEA,IAAII,EACJ,GACIvZ,kBAAgBQ,YAAY2Y,IAC5BnZ,kBAAgBQ,YAAY2Y,EAAe,GAAGpX,+BAC9C/B,kBAAgBQ,YAAY2Y,EAAe,GAAGpX,6BAA6B,GAAGgS,YAChF,CAAC,IAADjU,EACE,MAAM0Z,EAAmBL,EAAe,GAAGpX,6BAA6B,GAAGgS,WAAW,GAYtFwF,SAXqBrZ,sBAAoBC,cACrC,CACIC,cAAeP,EACfQ,oBAAqBC,IAAyBC,qCAAqCV,GACnF6Q,YAAa9Q,EAAM8Q,aAEvB9Q,EAAMZ,UACN,CAACwa,GACD,KACe,QADX1Z,EACJF,EAAMN,iBAAS,IAAAQ,IAAI,IAEC,GACxByZ,EAAczX,EAAA,GAAQyX,GACtB,MAAME,EAAkB/U,YAAwB6U,EAAgB1Z,EAAQZ,eAAemD,aAEnFqX,IACAF,EAAe3U,gBAAkB6U,GAIzC,OAAOF,GAgDKG,CAAkB9Z,EAAOC,EAASsZ,QACxCnY,EAGN,GAAIuY,WAAgB7Y,YAAciE,EAAQjE,WACtC,IAAK,MAAMG,KAAa8D,EAAQjE,WAAY,CACxC,MAAMiZ,EAAgCJ,EAAe7Y,WAAWsM,KAC5DiM,GAAmBA,EAAgB9X,qBAAuBN,EAAUM,oBAE/BqX,EAAwBxL,KAC7DiM,GAAmBA,EAAgB9X,qBAAuBN,EAAUM,qBAGhCwY,IACpC9Y,EAAU4H,eAAiBkR,EAA8BlR,gBAKrE,IAAKqQ,GAAyB9Y,kBAAgBQ,YAAYgY,IAA4Be,EAClF,OAAOA,EAGX,MAAMK,EAAoCjV,EAE1C,OADAiV,EAAgBL,eAAiBA,EAC1BK,GASPha,MA/MiBsC,IACjB,MAAMnD,EAAYoD,YAAoCD,GAEtD,GAAInD,EACA,OAAO,IAAIwZ,GACNxZ,GACAmD,EAAUjD,eAAemD,YAAYpD,eACtCgC,OACAA,EACAkB,EAAUjD,gBAGlB,MAAM,IAAIoD,MAAM,0FAsMLoW,a,oCC7Sf/V,EAAOC,QAAyB,iBAARkX,MAAoBA,MAA+B,iBAAhBA,KAAKC,S,wLCsBzD,MAAMC,EAKTjb,YAAYsD,EAAmCnD,GAOxC,KAAAC,YAAc,SAAA8a,EAAA,MAAM,qBAAqB3a,KAAK+C,YAAYpD,uBAAqC,QAA5Bgb,EAAc3a,KAAKC,iBAAS,IAAA0a,IAAI,KAEnG,KAAA7a,mBAAqB,IAAM,OAE3B,KAAAC,cAAgB,IAAiB,OAVpCC,KAAK+C,YAAcA,EACfnD,IACAI,KAAKC,UAAYC,YAAaN,KAoBnCU,eAAesa,EAAiBra,EAA8BsM,GACjE,MAAMgO,QAAkBC,YAAajO,GACrC,GAAIgO,QAAmClZ,IAAtBkZ,EAAUxI,KAAKQ,GAC5B,OAAOgI,EAMA1a,sBAA2B,CACtCC,GAAI,sDACJC,OAAmCua,EACnCra,MArBiBsC,GACV,IAAI6X,EAAsB7X,EAAUjD,eAAemD,YAAaF,EAAUjD,mB,oCC5CrF,sGAUA,MAWamb,EAAyB5a,YAA2B,CAC7DC,GAAI,wEACJC,OAAiC2a,eACjCza,MAdyBsC,IACzB,GAAIA,EAAUjD,gBAAkBiD,EAAUjD,eAAe6S,MAAQ5P,EAAUjD,eAAe6S,KAAKC,gBAC3F,OAAOuI,YAAyB,GAAI,MAGxC,MAAM,IAAIjY,MAAM,4EAYL+X,a,oFCjBR,SAASG,EAAqB7H,EAAoB8H,GAGrD,OAFA9H,EAAS+H,UAAY/H,EAAS+H,WAAa,GAC3C/H,EAAS+H,UAAY,IAAI/H,EAAS+H,UAAUrQ,OAAOsQ,GAAOA,EAAI/Y,WAAa6Y,EAAQ7Y,WAC5E+Q,EAakClT,YAAsC,CAC/EC,GAAI,2DACJC,OAZGC,eAAmCC,EAAgCsM,GACtE,OAAOyO,YAA6B/a,EAAOsM,EAAKqO,IAYhD3a,MAA4Dgb,IAC5DtJ,WAAW,K,2DC7Bf,IAAIuJ,EAAI,EAAQ,QACZC,EAAc,EAAQ,QAI1BD,EAAE,CAAE7C,QAAQ,EAAM+C,OAAQC,aAAeF,GAAe,CACtDE,WAAYF,K,sFCiBP,MAAMG,EAKTnc,YAAYsD,EAAmC8Y,GAKxC,KAAAhc,YAAc,IAAMsG,YAAc,uBAAwBnG,KAAK+C,aAE/D,KAAAjD,mBAAqB,IAAM,oBAE3B,KAAAC,cAAgB,IAAiB,UARpCC,KAAK6b,4BAA8BA,EACnC7b,KAAK+C,YAAcA,GAkC4B5C,YAA2B,CAC9EC,GAAI,kEACJC,OAbkCC,MAAOC,EAAqCsM,IAC1EtM,GAASsM,EAAIjN,eAAekc,SAAWjP,EAAIjN,eAAekc,QAAQC,yBAC3DC,uCAA6B,CAAEjb,cAAe8L,GAAOtM,EAAMsb,6BAA+B,MAAMtZ,KAAK0Z,GACjGA,IAIfpP,EAAIM,MAAM,2DACH,IAMP5M,MAvBiBsC,IACjB,MAAM,YAAEE,EAAW,QAAE+Y,GAAYjZ,EAAUjD,eAC3C,IAAKkc,IAAYA,EAAQC,yBACrB,MAAM,IAAI/Y,MAAM,qFAGpB,OAAO,IAAI4Y,EAA6B7Y,EAAa,CAAEmZ,yBAA0BJ,EAAQC,+B,oCClD7F,IAAI9Y,EAAc,EAAQ,QAEtB7C,EAAK,EACL+b,EAAUC,KAAKC,SACfnZ,EAAWD,EAAY,GAAIC,UAE/BG,EAAOC,QAAU,SAAUwD,GACzB,MAAO,gBAAqBnF,IAARmF,EAAoB,GAAKA,GAAO,KAAO5D,IAAW9C,EAAK+b,EAAS,M,qFCPlF,qB,oCCDJ,wCAasChc,YAA2B,CAC7DC,GAAI,uEACJC,OAAwC2a,eACxCza,MAAOA,IACI+b,iB,oCChBf,IAAIC,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAGlBC,EAFkB,EAAQ,OAElBC,CAAgB,SAI5BrZ,EAAOC,QAAU,SAAUC,GACzB,IAAIoZ,EACJ,OAAOJ,EAAShZ,UAAmC5B,KAA1Bgb,EAAWpZ,EAAGkZ,MAA0BE,EAA2B,WAAhBH,EAAQjZ,M,oCCVtF,IAAI2U,EAAa,EAAQ,QACrBqE,EAAW,EAAQ,QACnBK,EAAiB,EAAQ,QAG7BvZ,EAAOC,QAAU,SAAUuZ,EAAOC,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEL,GAEA1E,EAAW8E,EAAYF,EAAMrd,cAC7Bud,IAAcD,GACdR,EAASU,EAAqBD,EAAUE,YACxCD,IAAuBF,EAAQG,WAC/BN,EAAeC,EAAOI,GACjBJ,I,8MCwBF,MAAMM,EAWT1d,YACI2d,EACAC,EACAzd,EACA0d,GAgBG,KAAAzd,YAA4B,KAAK,IAAA0d,EACpC,MAAMC,EAA+D,CACjE,CAAE1W,IAAK,kBAAmBE,MAAOhH,KAAKod,iBACtC,CAAEtW,IAAK,YAAaE,MAAOhH,KAAKC,YAOpC,OALID,KAAKsd,sBACLE,EAAKrW,KAAK,CAAEL,IAAK,iBAAkBE,MAAOhH,KAAKsd,wBAE/CE,EAAKrW,KAAK,CAAEL,IAAK,gBAAiBE,MAAOhH,KAAKqd,uBAE3C9W,2BAAqC,QAArBgX,EAACvd,KAAKyd,uBAAe,IAAAF,OAAA,EAApBA,EAAsBxa,eAAgBya,IAO3D,KAAA1d,mBAAqB,IAAc,uCAMnC,KAAAC,cAAgB,IAAiB,cArCpCC,KAAKyd,gBAAkB7d,EACvBI,KAAKod,gBAAkBA,EACvBpd,KAAKqd,qBAAuBA,EAC5Brd,KAAKsd,sBAAwBA,EAEzB1d,IACAI,KAAKC,UAAYC,YAAaN,KA6DnCU,eAAeod,EAClBnM,EACA/Q,GAEA,IAAKkG,MAAM8K,QAAQD,KAAY5Q,kBAAgBQ,YAAYoQ,GAEvD,OADA/Q,EAAQ2M,MAAM,iFACP,GAGX,MAAMwQ,EAAUpM,EAAOhQ,IAAIhB,IAEvB,MAAMkB,EAAiCC,YACnClB,EACA,CAACD,EAAM6c,kBACP,OACAzb,OACAA,GAGEC,EAA6D,CAC/DG,6BAAyBJ,EACzBK,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAW5B,EAAMN,WAGjBM,EAAM+c,uBACN1b,EAAegc,6BAA+Brd,EAAM+c,sBACpD1b,EAAeic,uBAAyBC,oBAAkBC,KAE1Dnc,EAAeC,4BAA8BtB,EAAM8c,qBASvD,OAN+Bxc,sBAAoBuB,mDAC/C,CAAErB,cAAeP,EAASQ,oBAAqBC,IAAyBC,qCAAqCV,IAC7GD,EAAM6c,gBACNxb,KAOR,aAAae,QAAQC,IAAI+a,GAOdxd,gBAA2B,CACtCC,GAAI,sFACJC,OAAQqd,EACRnd,MA3EAsC,IACwC,IAAAmb,EAIxC,OAFgE,QAAxCA,EAAwBnb,EAAUgB,cAAM,IAAAma,OAAA,EAAhBA,EAAkBC,oBAExC1c,IAAK2c,GACpB,IAAIf,EACPe,EAAiBd,gBACjBc,EAAiBb,qBACjBxa,EAAUjD,eACVse,EAAiBZ,yBAkEzBrL,WAAW,K,oCCnLf,IAAIkM,EAAwB,GAAGC,qBAE3BC,EAA2BC,OAAOD,yBAGlCE,EAAcF,IAA6BF,EAAsBK,KAAK,CAAEC,EAAG,GAAK,GAIpFnb,EAAQuV,EAAI0F,EAAc,SAA8BG,GACtD,IAAIC,EAAaN,EAAyBre,KAAM0e,GAChD,QAASC,GAAcA,EAAWlG,YAChC0F,G,6FCgBJS,YAAqB,CACjBC,SAAU,mDACVC,eAjBiBxe,MACjBye,EACAC,EACAxS,KAKA,GAHAwS,QAAsBrc,QAAQ0K,QAAQ3G,MAAM8K,QAAQwN,GAAiBA,EAAc,GAAKA,GAGrE,CACf,MAAMC,EAAcC,YAAgCF,GACpDxS,EAAc5M,eAAeuf,cAAcF,EAAYG,YAAcH,EACrEzS,EAAc5M,eAAeuf,cAAcE,IAAeC,iBAAmBL,EAAc,CAACA,GAAe,KAO/GM,cAtBkBjf,e,oCCTtB,IAAI2C,EAAc,EAAQ,QACtBuc,EAAW,EAAQ,QAEnBC,EAAQrD,KAAKqD,MACbC,EAASzc,EAAY,GAAGyc,QACxB1V,EAAU/G,EAAY,GAAG+G,SACzB7G,EAAcF,EAAY,GAAGG,OAE7Buc,EAAuB,8BACvBC,EAAgC,sBAIpCvc,EAAOC,QAAU,SAAUuc,EAASC,EAAKC,EAAUC,EAAUC,EAAeC,GAC1E,IAAIC,EAAUJ,EAAWF,EAAQtb,OAC7B6b,EAAIJ,EAASzb,OACb8b,EAAUT,EAKd,YAJsBje,IAAlBse,IACFA,EAAgBT,EAASS,GACzBI,EAAUV,GAEL3V,EAAQkW,EAAaG,GAAS,SAAUC,EAAOC,GACpD,IAAIC,EACJ,OAAQd,EAAOa,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOV,EACjB,IAAK,IAAK,OAAO1c,EAAY2c,EAAK,EAAGC,GACrC,IAAK,IAAK,OAAO5c,EAAY2c,EAAKK,GAClC,IAAK,IACHK,EAAUP,EAAc9c,EAAYod,EAAI,GAAI,IAC5C,MACF,QACE,IAAIE,GAAKF,EACT,GAAU,IAANE,EAAS,OAAOH,EACpB,GAAIG,EAAIL,EAAG,CACT,IAAIvH,EAAI4G,EAAMgB,EAAI,IAClB,OAAU,IAAN5H,EAAgByH,EAChBzH,GAAKuH,OAA8Bze,IAApBqe,EAASnH,EAAI,GAAmB6G,EAAOa,EAAI,GAAKP,EAASnH,EAAI,GAAK6G,EAAOa,EAAI,GACzFD,EAETE,EAAUR,EAASS,EAAI,GAE3B,YAAmB9e,IAAZ6e,EAAwB,GAAKA,O,sFCfjC,MAAME,EAKTjhB,YAAYkhB,EAAyB3f,GAK9B,KAAAnB,YAAc,IAAM,wBAAwBG,KAAK2gB,gBAEjD,KAAA7gB,mBAAqB,IAAM,uBAE3B,KAAAC,cAAgB,IAAiB,OARpCC,KAAK2gB,gBAAkBA,EACvB3gB,KAAKgB,oBAAsBA,GAoDiBb,YAA0C,CAC1FC,GAAI,oFACJC,OAvBGC,eAA0CC,EAAkCsM,GAC/E,IAAKA,EAAIjN,eAAe6S,KAAKC,gBACzB,MAAM,IAAI1P,MAAM,iEAGpB,MAAM4d,EAAc,IAAIC,yBAAuBtgB,EAAMogB,iBAC/CG,QAAoCC,4BAAkBH,EAAa/T,GAEzE,IAAKiU,GAAwC,IAAxBA,EAAavc,OAC9B,MAAM,IAAIvB,MAAM,oEAGpB,MAAMge,EAAa,IAAIC,sCAAoCH,EAAa,GAAGjO,GAAItS,EAAMS,qBAC/EkgB,QAAmBC,+CAAqCH,EAAYnU,GAC1E,OAAO,IAAIuU,IAAcN,EAAa,GAAII,EAAWG,MAAOH,EAAWI,aAUvE/gB,MAxC2CghB,CAAC1e,EAAiC8d,KAC7E,MAAM,eAAE/gB,GAAmBiD,EAC3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,kEAEpB,MAAMhC,EAA4CC,2BAAyBugB,cAAc3e,GAAW4e,oBAGpG,OAFAzgB,EAAoByM,OAAQ,EAErB,IAAIiT,EAA0BC,EAAiB3f,O,oCCzD1D,IAAI0gB,EAAa,EAAQ,QACrBxJ,EAAa,EAAQ,QACrByJ,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAE5BC,EAAUvD,OAEdjb,EAAOC,QAAUse,EAAoB,SAAUre,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAIue,EAAUJ,EAAW,UACzB,OAAOxJ,EAAW4J,IAAYH,EAAcG,EAAQ5E,UAAW2E,EAAQte,M,8GCalE,MAAMwe,EAOTtiB,YAAYuiB,EAAgCC,EAAoDhiB,GAMzF,KAAAJ,YAAc,IACjB0G,gCACI5E,EACA,CAAEmF,IAAK,cAAeE,MAAOhH,KAAKkiB,gBAAgBriB,eAClD,CAAEiH,IAAK,YAAaE,MAAOhH,KAAKC,WAChC,CAAE6G,IAAK,kCAAmCE,MAAOhH,KAAKiiB,yBAAyBE,eAGhF,KAAAriB,mBAAqB,IAAM,iBAE3B,KAAAsiB,kBAAoB,KAAM,EAf7BpiB,KAAKiiB,yBAA2BA,EAChCjiB,KAAKC,UAAYA,GAAa,EAC9BD,KAAKkiB,gBAAkBF,GAsDhB7hB,YAA2B,CACtCC,GAAI,qEACJC,OApBGC,eAA2CC,EAAgCsM,GAC9E,IAAIuB,EAAa7N,EAAM2hB,gBAAgB9T,WACvC,GAAI7N,EAAM2hB,gBAAgBG,eAAiBjU,EAAY,CACnD,MAAM4T,QAAiBM,kBAAmB/hB,EAAM2hB,gBAAiBrV,GACjE,IAAKmV,EAED,OADAnV,EAAIM,MAAM,yDACe,GAE7BiB,EAAa4T,EAAS1f,SAG1B,OAAOigB,qCACH,CAAExhB,cAAe8L,EAAK7L,oBAAqBT,EAAM0hB,yBAAyBR,qBAC1ElhB,EAAMN,UACNmO,GAAc,IAOlB7N,MArC0CsC,IAC1C,GAAIA,GAAaA,EAAUjD,eAAgB,CACvC,MAAMK,EAAYC,YAAa2C,EAAUjD,gBACnCsiB,EAAkB,IAAIM,uBAAqB3f,EAAUjD,gBAE3D,OAAO,IAAImiB,EAAwBG,EAAiBjhB,IAAyBugB,cAAc3e,GAAY5C,GAG3G,MAAM,IAAI+C,MAAM,0D,oCC9DpB,IAAI2V,EAAS,EAAQ,QACjB8J,EAAQ,EAAQ,QAChBxf,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnB8E,EAAO,EAAQ,QAA4BA,KAC3C0a,EAAc,EAAQ,QAEtBC,EAAYhK,EAAOiK,SACnBC,EAASlK,EAAOkK,OAChBC,EAAWD,GAAUA,EAAOE,SAC5BC,EAAM,YACNC,EAAOhgB,EAAY+f,EAAIC,MACvBC,EAA2C,IAAlCP,EAAUD,EAAc,OAAmD,KAApCC,EAAUD,EAAc,SAEtEI,IAAaL,GAAM,WAAcE,EAAUrE,OAAOwE,OAIxDzf,EAAOC,QAAU4f,EAAS,SAAkBC,EAAQC,GAClD,IAAIC,EAAIrb,EAAK9E,EAASigB,IACtB,OAAOR,EAAUU,EAAID,IAAU,IAAOH,EAAKD,EAAKK,GAAK,GAAK,MACxDV,G,oCCrBA,qB,6ECWG,IAAKW,GAAZ,SAAYA,GACRA,IAAA,+BACAA,IAAA,uBAFJ,CAAYA,MAAY,M,oCCXpB,sMAUA,SAASC,EAAmBnjB,GACxB,IAAI0G,EAAO1G,EAAM,CAAEyS,GAAIzS,GAAO,KAC9B,OAAO,IAAI6Q,IAAiB,gBAAiB,eAAgB,oBAAqBnK,GAO/E,SAAS0c,EAAwBhjB,EAAmBijB,GACvD,MAAM9R,EALH,SAA2B8R,GAC9B,OAAOF,IAAqBG,OAAOD,GAInBE,CAAkBF,GAClC,OAAO7R,YAA4BD,EAASnR,GAuCzC,SAASya,EAAyBja,EAA2CyE,GAEhF,OADc8d,IAAqBpS,eAAenQ,GACrCoQ,qCAAqC,iBAAiB,EAC9D,oBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,gBAAiB,CAAC7L,WAAYA,IAG3E,SAASme,EAAmBpjB,EAAmBiF,GAClD,MAAMkM,EAAUsJ,EAAyBza,EAAQQ,oBAAqByE,GACtE,OAAOmM,YAA8BD,EAASnR,GAU3C,SAASqjB,EAAcrjB,EAAmBJ,EAAY0jB,GACzD,MAAMnS,EARH,SAA6BvR,EAAY0jB,GAE5C,OADcP,EAAmBnjB,GACpBgR,qCAAqC,YAAY,EACzD,oBACD,QAAS,CAACC,YAAa,MAAOC,aAAc,gBAAiB,CAACwS,kBAAmBA,IAIrEC,CAAoB3jB,EAAI0jB,GACxC,OAAOlS,YAA4BD,EAASnR,GAsBzC,SAASwjB,EAAiBxjB,EAAmBJ,EAAY0jB,GAC5D,MAAMnS,EARH,SAAgCvR,EAAY0jB,GAE/C,OADcP,EAAmBnjB,GACpBgR,qCAAqC,eAAe,EAC5D,oBACD,QAAS,CAACC,YAAa,MAAOC,aAAc,gBAAiB,CAACwS,kBAAmBA,IAIrEG,CAAuB7jB,EAAI0jB,GAC3C,OAAOlS,YAA4BD,EAASnR,K,oCCxGpD,EAAQ,S,oCCDR,IAAIgb,EAAI,EAAQ,QACZgD,EAAO,EAAQ,QACf0F,EAAU,EAAQ,QAClBC,EAAe,EAAQ,QACvBjM,EAAa,EAAQ,QACrBkM,EAA4B,EAAQ,QACpCC,EAAiB,EAAQ,QACzBzH,EAAiB,EAAQ,QACzB0H,EAAiB,EAAQ,QACzBC,EAA8B,EAAQ,QACtCC,EAAgB,EAAQ,QACxB9H,EAAkB,EAAQ,QAC1B+H,EAAY,EAAQ,QACpBC,EAAgB,EAAQ,QAExBC,EAAuBR,EAAaS,OACpCC,EAA6BV,EAAaW,aAC1CC,EAAoBL,EAAcK,kBAClCC,EAAyBN,EAAcM,uBACvClC,EAAWpG,EAAgB,YAK3BuI,EAAa,WAAc,OAAOjlB,MAEtCqD,EAAOC,QAAU,SAAU4hB,EAAUC,EAAMC,EAAqBC,EAAMC,EAASC,EAAQrC,GACrFkB,EAA0BgB,EAAqBD,EAAME,GAErD,IAqBIG,EAA0BC,EAASC,EArBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASN,GAAWO,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,GAAQA,KAAQE,EAAmB,OAAOA,EAAkBF,GAE3F,OAAQA,GACN,IAdK,OAeL,IAdO,SAeP,IAdQ,UAcM,OAAO,WAAqB,OAAO,IAAIR,EAAoBplB,KAAM4lB,IAGjF,OAAO,WAAc,OAAO,IAAIR,EAAoBplB,QAGlD+lB,EAAgBZ,EAAO,YACvBa,GAAwB,EACxBF,EAAoBZ,EAAShI,UAC7B+I,EAAiBH,EAAkBhD,IAClCgD,EAAkB,eAClBR,GAAWQ,EAAkBR,GAC9BO,GAAmBb,GAA0BiB,GAAkBN,EAAmBL,GAClFY,EAA6B,UAATf,GAAmBW,EAAkBrf,SAA4Bwf,EA+BzF,GA3BIC,IACFV,EAA2BnB,EAAe6B,EAAkB1H,KAAK,IAAI0G,OACpC5G,OAAOpB,WAAasI,EAAyBH,OACvEnB,GAAWG,EAAemB,KAA8BT,IACvDnI,EACFA,EAAe4I,EAA0BT,GAC/B7M,EAAWsN,EAAyB1C,KAC9C0B,EAAcgB,EAA0B1C,EAAUmC,IAItDX,EAAekB,EAA0BO,GAAe,GAAM,GAC1D7B,IAASO,EAAUsB,GAAiBd,IAKxCN,GAjDO,WAiDiBW,GAAsBW,GAjDvC,WAiDyDA,EAAevN,QAC5EwL,GAAWW,EACdN,EAA4BuB,EAAmB,OAnDxC,WAqDPE,GAAwB,EACxBH,EAAkB,WAAoB,OAAOrH,EAAKyH,EAAgBjmB,SAKlEslB,EAMF,GALAG,EAAU,CACRU,OAAQR,EA7DD,UA8DPnI,KAAM+H,EAASM,EAAkBF,EA/D5B,QAgELlf,QAASkf,EA9DD,YAgENzC,EAAQ,IAAKwC,KAAOD,GAClBT,GAA0BgB,KAA2BN,KAAOI,KAC9DtB,EAAcsB,EAAmBJ,EAAKD,EAAQC,SAE3ClK,EAAE,CAAE4K,OAAQjB,EAAMkB,OAAO,EAAM3K,OAAQsJ,GAA0BgB,GAAyBP,GASnG,OALMvB,IAAWhB,GAAW4C,EAAkBhD,KAAc+C,GAC1DrB,EAAcsB,EAAmBhD,EAAU+C,EAAiB,CAAEnN,KAAM4M,IAEtEb,EAAUU,GAAQU,EAEXJ,I,oCCpGT,8DAwFsCtlB,YAA2B,CAC7DC,GAAI,qEACJC,OAAwC2a,IACxCza,MA1BwBsC,IACxB,MAAMyjB,EAAqBzjB,EAAUgB,QAAUhB,EAAUgB,OAAOyiB,mBAEhE,GAAIzjB,GAAaA,EAAUjD,gBAAkBiD,EAAUjD,eAAe6D,OAASZ,EAAUjD,eAAe6D,MAAM2K,WAC1G,OAAOmY,4CACHtlB,IAAyBugB,cAAc3e,GAAW4e,qBACjD5e,EAAUjD,eAAemD,YAAYpD,UACtCkD,EAAUgB,OAAS2iB,OAAO3jB,EAAUgB,OAAO5D,WAAa,GACvD4C,EAAUjD,eAAe6D,MAAM2K,WAC/B1H,MAAM8K,QAAQ8U,GAETA,EAAmB/kB,IAAKklB,GAA6CA,GADrE,IAKd,MAAM,IAAIzjB,MAAM,6F,oCC/EpB,IAAI0e,EAAa,EAAQ,QACrBze,EAAc,EAAQ,QACtByjB,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCC,EAAW,EAAQ,QAEnBC,EAAS5jB,EAAY,GAAG4jB,QAG5BxjB,EAAOC,QAAUoe,EAAW,UAAW,YAAc,SAAiBne,GACpE,IAAIia,EAAOkJ,EAA0B7N,EAAE+N,EAASrjB,IAC5CujB,EAAwBH,EAA4B9N,EACxD,OAAOiO,EAAwBD,EAAOrJ,EAAMsJ,EAAsBvjB,IAAOia,I,8WCQpE,MAAMuJ,EAWTtnB,YACIkhB,EACAjhB,EACAsnB,EACAC,EACAC,EACAjnB,GAUG,KAAAJ,YAAc,IAAM,8BAEpB,KAAAC,mBAAqB,IAAM,8BAE3B,KAAAC,cAAgB,IAAiB,OAZpCC,KAAK2gB,gBAAkBA,EACvB3gB,KAAKN,UAAYA,EACjBM,KAAKgnB,SAAWA,EAChBhnB,KAAKinB,cAAgBA,GAAiB,KACtCjnB,KAAKknB,oCAAsCA,EAC3ClnB,KAAKC,UAAYA,GAkFlB,MAAMknB,EAAyChnB,YAA4C,CAC9FC,GAAI,uFACJC,OAtCGC,eAA4CC,EAAoCsM,GACnF,IAAK,IAADpM,EAEA,MAAMR,EAA2B,QAAlBQ,EAAGF,EAAMN,iBAAS,IAAAQ,IAAIP,YAAa2M,EAAIjN,gBACtDgM,4BAAkB3L,GAClB,MAAMmnB,E,yWAAoB3kB,CAAA,CACtB4kB,cAAe9mB,EAAMogB,gBACrB/a,UAAWrF,EAAMb,UACjB4nB,SAAU/mB,EAAMymB,SAChBO,cAAehnB,EAAM0mB,eACjB1mB,EAAM2mB,qCAAuC,CAAEjnB,UAAWA,IAG5DunB,QAA2CC,mCAC7C,CACI1mB,cAAe8L,GAEnBtM,EAAMogB,gBACN,CAACyG,IAGL,GAAII,GAA8C,IAA3BA,EAAgBjjB,QAAgBijB,EAAgB,IAAMA,EAAgB,GAAGH,cAC5F,OAAOG,EAAgB,GAG3B,MADA3a,EAAI6B,UAAUwB,MAAM,uEACd,IAAIlN,MAAM,uEAClB,MAAOkN,GAEL,MADArD,EAAI6B,UAAUwB,MAAM,4CAA6CA,GAC3DA,IAWV3P,MAnEuCmnB,CACvC7kB,EACA8d,EACAjhB,EACAsnB,EACAC,EACAC,EACAjnB,KAEA,MAAM,eAAEL,GAAmBiD,EAC3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,+DAEpB,OAAO,IAAI+jB,EACPpG,EACAjhB,EACAsnB,EACAC,EACAC,IAAuC,EACvCjnB,MAmDOknB,O,oCCpIf,IAEI1K,EAFkB,EAAQ,OAElBC,CAAgB,SAE5BrZ,EAAOC,QAAU,SAAUqkB,GACzB,IAAIC,EAAS,IACb,IACE,MAAMD,GAAaC,GACnB,MAAOC,GACP,IAEE,OADAD,EAAOnL,IAAS,EACT,MAAMkL,GAAaC,GAC1B,MAAOE,KACT,OAAO,I,weCiBJ,MAAMC,EAWTtoB,YAAYC,EAAmBC,EAAmB4a,EAAiC9U,EAAqBuiB,GAQjG,KAAAnoB,YAAc,IAAM,oCAEpB,KAAAC,mBAAqB,IAAM,kBAE3B,KAAAC,cAAgB,IAAiB,OAXpCC,KAAKN,UAAYA,EACjBM,KAAKL,UAAYA,EACjBK,KAAKua,gBAAkBA,EACvBva,KAAKyF,WAAaA,GAAc,GAChCzF,KAAKgoB,aAAeA,GAcrB1nB,eAAe2nB,EAAgBznB,GAClC,OAAO0nB,0CAAgC,IAAIC,oBAAqB3nB,GAO7D,MAAM4nB,EACTvlB,IAEA,MAAMnD,EAAYoD,8CAAoCD,GAEtD,GAAInD,EACA,OAAO,IAAIqoB,GACNroB,GACAmD,EAAUjD,eAAemD,YAAYpD,eACtCgC,OACAA,GAGR,MAAM,IAAIqB,MAAM,gGAUb1C,eAAe+nB,EAClB9nB,EACAsM,GAEA,QAA2BlL,IAAvBpB,EAAMynB,aAA4B,CAAC,IAADM,EAClC,MAAMN,QAAqBC,EAAgBpb,GAC3CtM,EAAMynB,aAAeA,SAEpB,QAFgCM,EAAZN,EAAcra,KAC/BsG,GAAsB,oEAAdA,EAAKqD,aAChB,IAAAgR,OAAA,EAFoBA,EAElBC,UAGP,OAAO5lB,QAAQ0K,UACV9K,KAAK,KACF,MAAMnB,EAA2Cb,EAAMga,gBAEvD,IAAKnZ,EAAe,CAChB,MAAMonB,EAAuB,IAAItP,uBAC7B3Y,EAAMb,UACNa,EAAMZ,eACNgC,OACAA,EACAkL,EAAIjN,gBAGR,OAAO6oB,6BAAmBD,EAAsB3b,GAGpD,OAAOzL,IAEVmB,KAAMmmB,IACH,MAAMtnB,EAAsEsnB,EAE5E,GAAItnB,EACA,OAAOunB,kCACH,CAAE5nB,cAAe8L,EAAK7L,oBAAqBC,IAAyBC,qCAAqC2L,IACzG,CAACzL,EAAckB,UACf,GAGA/B,EAAMynB,eAAgBU,aAAa,EAAbA,EAAeE,iBAAkBC,sBAAoBC,QACrEC,2BAAyBC,+BACzB,MACRzmB,KAAK0Z,IACH,GAAIA,GAAYA,EAAS1X,OAAS,EAC9B,OAAO0X,EAAS,OAS/BhM,MAAOC,IAIJ,MAHArD,EAAIM,MAAM+C,EAAM+Y,SAChBpc,EAAI6B,UAAU+I,UAAUvH,GACxBrD,EAAI6B,UAAUC,MAAM,sEACd,IAAI3L,MAAM,wEAIrB,MAAMkmB,EAAuD/oB,YAA2B,CAC3FC,GAAI,sFACJC,OAAqDgoB,EACrD9nB,MAAO6nB,IAGIc,a,0MCxIR,MAAM3V,EAOT9T,YAAmBsD,EAAmComB,EAAwBC,GAUvE,KAAAvpB,YAAc,IAAcsG,YAAc,YAAYnG,KAAK0T,sBAAyB1T,KAAK+C,aAMzF,KAAAjD,mBAAqB,IAAc,WAMnC,KAAAC,cAAgB,IACZC,KAAKopB,UAAYppB,KAAKopB,UAAY,UAtBzCppB,KAAK0T,sBAAwByV,EAC7BnpB,KAAK+C,YAAcA,EACnB/C,KAAKopB,UAAYA,GA6BzB,MAgCa9V,EAA8BnT,YAA2B,CAClEC,GAAI,yDACJC,OAnBsBC,MAAOC,EAAyBsM,IAClDtM,GAASsM,EAAIjN,eAAe6S,KAAKC,gBAE1B2W,uBAAqBzW,UAAU,CAAE7R,cAAe8L,EAAKwE,YAAa,OAAS9Q,EAAMmT,uBAAyB,IAAInR,KACjH0Z,GACWvV,MAAM8K,QAAQyK,GAAYA,EAAS,GAAKA,IAK3DpP,EAAIM,MAAM,+CACO,IASjB5M,MAnCiBsC,IACjB,MAAM,KAAE4P,EAAI,YAAE1P,GAAgBF,EAAUjD,eACxC,IAAK6S,EAAK6W,QAAU7W,EAAKC,gBACrB,MAAM,IAAI1P,MAAM,0DAGpB,OAAO,IAAIuQ,EAAiBxQ,MAgCjBuQ,a,gFCnFR,MAAMiW,EAeT9pB,cACIO,KAAKwpB,QAAU,GACfxpB,KAAKypB,QAAU,EAAE,QAAAjjB,EAAAlC,UAAAC,OAFCkC,EAAoC,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAApCF,EAAoCE,GAAArC,UAAAqC,GAGtDF,EAAQuF,QAAQ0d,IACZ1pB,KAAK2pB,SAASD,EAAa5iB,IAAK4iB,EAAa1iB,SAS9C4iB,YAAY9iB,GACV9G,KAAK6pB,SAAS/iB,OAIjB9G,KAAKypB,eACAzpB,KAAKwpB,QAAQ1iB,IAQjBgjB,SAAShjB,GACZ,OAAO9G,KAAKwpB,QAAQ1iB,GAUjBijB,yBAAyBjjB,EAAUkjB,GAItC,OAHKhqB,KAAK6pB,SAAS/iB,IACf9G,KAAK2pB,SAAS7iB,EAAKkjB,GAEhBhqB,KAAK8pB,SAAShjB,GASlB6iB,SAAS7iB,EAAUE,QACRrF,IAAVqF,GAKChH,KAAK6pB,SAAS/iB,MACb9G,KAAKypB,QAGXzpB,KAAKwpB,QAAQ1iB,GAAOE,GARhBhH,KAAK4pB,YAAY9iB,GAgBlB+iB,SAAS/iB,GACZ,YAA6BnF,IAAtB3B,KAAKwpB,QAAQ1iB,GAOjBmjB,UACH,OAAuB,IAAhBjqB,KAAKuE,OAQhB,aACI,OAAOvE,KAAKypB,QAMTS,QACHlqB,KAAKwpB,QAAU,GACfxpB,KAAKypB,QAAU,EAOZU,YACH,OAAOnqB,KAAKoqB,UAAU7oB,IAAIuF,GAAO9G,KAAKwpB,QAAQ1iB,IAO3CsjB,UACH,OAAc9L,OAAOd,KAAKxd,KAAKwpB,SAO5Ba,mBACH,OAAOrqB,KAAKoqB,UAAU7oB,IAAIuF,IACf,CAAEA,MAAKE,MAAOhH,KAAKwpB,QAAQ1iB,S,oCCrJ9C,IAoBMwjB,EACAC,EArBF/L,EAAO,EAAQ,QACfvb,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBsnB,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QACxBC,EAAS,EAAQ,QACjBhH,EAAS,EAAQ,QACjBiH,EAAmB,EAAQ,QAA+BngB,IAC1DogB,EAAsB,EAAQ,QAC9BC,EAAkB,EAAQ,QAE1BC,EAAgBJ,EAAO,wBAAyBK,OAAO7N,UAAUlT,SACjEghB,EAAaC,OAAO/N,UAAU+F,KAC9BiI,EAAcF,EACdtL,EAASzc,EAAY,GAAGyc,QACxByL,EAAUloB,EAAY,GAAGkoB,SACzBnhB,EAAU/G,EAAY,GAAG+G,SACzB7G,EAAcF,EAAY,GAAGG,OAE7BgoB,GAEEb,EAAM,MACV/L,EAAKwM,EAFDV,EAAM,IAEY,KACtB9L,EAAKwM,EAAYT,EAAK,KACG,IAAlBD,EAAIe,WAAqC,IAAlBd,EAAIc,WAGhCC,EAAgBb,EAAcc,aAG9BC,OAAuC7pB,IAAvB,OAAOshB,KAAK,IAAI,IAExBmI,GAA4BI,GAAiBF,GAAiBV,GAAuBC,KAG/FK,EAAc,SAAc/H,GAC1B,IAII/V,EAAQqe,EAAQJ,EAAW/K,EAAOhL,EAAGoW,EAAQC,EAJ7CC,EAAK5rB,KACL+J,EAAQ4gB,EAAiBiB,GACzB9L,EAAM5c,EAASigB,GACf0I,EAAM9hB,EAAM8hB,IAGhB,GAAIA,EAIF,OAHAA,EAAIR,UAAYO,EAAGP,UACnBje,EAASoR,EAAK0M,EAAaW,EAAK/L,GAChC8L,EAAGP,UAAYQ,EAAIR,UACZje,EAGT,IAAI0e,EAAS/hB,EAAM+hB,OACfC,EAAST,GAAiBM,EAAGG,OAC7BC,EAAQxN,EAAKgM,EAAaoB,GAC1BK,EAASL,EAAGK,OACZC,EAAa,EACbC,EAAUrM,EA+Cd,GA7CIiM,IACFC,EAAQhiB,EAAQgiB,EAAO,IAAK,KACC,IAAzBb,EAAQa,EAAO,OACjBA,GAAS,KAGXG,EAAUhpB,EAAY2c,EAAK8L,EAAGP,WAE1BO,EAAGP,UAAY,KAAOO,EAAGQ,WAAaR,EAAGQ,WAA+C,OAAlC1M,EAAOI,EAAK8L,EAAGP,UAAY,MACnFY,EAAS,OAASA,EAAS,IAC3BE,EAAU,IAAMA,EAChBD,KAIFT,EAAS,IAAIR,OAAO,OAASgB,EAAS,IAAKD,IAGzCR,IACFC,EAAS,IAAIR,OAAO,IAAMgB,EAAS,WAAYD,IAE7CZ,IAA0BC,EAAYO,EAAGP,WAE7C/K,EAAQ9B,EAAKwM,EAAYe,EAASN,EAASG,EAAIO,GAE3CJ,EACEzL,GACFA,EAAM/f,MAAQ4C,EAAYmd,EAAM/f,MAAO2rB,GACvC5L,EAAM,GAAKnd,EAAYmd,EAAM,GAAI4L,GACjC5L,EAAM+L,MAAQT,EAAGP,UACjBO,EAAGP,WAAa/K,EAAM,GAAG/b,QACpBqnB,EAAGP,UAAY,EACbD,GAA4B9K,IACrCsL,EAAGP,UAAYO,EAAGjT,OAAS2H,EAAM+L,MAAQ/L,EAAM,GAAG/b,OAAS8mB,GAEzDG,GAAiBlL,GAASA,EAAM/b,OAAS,GAG3Cia,EAAKsM,EAAexK,EAAM,GAAImL,GAAQ,WACpC,IAAKnW,EAAI,EAAGA,EAAIhR,UAAUC,OAAS,EAAG+Q,SACf3T,IAAjB2C,UAAUgR,KAAkBgL,EAAMhL,QAAK3T,MAK7C2e,GAASwL,EAEX,IADAxL,EAAMwL,OAASJ,EAAShI,EAAO,MAC1BpO,EAAI,EAAGA,EAAIwW,EAAOvnB,OAAQ+Q,IAE7BoW,GADAC,EAAQG,EAAOxW,IACF,IAAMgL,EAAMqL,EAAM,IAInC,OAAOrL,IAIXjd,EAAOC,QAAU4nB,G,oCCnHb,qB,oCCAJ,IAAIoB,EAAsB,EAAQ,QAE9BC,EAAMnQ,KAAKmQ,IAIflpB,EAAOC,QAAU,SAAUkpB,GACzB,OAAOA,EAAW,EAAID,EAAID,EAAoBE,GAAW,kBAAoB,I,oCCP/E,IAAIC,EAAY,EAAQ,QAGxBppB,EAAOC,QAAU,qCAAqCopB,KAAKD,I,quBCkBpD,MAAME,EAGTltB,YAAYkhB,EAAyBuG,GAK9B,KAAArnB,YAAc,IAAM,8BAEpB,KAAAC,mBAAqB,IAAM,8BAE3B,KAAAC,cAAgB,IAAiB,OARpCC,KAAK2gB,gBAAkBA,EACvB3gB,KAAKknB,oCAAsCA,GAsE5C,MAAM0F,EAAyCzsB,YAAuC,CACzFC,GAAI,uFACJC,OA3CGC,eAA4CC,EAAoCC,GACnF,MAAMqa,QAAkBC,uBAAata,GAE/BQ,EAA2C,CAC7CgO,OAAQ,CACJC,IAHW,IAIX4d,KAAM,IAGRC,EAAsC,IAAI7L,IAAoC1gB,EAAMogB,gBAAiB3f,GAC3G,IAAI+rB,QAA2B5L,YAAqC2L,EAAqCtsB,GACrGwsB,EAA6B,GACjC,IAAK,IAAIC,EAVU,IAUSF,EAAmB1L,MAAM9c,OAAS,EAAG0oB,GAV9C,IAUkE,CACjF,MAAMC,EAAwBH,EAAmB1L,MAAM9f,IAAI4rB,IAAc,IAAAC,EASrE,OARc3qB,EAAA,CACV4qB,OAA+B,QAAzBD,EAAED,EAAYG,mBAAW,IAAAF,OAAA,EAAvBA,EAAyBG,eAAeF,OAChDznB,UAAWunB,EAAY3F,gBAAgB5hB,UACvC0hB,SAAU6F,EAAY3F,gBAAgBF,SACtCkG,WAAY,GACZC,oBAAqBN,EAAY3F,gBAAgBD,eAC7ChnB,EAAM2mB,qCAAuC,CAAEjnB,UAAWktB,EAAY3F,gBAAgBrlB,oBAI5FurB,4BAAkB,CAAE3sB,cAAeP,GAAWqa,EAAUxI,KAAKQ,GAAIqa,EAAWrS,EAAUxI,KAAKsb,SAAS1d,MAAMC,IAAQ,IAAA0d,EAAAC,EAGpH,MAFArtB,EAAQkO,UAAUvB,MAAgB,QAAXygB,EAAC1d,EAAM4d,YAAI,IAAAF,OAAA,EAAVA,EAAYG,mBACpCvtB,EAAQkO,UAAUvB,MAAM,yCACR,QAAhB0gB,EAAM3d,EAAM4d,YAAI,IAAAD,OAAA,EAAVA,EAAYE,oBAEtBf,EAAiBA,EAAenG,OAAOqG,GACvCJ,EAAoC9rB,oBAAoBgO,OAAQ6d,KAAOI,EACvEF,QAA2B5L,YAAqC2L,EAAqCtsB,GAGzG,aADMqa,EAAUmT,YAAY,IACrBhB,GAUPzsB,MA1DuC0tB,CAACprB,EAAiC8d,KACzE,MAAM,eAAE/gB,GAAmBiD,EAC3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,+DAEpB,OAAO,IAAI2pB,EAA4BhM,MAuD5BiM,O,uyBCnFf,MAAMsB,EAAmBrW,GAAuBnO,IAA4DykB,aAAatW,GAEnHuW,EAAYA,CAACC,EAAmBC,EAAoB3W,EAAsB4W,KAC5E,MAAMC,EAAS9kB,IAA4D+kB,gBAAgBJ,GAC3F,GAAIG,EAAM,CACN,GAAID,EAAqB,CAAC,IAADG,EACrB,MAAMC,EAAuBC,YAAwBC,KAC/CC,GAA8D,QAA1CJ,EAAA/W,EAAanN,IAAQmkB,UAAqB,IAAAD,OAAA,EAA1CA,EAA4Cza,OAAQ,GAC9E6a,EAAkB,GAAGR,GAAmBD,EAAUrkB,QAAQ,MAAO,KAA5B,iBACrC2N,EAAaM,IAAI0W,EAAsB,CAAE1a,KAAM6a,IAGnD,MAAO,CAAEhoB,IAAKunB,EAAWG,UAW3BO,EAAaA,CAACZ,EAAca,EAAatW,EAAMf,EAAsB4W,KACvE7V,EAAOA,EAAKnK,cAEPygB,IACIZ,EACG,8BAA8BY,EAAYtW,cAAcyV,EAAazV,mBAAmBA,IACxFyV,EAAazV,KACbf,EACA4W,IAEAH,EACI,8BAA8BY,EAAYtW,yBAAyBA,IACnEyV,EAAazV,KACbf,EACA4W,IAEJH,EACI,8BAA8BY,EAAYtW,yBAAyByV,EAAazV,QAAQA,IACxFyV,EAAazV,KACbf,EACA4W,IAEJH,EACI,GAAGY,EAAYC,mBAAmBD,EAAYE,uBAAuBF,EAAYtW,yBAAyByV,EAAazV,QAAQA,IAC/HyV,EAAazV,KACbf,EACA4W,IAEJH,EACI,GAAGY,EAAYC,mBAAmBD,EAAYE,uBAAuBF,EAAYtW,yBAAyBA,IAC1GyV,EAAazV,KACbf,EACA4W,KAEZH,EACI,GAAGD,EAAac,mBAAmBd,EAAae,qBAAqBf,EAAazV,mBAAmBA,IACrGyV,EAAazV,KACbf,EACA4W,IA6BNY,EAAeA,CAACzW,EAAMyV,EAAca,EAAaxuB,KACnD,IAAK2tB,EACD,MAAO,CAAEK,KAAM,MAInB,MAAMY,EAAiB1lB,IAAyB2lB,YAAY7uB,EAAQgM,cAAc5M,gBAC5E2uB,EAAsBe,YAAsB9uB,EAAQmR,QAAQ4d,QAC5DC,EAAsB,CACxB1oB,IAAK,GAAG4R,KAAQyV,EAAazV,QAAQsW,EAAcA,EAAYtW,KAAO,aACtEb,SAAU,yBAERwW,EAAYe,EAAMtF,SAAiB0F,GACnCC,EAAyBjvB,EAAQgM,cACjCmL,EAAuB8X,EAAkB9X,aAE/C,GAAI0W,EAGA,OAFA7tB,EAAQkO,UAAUghB,IAAIC,IAASC,MAAO,6BAA6BJ,EAAS1oB,oBAAoBunB,OAC/F3kB,IAAiBC,WAAa8lB,EAAkB9X,aAAaM,IAAIuX,EAAU,CAAEvb,KAAMoa,IAC7ED,EAAUC,EAAWF,EAAazV,KAAMf,EAAc4W,IAAwB,CAAEC,KAAM,MAGjG,IAAIqB,EAAYd,EAAWZ,EAAca,EAAatW,EAAMf,EAAc4W,GAG1E,IAAKsB,GAAab,EAAa,CAC3B,MAAMc,EAAkBC,YAAcf,EAAYgB,sBAC5CC,EAAoB/B,EAAgB4B,GAC1CD,EAAYd,EAAWZ,EAAc8B,EAAmBvX,EAAMf,EAAc4W,GAQhF,OAJKsB,IACDA,EArD2BK,EAAC/B,EAAczV,EAAcf,EAAsB4W,KAClF,MAAM4B,EAAqBjC,EAAgB6B,YAAc5B,EAAa6B,uBAEtE,OACI5B,EACI,GAAGD,EAAac,mBAAmBd,EAAae,qBAAqBf,EAAazV,mBAAmBA,IACrGyV,EAAazV,KACbf,EACA4W,IAEH4B,GACG/B,EACI,GAAG+B,EAAmBlB,mBAAmBkB,EAAmBjB,qBAAqBiB,EAAmBzX,mBAAmBA,IACvHyV,EAAazV,KACbf,EACA4W,IAsCI2B,CAA2B/B,EAAczV,EAAMf,EAAc4W,IAGzEsB,GACArvB,EAAQkO,UAAUghB,IAAIC,IAASC,MAAO,6BAA6BJ,EAAS1oB,oBAAoB+oB,EAAU/oB,QAC1GsoB,EAAMnX,IAAIuX,EAAU,CAAEvb,KAAM4b,EAAU/oB,MACtC2oB,EAAkB9X,aAAaM,IAAIuX,EAAU,CAAEvb,KAAM4b,EAAU/oB,MACxD+oB,GAGJ,CAAErB,KAAM,OAGN4B,EAAkBA,CAAwC1X,EAAc2X,IAAqBC,IACtGA,EAAM9vB,QAAQkO,UAAUghB,IAAIC,IAASC,MAAO,wBAAwBlX,qBAAwB4X,EAAMlwB,MAAMkwB,EAAMzY,aAC9G,MAAMsW,EAAeD,EAAgBoC,EAAMzY,UAC3C,IAAKsW,EAED,OADAmC,EAAM9vB,QAAQkO,UAAUghB,IAAIC,IAAS3sB,MAAOutB,IAA0B,CAAEpK,OAAQ,CAACqK,YAAiBF,EAAMzY,aACjG,KAEX,IAAI4Y,EAAgBC,WAAcC,GAC9BF,IACAA,EAAgBA,EAAczmB,QAAQ,iBAAkB,IACxDymB,EAAgBA,EAAczmB,QAAQ,gBAAiB,KAG3D,MAAMglB,EAAcd,EAAgBoC,EAAM9vB,QAAQgM,cAAc5M,eAAe2vB,OAAOqB,OACtF,IAAIC,EAAgB1B,EAAasB,EAAetC,EAAca,EAAasB,EAAM9vB,SAC5EqwB,EAAcrC,OACfqC,EAAgB1B,EAAazW,EAAMyV,EAAca,EAAasB,EAAM9vB,UAExE,MAAM,KAAEguB,GAASqC,EAEXC,GADkBtC,EAAI/rB,IAAA,GAAU4tB,GAAwC7B,GAAS6B,GACrDR,UAC5BkB,EAAkBT,EAKxB,OAJIS,EAAgBC,UAAYxC,GAC5BuC,EAAgBC,SAASxC,EAAKyC,IAG3BC,IAAAC,cAACL,EAASxS,OAAA8S,OAAA,GAAKd,O,4DCpLtB,q1PAUA,SAASe,EAAWjxB,GAChB,IAAI0G,EAAO1G,EAAM,CAAEyS,GAAIzS,GAAO,KAC9B,OAAO,IAAI6Q,IAAiB,QAAS,OAAQ,YAAanK,GAGvD,SAAS6c,EAAkBF,GAC9B,OAAO4N,IAAa3N,OAAOD,GAGxB,SAAS6N,EAAgB9wB,EAAmBijB,GAC/C,MAAM9R,EAAUgS,EAAkBF,GAClC,OAAO7R,YAAoBD,EAASnR,GAGjC,SAAS+wB,EAAkB9N,GAC9B,OAAO4N,EAAW5N,EAAO5Q,IAAI2e,OAAO/N,GAGjC,SAASgO,EAAYjxB,EAAmBijB,GAC3C,MAAM9R,EAAU4f,EAAkB9N,GAClC,OAAO7R,YAAoBD,EAASnR,GAGjC,SAASkxB,EAAkBjO,GAC9B,OAAO4N,EAAW5N,EAAO5Q,IAAIlH,SAG1B,SAASgmB,EAAYnxB,EAAmBijB,GAC3C,MAAM9R,EAAU+f,EAAkBjO,GAClC,OAAO7R,YAA0BD,EAASnR,GAGvC,SAASoxB,EAAgBxxB,GAC5B,OAAOixB,EAAWjxB,GAAIyxB,OAGnB,SAASjf,EAAUpS,EAAmBJ,GACzC,MAAMuR,EAAUigB,EAAgBxxB,GAChC,OAAOwR,YAAoBD,EAASnR,GAGjC,SAASsxB,EAAmB9wB,GAC/B,OAAOqwB,IAAalgB,eAAenQ,GAAqB6wB,OAGrD,SAASE,EAAavxB,GACzB,MAAMmR,EAAUmgB,EAAmBtxB,EAAQQ,qBAC3C,OAAO4Q,YAAsBD,EAASnR,GAGnC,SAASwxB,EAAkBhxB,EAA2CixB,GAEzE,OADcZ,IAAalgB,eAAenQ,GAC7BoQ,qCAAqC,UAAU,EACvD,YACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,QAAS,CAAC2gB,mBAAoBA,IAG3E,SAASC,EAAY1xB,EAAmByxB,GAC3C,MAAMtgB,EAAUqgB,EAAkBxxB,EAAQQ,oBAAqBixB,GAC/D,OAAOrgB,YAAsBD,EAASnR,GAGnC,SAAS2xB,EAAoB/xB,EAAYgyB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,EAA6BC,GAE7O,OADcpB,EAAWjxB,GACZgR,qCAAqC,YAAY,EACzD,kBACD,QAAS,CAACC,YAAa,MAAOC,aAAc,cAAe,CAAC8gB,aAAcA,EAAcC,qBAAsBA,EAAsBC,sBAAuBA,EAAuBC,gBAAiBA,EAAiBC,YAAaA,EAAaC,iBAAkBA,IAGjQ,SAASC,EAAclyB,EAAmBJ,EAAYgyB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,EAA6BC,GAC1P,MAAM9gB,EAAUwgB,EAAoB/xB,EAAIgyB,EAAcC,EAAsBC,EAAuBC,EAAiBC,EAAaC,GACjI,OAAO7gB,YAA0BD,EAASnR,GAGvC,SAASmyB,EAA4DvyB,EAAYwyB,EAA+BC,GAEnH,OADcxB,EAAWjxB,GACZgR,qCAAqC,oDAAoD,EACjG,sCACD,QAAS,CAACC,YAAa,OAAQC,aAAc,kCAAmC,CAACshB,cAAeA,EAAeC,aAAcA,IAG9H,SAASC,EAAsDtyB,EAAmBJ,EAAYwyB,EAA+BC,GAChI,MAAMlhB,EAAUghB,EAA4DvyB,EAAIwyB,EAAeC,GAC/F,OAAOjhB,YAA8CD,EAASnR,GAG3D,SAASuyB,EAA8B/xB,EAA2CZ,GAErF,OADcixB,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,sBAAsB,EACnE,kBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,cAAe,IAG5D,SAAS0hB,EAAwBxyB,EAAmBJ,GACvD,MAAMuR,EAAUohB,EAA8BvyB,EAAQQ,oBAAqBZ,GAC3E,OAAOwR,YAA4BD,EAASnR,GAGzC,SAASyyB,EAA6CjyB,EAA2CZ,EAAY8yB,EAAqDvzB,EAAmBwzB,GAExL,OADc9B,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,qCAAqC,EAClF,+BACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,2BAA4B,CAAC4hB,sBAAuBA,EAAuBvzB,UAAWA,EAAWwzB,aAAcA,IAG5J,SAASC,EAAuC5yB,EAAmBJ,EAAY8yB,EAAqDvzB,EAAmBwzB,GAC1J,MAAMxhB,EAAUshB,EAA6CzyB,EAAQQ,oBAAqBZ,EAAI8yB,EAAuBvzB,EAAWwzB,GAChI,OAAOvhB,YAAyCD,EAASnR,GAGtD,SAAS6yB,EAAkCryB,EAA2CZ,EAAY8yB,EAAsDC,GAE3J,OADc9B,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,0BAA0B,EACvE,+BACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,2BAA4B,CAAC4hB,sBAAuBA,EAAuBC,aAAcA,IAGtI,SAASG,EAA4B9yB,EAAmBJ,EAAY8yB,EAAsDC,GAC7H,MAAMxhB,EAAU0hB,EAAkC7yB,EAAQQ,oBAAqBZ,EAAI8yB,EAAuBC,GAC1G,OAAOvhB,YAAyCD,EAASnR,GAGtD,SAAS+yB,EAAkCnzB,GAE9C,OADcixB,EAAWjxB,GACZgR,qCAAqC,0BAA0B,EACvE,+BACD,QAAS,CAACC,YAAa,OAAQC,aAAc,2BAA4B,IAG1E,SAASkiB,EAA4BhzB,EAAmBJ,GAC3D,MAAMuR,EAAU4hB,EAAkCnzB,GAClD,OAAOwR,YAAuCD,EAASnR,GAGpD,SAASizB,EAA8BzyB,EAA2CZ,EAAYszB,EAAkCC,EAA+BR,EAA8BS,GAEhM,OADcvC,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,sBAAsB,EACnE,sBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,kBAAmB,CAACoiB,gBAAiBA,EAAiBC,YAAaA,EAAaR,aAAcA,EAAcS,4BAA6BA,IAGtL,SAASjL,EAAwBnoB,EAAmBJ,EAAYszB,EAAkCC,EAA+BR,EAA8BS,GAClK,MAAMjiB,EAAU8hB,EAA8BjzB,EAAQQ,oBAAqBZ,EAAIszB,EAAiBC,EAAaR,EAAcS,GAC3H,OAAOhiB,YAAgCD,EAASnR,GAG7C,SAASqzB,EAA4CzzB,EAAY0zB,GAEpE,OADczC,EAAWjxB,GACZgR,qCAAqC,oCAAoC,EACjF,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACwiB,2BAA4BA,IAGnF,SAASC,EAAsCvzB,EAAmBJ,EAAY0zB,GACjF,MAAMniB,EAAUkiB,EAA4CzzB,EAAI0zB,GAChE,OAAOliB,YAAoBD,EAASnR,GAGjC,SAASwzB,EAAuC5zB,EAAY6zB,GAE/D,OADc5C,EAAWjxB,GACZgR,qCAAqC,+BAA+B,EAC5E,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC2iB,sBAAuBA,IAG9E,SAASC,EAAiC1zB,EAAmBJ,EAAY6zB,GAC5E,MAAMtiB,EAAUqiB,EAAuC5zB,EAAI6zB,GAC3D,OAAOriB,YAAoBD,EAASnR,GAGjC,SAAS2zB,EAAqB/zB,EAAYg0B,EAAyBC,EAA2BC,GAEjG,OADcjD,EAAWjxB,GACZgR,qCAAqC,aAAa,EAC1D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8iB,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGzH,SAASC,EAAe/zB,EAAmBJ,EAAYg0B,EAAyBC,EAA2BC,GAC9G,MAAM3iB,EAAUwiB,EAAqB/zB,EAAIg0B,EAAiBC,EAAYC,GACtE,OAAO1iB,YAAoBD,EAASnR,GAGjC,SAASg0B,EAA0Bp0B,EAAYq0B,EAA6BH,EAAgBI,GAE/F,OADcrD,EAAWjxB,GACZgR,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACmjB,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGpH,SAASC,EAAoBn0B,EAAmBJ,EAAYq0B,EAA6BH,EAAgBI,GAC5G,MAAM/iB,EAAU6iB,EAA0Bp0B,EAAIq0B,EAAcH,EAAQI,GACpE,OAAO9iB,YAAoBD,EAASnR,GAGjC,SAASo0B,EAA6Bx0B,EAAYy0B,EAA2BT,EAAyBC,EAA2BC,GAEpI,OADcjD,EAAWjxB,GACZgR,qCAAqC,qBAAqB,EAClE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACujB,WAAYA,EAAYT,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGjJ,SAASQ,EAAuBt0B,EAAmBJ,EAAYy0B,EAA2BT,EAAyBC,EAA2BC,GACjJ,MAAM3iB,EAAUijB,EAA6Bx0B,EAAIy0B,EAAYT,EAAiBC,EAAYC,GAC1F,OAAO1iB,YAAoBD,EAASnR,GAGjC,SAASu0B,EAAkC30B,EAAYy0B,EAA2BJ,EAA6BH,EAAgBI,GAElI,OADcrD,EAAWjxB,GACZgR,qCAAqC,0BAA0B,EACvE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACujB,WAAYA,EAAYJ,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAG5I,SAASM,EAA4Bx0B,EAAmBJ,EAAYy0B,EAA2BJ,EAA6BH,EAAgBI,GAC/I,MAAM/iB,EAAUojB,EAAkC30B,EAAIy0B,EAAYJ,EAAcH,EAAQI,GACxF,OAAO9iB,YAAoBD,EAASnR,GAGjC,SAASy0B,EAAgB70B,EAAYs0B,EAA2ClC,GAEnF,OADcnB,EAAWjxB,GACZgR,qCAAqC,QAAQ,EACrD,kBACD,QAAS,CAACC,YAAa,MAAOC,aAAc,cAAe,CAACojB,gBAAiBA,EAAiBlC,YAAaA,IAG5G,SAAS0C,EAAU10B,EAAmBJ,EAAYs0B,EAA2ClC,GAChG,MAAM7gB,EAAUsjB,EAAgB70B,EAAIs0B,EAAiBlC,GACrD,OAAO5gB,YAA0BD,EAASnR,GAGvC,SAAS20B,EAAwB/0B,EAAY8sB,EAA+BsF,GAE/E,OADcnB,EAAWjxB,GACZgR,qCAAqC,gBAAgB,EAC7D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC4b,UAAWA,EAAWsF,YAAaA,IAG1F,SAAS9E,EAAkBltB,EAAmBJ,EAAY8sB,EAA+BsF,GAC5F,MAAM7gB,EAAUwjB,EAAwB/0B,EAAI8sB,EAAWsF,GACvD,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAAS40B,EAA8Bh1B,EAAYi1B,EAA0CC,EAAyC9C,GAEzI,OADcnB,EAAWjxB,GACZgR,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC+jB,gBAAiBA,EAAiBC,gCAAiCA,EAAiC9C,YAAaA,IAGxK,SAAS+C,EAAwB/0B,EAAmBJ,EAAYi1B,EAA0CC,EAAyC9C,GACtJ,MAAM7gB,EAAUyjB,EAA8Bh1B,EAAIi1B,EAAiBC,EAAiC9C,GACpG,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAASg1B,EAA2Bp1B,EAAY8sB,EAA+BsF,GAElF,OADcnB,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC4b,UAAWA,EAAWsF,YAAaA,IAG1F,SAASiD,EAAqBj1B,EAAmBJ,EAAY8sB,EAA+BsF,GAC/F,MAAM7gB,EAAU6jB,EAA2Bp1B,EAAI8sB,EAAWsF,GAC1D,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAASk1B,EAAyBt1B,EAAY8sB,GAEjD,OADcmE,EAAWjxB,GACZgR,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC4b,UAAWA,IAGlE,SAASyI,EAAmBn1B,EAAmBJ,EAAY8sB,GAC9D,MAAMvb,EAAU+jB,EAAyBt1B,EAAI8sB,GAC7C,OAAOtb,YAAoBD,EAASnR,GAGjC,SAASo1B,GAA2Bx1B,EAAYuzB,GAEnD,OADctC,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACqiB,YAAaA,IAGpE,SAASkC,GAAqBr1B,EAAmBJ,EAAYuzB,GAChE,MAAMhiB,EAAUikB,GAA2Bx1B,EAAIuzB,GAC/C,OAAO/hB,YAAoBD,EAASnR,GAGjC,SAASs1B,GAAyB11B,EAAY21B,EAAwCvD,GAEzF,OADcnB,EAAWjxB,GACZgR,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACykB,eAAgBA,EAAgBvD,YAAaA,IAGpG,SAASwD,GAAmBx1B,EAAmBJ,EAAY21B,EAAwCvD,GACtG,MAAM7gB,EAAUmkB,GAAyB11B,EAAI21B,EAAgBvD,GAC7D,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAASy1B,GAAmC71B,EAAY81B,EAAgC1D,GAE3F,OADcnB,EAAWjxB,GACZgR,qCAAqC,2BAA2B,EACxE,0BACD,QAAS,CAACC,YAAa,MAAOC,aAAc,sBAAuB,CAAC4kB,WAAYA,EAAY1D,YAAaA,IAG1G,SAAS2D,GAA6B31B,EAAmBJ,EAAY81B,EAAgC1D,GACxG,MAAM7gB,EAAUskB,GAAmC71B,EAAI81B,EAAY1D,GACnE,OAAO5gB,YAAkCD,EAASnR,GAG/C,SAAS41B,GAAqCh2B,EAAYi2B,EAA4C7D,GAEzG,OADcnB,EAAWjxB,GACZgR,qCAAqC,6BAA6B,EAC1E,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC+kB,uBAAwBA,EAAwB7D,YAAaA,IAGpH,SAAS8D,GAA+B91B,EAAmBJ,EAAYi2B,EAA4C7D,GACtH,MAAM7gB,EAAUykB,GAAqCh2B,EAAIi2B,EAAwB7D,GACjF,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAAS+1B,GAAoCn2B,EAAY81B,GAE5D,OADc7E,EAAWjxB,GACZgR,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,WAAYA,IAG9I,SAASM,GAA8Bh2B,EAAmBJ,EAAY81B,GACzE,MAAMvkB,EAAU4kB,GAAoCn2B,EAAI81B,GACxD,OAAOtkB,YAA0BD,EAASnR,GAGvC,SAASi2B,GAAqCr2B,EAAYs2B,EAA8BC,GAE3F,OADctF,EAAWjxB,GACZgR,qCAAqC,6BAA6B,EAC1E,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAColB,aAAcA,EAAcC,cAAeA,IAGlG,SAASC,GAA+Bp2B,EAAmBJ,EAAYs2B,EAA8BC,GACxG,MAAMhlB,EAAU8kB,GAAqCr2B,EAAIs2B,EAAcC,GACvE,OAAO/kB,YAAoBD,EAASnR,GAGjC,SAASq2B,GAA2C71B,EAA2CZ,EAAYi2B,EAA4CS,GAE1J,OADczF,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,mCAAmC,EAChF,eACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,WAAY,CAAC+kB,uBAAwBA,EAAwBS,yBAA0BA,IAGpI,SAASC,GAAqCv2B,EAAmBJ,EAAYi2B,EAA4CS,GAC5H,MAAMnlB,EAAUklB,GAA2Cr2B,EAAQQ,oBAAqBZ,EAAIi2B,EAAwBS,GACpH,OAAOllB,YAAyBD,EAASnR,GAGtC,SAASw2B,GAAgB52B,EAAY62B,GAExC,OADc5F,EAAWjxB,GACZgR,qCAAqC,QAAQ,EACrD,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC2lB,eAAgBA,IAGvE,SAASC,GAAU12B,EAAmBJ,EAAY62B,GACrD,MAAMtlB,EAAUqlB,GAAgB52B,EAAI62B,GACpC,OAAOrlB,YAAoBD,EAASnR,GAGjC,SAAS22B,GAAuCC,EAA8BC,GAEjF,OADchG,IACDjgB,qCAAqC,+BAA+B,EAC5E,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8lB,cAAeA,EAAeC,sBAAuBA,IAG5G,SAASC,GAAiC92B,EAAmB42B,EAA8BC,GAC9F,MAAM1lB,EAAUwlB,GAAuCC,EAAeC,GACtE,OAAOzlB,YAAoBD,EAASnR,GAGjC,SAAS+2B,GAAoCn3B,EAAYo3B,GAE5D,OADcnG,EAAWjxB,GACZgR,qCAAqC,4BAA4B,EACzE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACkmB,+BAAgCA,IAGvF,SAASC,GAA8Bj3B,EAAmBJ,EAAYo3B,GACzE,MAAM7lB,EAAU4lB,GAAoCn3B,EAAIo3B,GACxD,OAAO5lB,YAAoBD,EAASnR,GAGjC,SAASk3B,GAA0Bt3B,EAAYs2B,EAA8BhC,EAA2CiD,EAAiCC,GAE5J,OADcvG,EAAWjxB,GACZgR,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAColB,aAAcA,EAAchC,gBAAiBA,EAAiBiD,eAAgBA,EAAgBC,UAAWA,IAGhK,SAASC,GAAoBr3B,EAAmBJ,EAAYs2B,EAA8BhC,EAA2CiD,EAAiCC,GACzK,MAAMjmB,EAAU+lB,GAA0Bt3B,EAAIs2B,EAAchC,EAAiBiD,EAAgBC,GAC7F,OAAOhmB,YAAoBD,EAASnR,GAGjC,SAASs3B,GAAyB13B,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GAE3J,OADc5G,EAAWjxB,GACZgR,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACymB,WAAYA,EAAYzD,OAAQA,EAAQzB,aAAcA,EAAcmF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASC,GAAmB13B,EAAmBJ,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GACxK,MAAMtmB,EAAUmmB,GAAyB13B,EAAI23B,EAAYzD,EAAQzB,EAAcmF,EAAiBC,GAChG,OAAOrmB,YAAoBD,EAASnR,GAGjC,SAAS23B,GAA0B/3B,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GAE5J,OADc5G,EAAWjxB,GACZgR,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACymB,WAAYA,EAAYzD,OAAQA,EAAQzB,aAAcA,EAAcmF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASG,GAAoB53B,EAAmBJ,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GACzK,MAAMtmB,EAAUwmB,GAA0B/3B,EAAI23B,EAAYzD,EAAQzB,EAAcmF,EAAiBC,GACjG,OAAOrmB,YAAoBD,EAASnR,GAGjC,SAAS63B,GAA2Bj4B,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GAE7J,OADc5G,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACymB,WAAYA,EAAYzD,OAAQA,EAAQzB,aAAcA,EAAcmF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASK,GAAqB93B,EAAmBJ,EAAY23B,EAA2BzD,EAAgBzB,EAA8BmF,EAAiCC,GAC1K,MAAMtmB,EAAU0mB,GAA2Bj4B,EAAI23B,EAAYzD,EAAQzB,EAAcmF,EAAiBC,GAClG,OAAOrmB,YAAoBD,EAASnR,GAGjC,SAAS+3B,GAAmBn4B,GAE/B,OADcixB,EAAWjxB,GACZgR,qCAAqC,WAAW,EACxD,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,IAGtD,SAASknB,GAAah4B,EAAmBJ,GAC5C,MAAMuR,EAAU4mB,GAAmBn4B,GACnC,OAAOwR,YAAoBD,EAASnR,GAGjC,SAASi4B,GAA8Br4B,EAAYs4B,EAA+BpG,GAErF,OADcjB,EAAWjxB,GACZgR,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAConB,cAAeA,EAAepG,sBAAuBA,IAG5G,SAASqG,GAAwBn4B,EAAmBJ,EAAYs4B,EAA+BpG,GAClG,MAAM3gB,EAAU8mB,GAA8Br4B,EAAIs4B,EAAepG,GACjE,OAAO1gB,YAAoBD,EAASnR,GAGjC,SAASo4B,GAAkBx4B,GAE9B,OADcixB,EAAWjxB,GACZgR,qCAAqC,UAAU,EACvD,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,IAGtD,SAASunB,GAAYr4B,EAAmBJ,GAC3C,MAAMuR,EAAUinB,GAAkBx4B,GAClC,OAAOwR,YAAoBD,EAASnR,GAGjC,SAASs4B,GAA+BC,GAE3C,OADc1H,IACDjgB,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACynB,UAAWA,IAGlE,SAASC,GAAyBx4B,EAAmBu4B,GACxD,MAAMpnB,EAAUmnB,GAA+BC,GAC/C,OAAOnnB,YAAoBD,EAASnR,GAGjC,SAASy4B,GAA+B74B,EAAY84B,GAEvD,OADc7H,EAAWjxB,GACZgR,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC4nB,cAAeA,IAGtE,SAASC,GAAyB34B,EAAmBJ,EAAY84B,GACpE,MAAMvnB,EAAUsnB,GAA+B74B,EAAI84B,GACnD,OAAOtnB,YAAoBD,EAASnR,GAGjC,SAAS44B,GAAwBp4B,GAEpC,OADcqwB,IAAalgB,eAAenQ,GAC7BoQ,qCAAqC,gBAAgB,EAC7D,YACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,QAAS,IAGtD,SAAS+nB,GAAkB74B,GAC9B,MAAMmR,EAAUynB,GAAwB54B,EAAQQ,qBAChD,OAAO4Q,YAAsBD,EAASnR,GAGnC,SAAS84B,GAAiCl5B,EAAYy0B,EAA2B0E,GAEpF,OADclI,EAAWjxB,GACZgR,qCAAqC,yBAAyB,EACtE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACujB,WAAYA,EAAY0E,MAAOA,IAGtF,SAASC,GAA2Bh5B,EAAmBJ,EAAYy0B,EAA2B0E,GACjG,MAAM5nB,EAAU2nB,GAAiCl5B,EAAIy0B,EAAY0E,GACjE,OAAO3nB,YAAoBD,EAASnR,GAGjC,SAASi5B,GAAqCr5B,EAAYs5B,EAA8DC,GAE3H,OADctI,EAAWjxB,GACZgR,qCAAqC,6BAA6B,EAC1E,8BACD,QAAS,CAACC,YAAa,OAAQC,aAAc,0BAA2B,CAACooB,0BAA2BA,EAA2BC,oBAAqBA,IAGrJ,SAASC,GAA+Bp5B,EAAmBJ,EAAYs5B,EAA8DC,GACxI,MAAMhoB,EAAU8nB,GAAqCr5B,EAAIs5B,EAA2BC,GACpF,OAAO/nB,YAAsCD,EAASnR,GAGnD,SAASq5B,GAA2CC,EAAkCH,EAAiDI,EAAwBC,GAElK,OADc3I,IACDjgB,qCAAqC,mCAAmC,EAChF,+BACD,QAAS,CAACC,YAAa,MAAOC,aAAc,2BAA4B,CAACwoB,iBAAkBA,EAAkBH,oBAAqBA,EAAqBI,OAAQA,EAAQC,SAAUA,IAGlL,SAASC,GAAqCz5B,EAAmBs5B,EAAkCH,EAAiDI,EAAwBC,GAC/K,MAAMroB,EAAUkoB,GAA2CC,EAAkBH,EAAqBI,EAAQC,GAC1G,OAAOpoB,YAAuCD,EAASnR,GAGpD,SAAS05B,GAAuB9C,EAA+B+C,EAAyBC,GAE3F,OADc/I,IACDjgB,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8lB,cAAeA,EAAe+C,QAASA,EAASC,0BAA2BA,IAGlI,SAASC,GAAiB75B,EAAmB42B,EAA+B+C,EAAyBC,GACxG,MAAMzoB,EAAUuoB,GAAuB9C,EAAe+C,EAASC,GAC/D,OAAOxoB,YAAoBD,EAASnR,GAGjC,SAAS85B,GAAuBlD,EAA+BmD,GAElE,OADclJ,IACDjgB,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8lB,cAAeA,EAAemD,QAASA,IAG9F,SAASC,GAAiBh6B,EAAmB42B,EAA+BmD,GAC/E,MAAM5oB,EAAU2oB,GAAuBlD,EAAemD,GACtD,OAAO3oB,YAAoBD,EAASnR,GAGjC,SAASi6B,GAA4Br6B,GAExC,OADcixB,EAAWjxB,GACZgR,qCAAqC,oBAAoB,EACjE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,IAGtD,SAASopB,GAAsBl6B,EAAmBJ,GACrD,MAAMuR,EAAU8oB,GAA4Br6B,GAC5C,OAAOwR,YAAoBD,EAASnR,GAGjC,SAASm6B,GAA2Bv6B,GAEvC,OADcixB,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,IAGtD,SAASspB,GAAqBp6B,EAAmBJ,GACpD,MAAMuR,EAAUgpB,GAA2Bv6B,GAC3C,OAAOwR,YAAoBD,EAASnR,GAGjC,SAASq6B,GAAyBz6B,GAErC,OADcixB,EAAWjxB,GACZgR,qCAAqC,iBAAiB,EAC9D,sBACD,QAAS,CAACC,YAAa,OAAQC,aAAc,kBAAmB,IAGjE,SAASwpB,GAAmBt6B,EAAmBJ,GAClD,MAAMuR,EAAUkpB,GAAyBz6B,GACzC,OAAOwR,YAA8BD,EAASnR,GAG3C,SAASu6B,GAAkC/5B,EAA2CZ,EAAYuzB,GAErG,OADctC,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,0BAA0B,EACvE,yBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,qBAAsB,CAACqiB,YAAaA,IAGjF,SAASqH,GAA4Bx6B,EAAmBJ,EAAYuzB,GACvE,MAAMhiB,EAAUopB,GAAkCv6B,EAAQQ,oBAAqBZ,EAAIuzB,GACnF,OAAO/hB,YAAmCD,EAASnR,GAGhD,SAASy6B,GAA8B7D,EAA+B8D,GAEzE,OADc7J,IACDjgB,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8lB,cAAeA,EAAe8D,UAAWA,IAGhG,SAASC,GAAwB36B,EAAmB42B,EAA+B8D,GACtF,MAAMvpB,EAAUspB,GAA8B7D,EAAe8D,GAC7D,OAAOtpB,YAAoBD,EAASnR,GAGjC,SAAS46B,GAA2Bh7B,EAAY86B,EAA2BlD,GAE9E,OADc3G,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC4pB,UAAWA,EAAWlD,gBAAiBA,IAG9F,SAASqD,GAAqB76B,EAAmBJ,EAAY86B,EAA2BlD,GAC3F,MAAMrmB,EAAUypB,GAA2Bh7B,EAAI86B,EAAWlD,GAC1D,OAAOpmB,YAAoBD,EAASnR,GAGjC,SAAS86B,GAAuBl7B,EAAYm7B,GAE/C,OADclK,EAAWjxB,GACZgR,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACiqB,WAAYA,IAGnE,SAASC,GAAiBh7B,EAAmBJ,EAAYm7B,GAC5D,MAAM5pB,EAAU2pB,GAAuBl7B,EAAIm7B,GAC3C,OAAO3pB,YAAoBD,EAASnR,GAGjC,SAASi7B,GAAsCrE,EAA8BvC,EAA2B6G,EAAqCC,GAEhJ,OADctK,IACDjgB,qCAAqC,8BAA8B,EAC3E,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAAC8lB,cAAeA,EAAevC,WAAYA,EAAY6G,qBAAsBA,EAAsBC,gBAAiBA,IAG1K,SAASC,GAAgCp7B,EAAmB42B,EAA8BvC,EAA2B6G,EAAqCC,GAC7J,MAAMhqB,EAAU8pB,GAAsCrE,EAAevC,EAAY6G,EAAsBC,GACvG,OAAO/pB,YAAoBD,EAASnR,GAGjC,SAASq7B,GAAsBz7B,EAAY07B,EAA+BC,GAE7E,OADc1K,EAAWjxB,GACZgR,qCAAqC,cAAc,EAC3D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACwqB,YAAaA,EAAaC,qBAAsBA,IAGvG,SAASC,GAAgBx7B,EAAmBJ,EAAY07B,EAA+BC,GAC1F,MAAMpqB,EAAUkqB,GAAsBz7B,EAAI07B,EAAaC,GACvD,OAAOnqB,YAAoBD,EAASnR,GAGjC,SAASy7B,GAAyB77B,EAAY07B,GAEjD,OADczK,EAAWjxB,GACZgR,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACwqB,YAAaA,IAGpE,SAASI,GAAmB17B,EAAmBJ,EAAY07B,GAC9D,MAAMnqB,EAAUsqB,GAAyB77B,EAAI07B,GAC7C,OAAOlqB,YAAoBD,EAASnR,GAGjC,SAAS27B,GAAuCn7B,EAA2CZ,EAAY8sB,GAE1G,OADcmE,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,+BAA+B,EAC5E,0BACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,sBAAuB,CAAC4b,UAAWA,IAGhF,SAASkP,GAAiC57B,EAAmBJ,EAAY8sB,GAC5E,MAAMvb,EAAUwqB,GAAuC37B,EAAQQ,oBAAqBZ,EAAI8sB,GACxF,OAAOtb,YAAoCD,EAASnR,GAGjD,SAAS67B,GAAiCr7B,EAA2CZ,EAAYuzB,GAEpG,OADctC,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,yBAAyB,EACtE,0BACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,sBAAuB,CAACqiB,YAAaA,IAGlF,SAAS2I,GAA2B97B,EAAmBJ,EAAYuzB,GACtE,MAAMhiB,EAAU0qB,GAAiC77B,EAAQQ,oBAAqBZ,EAAIuzB,GAClF,OAAO/hB,YAAoCD,EAASnR,GAGjD,SAAS+7B,GAA0Bv7B,GAEtC,OADcqwB,IAAalgB,eAAenQ,GAC7BoQ,qCAAqC,kBAAkB,EAC/D,kBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,cAAe,IAG5D,SAASkrB,GAAoBh8B,GAChC,MAAMmR,EAAU4qB,GAA0B/7B,EAAQQ,qBAClD,OAAO4Q,YAA4BD,EAASnR,GAGzC,SAASi8B,GAA2Bz7B,EAA2CZ,GAElF,OADcixB,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,mBAAmB,EAAO,GAAI,OAAQ,CAACC,YAAa,OAAQC,aAAc,IAAK,IAG9H,SAASorB,GAAqBl8B,EAAmBJ,GACpD,MAAMuR,EAAU8qB,GAA2Bj8B,EAAQQ,oBAAqBZ,GACxE,OAAOwR,YAAwBD,EAASnR,GAGrC,SAASm8B,GAA+Bv8B,EAAYy0B,EAA2B0E,EAAe/G,GAEjG,OADcnB,EAAWjxB,GACZgR,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACujB,WAAYA,EAAY0E,MAAOA,EAAO/G,YAAaA,IAG1G,SAASoK,GAAyBp8B,EAAmBJ,EAAYy0B,EAA2B0E,EAAe/G,GAC9G,MAAM7gB,EAAUgrB,GAA+Bv8B,EAAIy0B,EAAY0E,EAAO/G,GACtE,OAAO5gB,YAAoBD,EAASnR,GAGjC,SAASq8B,GAA2Bz8B,EAAY08B,GAEnD,OADczL,EAAWjxB,GACZgR,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACC,YAAa,MAAOC,aAAc,QAAS,CAACwrB,aAAcA,IAGrE,SAASC,GAAqBv8B,EAAmBJ,EAAY08B,GAChE,MAAMnrB,EAAUkrB,GAA2Bz8B,EAAI08B,GAC/C,OAAOlrB,YAAoBD,EAASnR,GAGjC,SAASw8B,GAA4Bh8B,EAA2CZ,GAEnF,OADcixB,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,oBAAoB,EACjE,wBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,oBAAqB,IAGlE,SAAS2rB,GAAsBz8B,EAAmBJ,GACrD,MAAMuR,EAAUqrB,GAA4Bx8B,EAAQQ,oBAAqBZ,GACzE,OAAOwR,YAAkCD,EAASnR,GAG/C,SAAS08B,GAA+B98B,EAAYoyB,GAEvD,OADcnB,EAAWjxB,GACZgR,qCAAqC,uBAAuB,EACpE,iCACD,QAAS,CAACC,YAAa,MAAOC,aAAc,6BAA8B,CAACkhB,YAAaA,IAGzF,SAAS2K,GAAyB38B,EAAmBJ,EAAYoyB,GACpE,MAAM7gB,EAAUurB,GAA+B98B,EAAIoyB,GACnD,OAAO5gB,YAAyCD,EAASnR,GAGtD,SAAS48B,GAAgCp8B,EAA2CZ,EAAY63B,EAA8BpF,GAEjI,OADcxB,EAAWjxB,GAAI+Q,eAAenQ,GAC/BoQ,qCAAqC,wBAAwB,EACrE,kBACD,OAAQ,CAACC,YAAa,OAAQC,aAAc,cAAe,CAAC2mB,aAAcA,EAAcpF,aAAcA,IAGvG,SAASwK,GAA0B78B,EAAmBJ,EAAY63B,EAA8BpF,GACnG,MAAMlhB,EAAUyrB,GAAgC58B,EAAQQ,oBAAqBZ,EAAI63B,EAAcpF,GAC/F,OAAOjhB,YAA4BD,EAASnR,K,wHCvxB7C,MAAM88B,EAGT79B,YAAY89B,GAIL,KAAA19B,YAAc,IAAM,2BAEpB,KAAAC,mBAAqB,IAAM,2BAE3B,KAAAC,cAAgB,IAAiB,OAPpCC,KAAKu9B,aAAeA,GAwDrB,MAAMC,EAAsCr9B,YAAwC,CACvFC,GAAI,kFACJC,OA9BGC,eAAyCC,EAAiCsM,GAC7E,IACI,MAAM4wB,EAA6B,CAC/B5qB,GAAI,GACJyE,KAAM/W,EAAMg9B,aACZG,qBAAsBhnB,kBAAgB0K,eAEpCuc,QAA2BC,iCAC7B,CACI78B,cAAe8L,GAEnB4wB,GAEJ,GAAIE,GAAgD,KAA1BA,EAAmB9qB,GACzC,OAAO8qB,EAGX,MADA9wB,EAAI6B,UAAUwB,MAAM,iCACd,IAAIlN,MAAM,iCAClB,MAAOkN,GAEL,MADArD,EAAI6B,UAAUwB,MAAM,oCAAqCA,GACnDA,IAWV3P,MA5CoCs9B,CAACh7B,EAAiC06B,KACtE,MAAM,eAAE39B,GAAmBiD,EAC3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,+DAEpB,OAAO,IAAIs6B,EAAyBC,MA0CzBC,O,0ECvDVM,E,kqBAKUx9B,eAAey9B,EAAsBlxB,GAChD,IAAIwF,EACJ,MACME,EADqB1F,EAAIjN,eAAe0S,QAAQE,gBACTvK,MAAM,KACnD,IAEIoK,QAmED/R,eAAiCiS,EAA2B1F,GAC/D,IAAI8F,EACAqrB,EAAqB,GAEzB,MAAMtrB,EAAkB7F,EAAIjN,eAAe6S,KAAKC,gBAChD,GAAIH,GAA8C,IAA3BA,EAAgBhO,SAM9BmO,GAAmBH,EAAgB,KAAOurB,EAAgBG,OACzDvrB,GAAmBH,EAAgB,KAAOurB,EAAgBI,MAE5D,IACIF,EAAazrB,EAAgB,GAC7B,MAAMI,QAAiBC,oBAAU,CAAE7R,cAAe8L,EAAKwE,YAAa,QAAUkB,EAAgB,IAE9F,GAAII,GAAYA,EAASE,GAErB,OADAhG,EAAIjN,eAAe0S,QAAQ6rB,cAAcxrB,EAAU9F,EAAIjN,eAAe6S,KAAKC,iBACpEC,EAEb,MAAOzC,GACDkuB,EAAgCvxB,EAAKqD,KACrCyC,QAAiBC,oBAAU,CAAE7R,cAAe8L,EAAKwE,YAAa,QAAU2sB,IAE5EnxB,EAAI6B,UAAUwB,MAAM,6CACpBrD,EAAI6B,UAAU+I,UAAUvH,GAKpC,OAAOyC,EAnGU0rB,CAAkB9rB,EAAiB1F,GAChD,MAAMyxB,IAAsBjsB,GAAQA,EAAKQ,GAGnCR,GAAQA,EAAKQ,KACfR,QAiGL/R,eAAmCuM,GACtC,GAAIA,EAAIjN,eAAe6S,KAAKC,gBAAiB,CACzC,MAAM6rB,QA+MPj+B,eAA2BuM,GAqB9B,OAAOqlB,sBAAY,CAAEnxB,cAAe8L,EAAK7L,oBAfQ,CAC7CgO,OAAQ,CACJC,IAAK,EACL4d,KAAM,GAEV9c,QAAS,CACL5D,QAAS,CACL,CACIC,WAAY,mBACZC,cAAc,OAdiB,CAC3CmyB,kBAAkB,EAClBC,cAAe,IAlNSC,CAAY7xB,GACpC,GAAI0xB,GAAaA,EAAUh6B,OAAS,EAEhC,OADAsI,EAAIjN,eAAe0S,QAAQ6rB,cAAcI,EAAU,GAAI1xB,EAAIjN,eAAe6S,KAAKC,iBACxE6rB,EAAU,GAIzB,OA1GqBI,CAAoB9xB,IAMrC,MAAM+xB,QAuGPt+B,eACHiS,EACAssB,EACAhyB,GAEA,IAAIiyB,EAEJ,GACIjyB,EAAIjN,eAAe6S,KAAKC,iBACxBH,GAC2B,IAA3BA,EAAgBhO,QAChBgO,EAAgB,KAAOurB,EAAgBI,KACzC,CACE,IACIY,QAAwBlsB,oBAAU,CAAE7R,cAAe8L,EAAKwE,YAAa,QAAUkB,EAAgB,IACjG,MAAOrC,GACDkuB,EAAgCvxB,EAAKqD,KACrC4uB,QAAwBlsB,oBAAU,CAAE7R,cAAe8L,EAAKwE,YAAa,QAAUkB,EAAgB,KAIvG,GAAIusB,IAAoBD,EAAa,CACjC,MAAME,QA6JXz+B,eAAyBy5B,EAAgBltB,GAC5C,MAAMmyB,QAAsBvN,sBACxB,CAAE1wB,cAAe8L,GACjB,CACIgG,GAAIknB,IAGZ,KAAMiF,aAAyBh8B,QAAUg8B,GAAiBA,EAAcnsB,GACpE,OAAOmsB,EAEX,MAAa,GAvKiBC,CAAUH,EAAgBjsB,GAAIhG,GACpD,GAAIkyB,GAAWA,EAAQlsB,GAEnB,OADAhG,EAAIjN,eAAe0S,QAAQ6rB,cAAcY,EAASlyB,EAAIjN,eAAe6S,KAAKC,iBACnEqsB,EAIf,GAAID,GAAmBA,EAAgBjsB,IAAMgsB,EAAa,CACtD,MAAMK,QA2CX5+B,eAA4B6+B,EAAkBC,EAAuBvyB,GACxE,IAAIwyB,EACJ,MAAMnS,EAAwB,GACxBoS,EAA8B,GACpC,IAAIC,EACJ,MAAMC,EAAuB3yB,EAAIjN,eAAekc,QAC1C2jB,EAAyB,CAAC,mEAChC,GAAIL,EAAgBzR,QAAS,CACzB,GAAIwR,EAAWpsB,WAAaosB,EAAWpsB,UAAUxO,OAAS,EACtD,IAAK,MAAMm7B,KAAYP,EAAWpsB,UAAW,CACzC,IAAI4sB,EAEJ,GAAID,EAASE,eACTD,EAAcE,EAAkBH,OAC7B,CAAC,IAADI,EACHH,EAAc,GACd,MAAMI,QAAsBC,gCAAsB,CAAEj/B,cAAe8L,GAAO4yB,GAM1E,IAJIM,SAGC,QAHYD,EAAbC,EAAepyB,KACVqa,GACyB,oEAAtBA,EAAa1Q,aACpB,IAAAwoB,OAAA,EAHDA,EAGGvX,aAAa,EACQ,CAAC,IAAD0X,EACxB,MAAMC,QAAoCC,qDAA2C,CAAEp/B,cAAe8L,IACtG0yB,EACIG,EAASU,gBAC0C,QAD9BH,EACrBC,EAA4BG,+BAAuB,IAAAJ,OAAA,EAAnDA,EAAqDtyB,KAChD2yB,GAAyBA,IAAiBZ,EAASU,oBAG9Bz+B,IAA1B+9B,EAASU,cAA8Bb,IACvCI,EAAYS,aAAeV,EAASU,aACpCT,EAAYY,mBAAqBb,EAASa,mBAC1CZ,EAAYa,gBAAkBd,EAASc,gBACvCb,EAAYc,YAAcf,EAASe,kBAE/BxW,IAAQyV,EAASU,eAAiBV,EAASU,gBAAiBZ,aAAoB,EAApBA,EAAsBkB,0BAC1Ff,EAAYS,aAAeZ,aAAoB,EAApBA,EAAsBkB,uBACjDf,EAAYY,mBAAqBb,EAASa,mBAC1CZ,EAAYa,gBAAkBd,EAASc,gBACvCb,EAAYc,YAAcf,EAASe,aAEvCd,EAAY/5B,UAAY85B,EAAS95B,UACjC+5B,EAAYrY,SAAWoY,EAASpY,SAChCqY,EAAYgB,oBAAsBjB,EAASiB,oBAC3ChB,EAAYiB,YAAclB,EAASkB,YACnCjB,EAAYkB,gBAAkBnB,EAASmB,gBACvClB,EAAYmB,gBAAkBpB,EAASoB,gBACvCnB,EAAYx9B,UAAYu9B,EAASv9B,UACjCw9B,EAAYoB,qBAAuBrB,EAASqB,qBAC5CpB,EAAYtS,OAASqS,EAASrS,OAG9BsS,EAAYlS,oBAAsBiS,EAASjS,oBACvCiS,EAASsB,iBACTrB,EAAYsB,MAAQvB,EAASuB,MAC7BtB,EAAYqB,eAAiBtB,EAASsB,gBAI9C9T,EAAU/lB,KAAI1E,EAAC,GAAKk9B,IAChBD,EAASwB,QACT5B,EAAkBn4B,KAAKu4B,EAASwB,QAK5C,GAAIhU,EAAU3oB,OAAS,EACnB,IACI86B,QAAoB3R,4BAAkB,CAAE3sB,cAAe8L,GAAOuyB,EAAgBvsB,GAAIqa,EAAWkS,EAAgBzR,SAEzG2R,EAAkB/6B,OAAS,IAC3B46B,QAAmBtJ,+BAAqB,CAAE90B,cAAe8L,GAAOsyB,EAAWtsB,GAAIysB,IAErF,MAAOpvB,GAGL,OAFArD,EAAI6B,UAAUwB,MAAM,8CACpBrD,EAAI6B,UAAU+I,UAAUvH,GACjBkvB,EAKf,GAAID,EAAWgC,SAAWhC,EAAWgC,QAAQ58B,OAAS,EAAG,CACrD,MAAM68B,EAAUjC,EAAWgC,QAAQ5/B,IAAK8/B,GAC7BA,EAAOC,MAGlB,IACIjC,QAAoBrD,0BAAgB,CAAEj7B,cAAe8L,GAAOuyB,EAAgBvsB,GAAIuuB,GAAS,GAC3F,MAAOlxB,GAGL,OAFArD,EAAI6B,UAAUwB,MAAM,kDACpBrD,EAAI6B,UAAU+I,UAAUvH,GACjBkvB,IAKnB,OAAOC,GAAeD,EA5IWmC,CAAazC,EAAiBD,EAAahyB,GAGpE,KAAMqyB,aAAsBl8B,QAAUk8B,EAAWrsB,GAE7C,OADAhG,EAAIjN,eAAe0S,QAAQ6rB,cAAce,EAAYryB,EAAIjN,eAAe6S,KAAKC,iBACtEwsB,GAKnB,OA/I2BsC,CAAcjvB,EAAiBF,EAAMxF,GAS5D,GARI+xB,IACAvsB,EAAOusB,GAILvsB,GAAQA,EAAKQ,KACfR,QAAaovB,EAAc50B,KAE1ByxB,GAAqBzxB,EAAIjN,eAAe6S,KAAKC,iBAAmBL,IAASA,EAAKqvB,cAAe,CAC9F,MAAMC,QAAaC,uCAA6B,CAAE7gC,cAAe8L,EAAK7L,oBAAqB,IAAM,MAC7F2gC,GAAQA,EAAKp9B,OAAS,IACtB8N,QAAaof,sBACT,CAAE1wB,cAAe8L,GACjB,CACIgG,GAAIR,EAAKQ,GACT6uB,cAAeC,EAAK,GAAGE,eAKzC,MAAO3xB,GACLrD,EAAI6B,UAAUwB,MAAM,qCAAqCA,GACzDmC,QAAaovB,EAAc50B,GAE/B,OAAOwF,EASX,SAAS+rB,EAAgCvxB,EAAqBi1B,GAE1D,IAAI7lB,GAAW,EAMf,OAPc6lB,GAEc,oEAFdA,EAEKppB,OACf7L,EAAI6B,UAAUqzB,YAAY,gDAC1B9lB,GAAW,GAGRA,EAGJ3b,eAAemhC,EAAc50B,GAChC,MAAMkyB,QAAgBzN,0BAAgB,CAAEvwB,cAAe8L,GAAa,IACpE,GAAIkyB,GAAWA,EAAQlsB,GAGnB,OAFAhG,EAAIjN,eAAe0S,QAAQ6rB,cAAcY,EAASlyB,EAAIjN,eAAe6S,KAAKC,iBAEnEqsB,EAoGf,SAASc,EAAkBH,GACvB,MAAO,CACHU,aAAcV,EAASU,aACvBj+B,UAAWu9B,EAASv9B,UACpBy+B,YAAalB,EAASkB,YACtBG,qBAAsBrB,EAASqB,sBAAwB,EACvD1T,OAAQqS,EAASrS,OACjBznB,UAAW85B,EAAS95B,UACpB0hB,SAAUoY,EAASpY,SACnB2Z,MAAOvB,EAASuB,MAChBe,SAAUtC,EAASsC,SACnBC,gBAAiBvC,EAASuC,gBAC1BzU,WAAY,GACZC,oBAAqBiS,EAASjS,oBAC9BuT,gBAAgB,EAChBpB,gBAAgB,EAChBe,oBAAqBjB,EAASiB,sBA5LtC,SAAK7C,GACDA,EAAA,SACAA,EAAA,SAFJ,CAAKA,MAAe,M,2TCRb,MAAMoE,EAKTziC,YAAmBoE,GAGf,GALa,KAAAs+B,UAAoB,cAkB9B,KAAAriC,mBAAqB,IAAc,qCAMnC,KAAAD,YAAc,IAAcG,KAAKmiC,UAMjC,KAAApiC,cAAgB,IAAiB,cA3BpCC,KAAK6D,OAASA,EAEV7D,KAAK6D,OAAOu+B,cAAgBzhC,kBAAgBQ,YAAYnB,KAAK6D,OAAOu+B,cACpE,IAAK,MAAMC,KAAmBriC,KAAK6D,OAAOu+B,aAClCC,EAAgB1+B,SAChB3D,KAAKmiC,UAAY,GAAGniC,KAAKmiC,aAAaE,EAAgB1+B,OAAOT,eA8B1E,MAAMo/B,EAAez/B,GACjB,IAAIq/B,EAAiBr/B,EAAUgB,QAS7B0+B,EAA8BjiC,MAAOC,EAAyBC,KACvE,MAAM,OAAEqD,GAAWtD,EACbkV,EAAiC,GACnC5R,EAAOu+B,cACPv+B,EAAOu+B,aAAa7gC,IAAK8gC,GAAuC5sB,EAAQtO,KAAK,CAAEkmB,OAAQgV,EAAgB1+B,UAE3G,MAAMyM,EAA6C,GAC7CnQ,EAAYC,YAAaM,EAAQZ,gBASvC,GARAgM,4BAAkB3L,GAElBmQ,EAAoB7C,QAAU,CAC1BC,UAAWhN,EAAQZ,eAAemD,YAAYpD,UAC9CwC,UAAWlC,GAEfmQ,EAAoBrB,mBAAoB,EACxCqB,EAAoBoyB,QAAU/sB,GACzB5R,EAAOu+B,eAAiBzhC,kBAAgBQ,YAAY0C,EAAOu+B,cAC5D,MAAM,IAAIp/B,MAAM,6DAGpB,aAAanC,sBAAoBmP,sBAAsB,CAAEjP,cAAeP,GAAW4P,IAS1EqyB,EAAmBtiC,YAA2B,CACvDC,GAAI,oEACJC,OAAQkiC,EACRhiC,MAAO+hC,IAGIG,a,oCC1Gf,EAAQ,QACR,IAAIjnB,EAAI,EAAQ,QACZ7C,EAAS,EAAQ,QACjB+pB,EAAiB,EAAQ,QACzBlkB,EAAO,EAAQ,QACfvb,EAAc,EAAQ,QACtB0/B,EAAc,EAAQ,QACtBC,EAAiB,EAAQ,QACzBpe,EAAgB,EAAQ,QACxBqe,EAAwB,EAAQ,QAChCC,EAAiB,EAAQ,QACzBxe,EAAiB,EAAQ,QACzBF,EAA4B,EAAQ,QACpC2e,EAAsB,EAAQ,QAC9BC,EAAa,EAAQ,QACrB9qB,EAAa,EAAQ,QACrB+qB,EAAS,EAAQ,QACjBC,EAAO,EAAQ,QACf1mB,EAAU,EAAQ,QAClBoK,EAAW,EAAQ,QACnBrK,EAAW,EAAQ,QACnB4mB,EAAY,EAAQ,QACpBzf,EAAS,EAAQ,QACjB0f,EAA2B,EAAQ,QACnCC,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5BC,EAAyB,EAAQ,QACjCC,EAA0B,EAAQ,QAClC9mB,EAAkB,EAAQ,QAC1B+mB,EAAY,EAAQ,QAEpB3gB,EAAWpG,EAAgB,YAG3BgnB,EAAmBX,EAAoBt5B,IACvCk6B,EAAyBZ,EAAoBa,UAHzB,mBAIpBC,EAA2Bd,EAAoBa,UAHlBE,2BAK7BC,EAAcrB,EAAe,SAC7BsB,EAAgBtB,EAAe,WAC/BuB,EAAUvB,EAAe,WACzBwB,EAAmBF,GAAiBA,EAAc9mB,UAClDinB,EAAmBF,GAAWA,EAAQ/mB,UACtC+N,EAAStS,EAAOsS,OAChBmZ,EAAYzrB,EAAOyrB,UACnBC,EAAqB1rB,EAAO0rB,mBAC5Bj/B,EAAqBuT,EAAOvT,mBAC5Bsa,EAASzc,EAAY,GAAGyc,QACxBjY,EAAOxE,EAAY,GAAGwE,MACtBN,EAAOlE,EAAY,GAAGkE,MACtB6C,EAAU/G,EAAY,GAAG+G,SACzBs6B,EAAQrhC,EAAY,GAAGqhC,OACvBC,EAASthC,EAAY,GAAGshC,QACxBt8B,EAAQhF,EAAY,GAAGgF,OACvB9E,EAAcF,EAAY,GAAGG,OAE7BohC,EAAO,MACPC,GAAY/9B,MAAM,GAElBg+B,GAAkB,SAAUC,GAC9B,OAAOF,GAAUE,EAAQ,KAAOF,GAAUE,EAAQ,GAAK1Z,EAAO,qBAAuB0Z,EAAQ,KAAM,QAGjGC,GAAgB,SAAUC,GAC5B,IACE,OAAOR,EAAmBQ,GAC1B,MAAO30B,GACP,OAAO20B,IAIPC,GAAc,SAAUvhC,GAC1B,IAAI6J,EAASpD,EAAQzG,EAAIihC,EAAM,KAC3BG,EAAQ,EACZ,IACE,OAAON,EAAmBj3B,GAC1B,MAAO8C,GACP,KAAOy0B,GACLv3B,EAASpD,EAAQoD,EAAQs3B,GAAgBC,KAAUC,IAErD,OAAOx3B,IAIPO,GAAO,eAEPo3B,GAAe,CACjB,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGLC,GAAW,SAAU1kB,GACvB,OAAOykB,GAAazkB,IAGlB2kB,GAAY,SAAU1hC,GACxB,OAAOyG,EAAQ5E,EAAmB7B,GAAKoK,GAAMq3B,KAG3CE,GAA0B9gB,GAA0B,SAAkBmL,EAAQ4V,GAChFzB,EAAiB1jC,KAAM,CACrBolC,KAxE6BtB,0BAyE7B1d,OAAQud,EAAuBpU,GAAQ9oB,QACvC4lB,MAAO,EACP8Y,KAAMA,MA5Ec,mBA8EF,WACpB,IAAIp7B,EAAQ85B,EAAyB7jC,MACjComB,EAASrc,EAAMqc,OACfiG,EAAQtiB,EAAMsiB,QAClB,IAAKjG,GAAUiG,GAASjG,EAAO7hB,OAE7B,OADAwF,EAAMqc,YAASzkB,EACR4hC,OAAuB5hC,GAAW,GAE3C,IAAI0jC,EAAQjf,EAAOiG,GACnB,OAAQtiB,EAAMo7B,MACZ,IAAK,OAAQ,OAAO5B,EAAuB8B,EAAMv+B,KAAK,GACtD,IAAK,SAAU,OAAOy8B,EAAuB8B,EAAMr+B,OAAO,GAC1D,OAAOu8B,EAAuB,CAAC8B,EAAMv+B,IAAKu+B,EAAMr+B,QAAQ,MACzD,GAECs+B,GAAuB,SAAUC,GACnCvlC,KAAKyG,QAAU,GACfzG,KAAKuZ,IAAM,UAEE5X,IAAT4jC,IACEhpB,EAASgpB,GAAOvlC,KAAKwlC,YAAYD,GAChCvlC,KAAKylC,WAA0B,iBAARF,EAAuC,MAApB7lB,EAAO6lB,EAAM,GAAapiC,EAAYoiC,EAAM,GAAKA,EAAOpC,EAAUoC,MAIrHD,GAAqBpoB,UAAY,CAC/BkoB,KAxGsB,kBAyGtBM,QAAS,SAAUnsB,GACjBvZ,KAAKuZ,IAAMA,EACXvZ,KAAKwxB,UAEPgU,YAAa,SAAU9Z,GACrB,IAEI3I,EAAUsC,EAAMsgB,EAAMC,EAAeC,EAAWC,EAAOC,EAFvDt/B,EAAUzG,KAAKyG,QACfu/B,EAAiB1C,EAAkB5X,GAGvC,GAAIsa,EAGF,IADA3gB,GADAtC,EAAWsgB,EAAY3X,EAAQsa,IACf3gB,OACPsgB,EAAOnnB,EAAK6G,EAAMtC,IAAWkjB,MAAM,CAG1C,GADAJ,GADAD,EAAgBvC,EAAYzc,EAAS+e,EAAK3+B,SAChBqe,MAEvBygB,EAAQtnB,EAAKqnB,EAAWD,IAAgBK,OACxCF,EAASvnB,EAAKqnB,EAAWD,IAAgBK,OACzCznB,EAAKqnB,EAAWD,GAAeK,KAChC,MAAM,IAAI7B,EAAU,mCACtBj9B,EAAKV,EAAS,CAAEK,IAAKq8B,EAAU2C,EAAM9+B,OAAQA,MAAOm8B,EAAU4C,EAAO/+B,cAElE,IAAK,IAAIF,KAAO4kB,EAAYuX,EAAOvX,EAAQ5kB,IAChDK,EAAKV,EAAS,CAAEK,IAAKA,EAAKE,MAAOm8B,EAAUzX,EAAO5kB,OAGtD2+B,WAAY,SAAUhiC,GACpB,GAAIA,EAKF,IAJA,IAGIuH,EAAWq6B,EAHX5+B,EAAUzG,KAAKyG,QACfy/B,EAAaj+B,EAAMxE,EAAO,KAC1B4oB,EAAQ,EAELA,EAAQ6Z,EAAW3hC,SACxByG,EAAYk7B,EAAW7Z,MACT9nB,SACZ8gC,EAAQp9B,EAAM+C,EAAW,KACzB7D,EAAKV,EAAS,CACZK,IAAKg+B,GAAYR,EAAMe,IACvBr+B,MAAO89B,GAAYr9B,EAAK49B,EAAO,UAMzCJ,UAAW,WAKT,IAJA,IAGII,EAHA5+B,EAAUzG,KAAKyG,QACf2G,EAAS,GACTif,EAAQ,EAELA,EAAQ5lB,EAAQlC,QACrB8gC,EAAQ5+B,EAAQ4lB,KAChBllB,EAAKiG,EAAQ63B,GAAUI,EAAMv+B,KAAO,IAAMm+B,GAAUI,EAAMr+B,QAC1D,OAAOS,EAAK2F,EAAQ,MAExBokB,OAAQ,WACNxxB,KAAKyG,QAAQlC,OAAS,EACtBvE,KAAKylC,WAAWzlC,KAAKuZ,IAAI9V,QAE3B0iC,UAAW,WACLnmC,KAAKuZ,KAAKvZ,KAAKuZ,IAAIiY,WAM3B,IAAI4U,GAA6B,WAC/BpD,EAAWhjC,KAAMqmC,IACjB,IAAId,EAAOjhC,UAAUC,OAAS,EAAID,UAAU,QAAK3C,EAC7CoI,EAAQ25B,EAAiB1jC,KAAM,IAAIslC,GAAqBC,IACvD5C,IAAa3iC,KAAK0I,KAAOqB,EAAMtD,QAAQlC,SAG1C8hC,GAA2BD,GAA2BlpB,UA6J1D,GA3JA4lB,EAAeuD,GAA0B,CAGvCC,OAAQ,SAAgB5tB,EAAM1R,GAC5B,IAAI+C,EAAQ45B,EAAuB3jC,MACnCwjC,EAAwBl/B,UAAUC,OAAQ,GAC1C4C,EAAK4C,EAAMtD,QAAS,CAAEK,IAAKq8B,EAAUzqB,GAAO1R,MAAOm8B,EAAUn8B,KACxD27B,GAAa3iC,KAAKuE,SACvBwF,EAAMo8B,aAIR,OAAU,SAAUztB,GAQlB,IAPA,IAAI3O,EAAQ45B,EAAuB3jC,MAC/BuE,EAASi/B,EAAwBl/B,UAAUC,OAAQ,GACnDkC,EAAUsD,EAAMtD,QAChBK,EAAMq8B,EAAUzqB,GAChB6tB,EAAShiC,EAAS,OAAI5C,EAAY2C,UAAU,GAC5C0C,OAAmBrF,IAAX4kC,EAAuBA,EAASpD,EAAUoD,GAClDla,EAAQ,EACLA,EAAQ5lB,EAAQlC,QAAQ,CAC7B,IAAI8gC,EAAQ5+B,EAAQ4lB,GACpB,GAAIgZ,EAAMv+B,MAAQA,QAAkBnF,IAAVqF,GAAuBq+B,EAAMr+B,QAAUA,EAG1DqlB,SADL,GADAkY,EAAO99B,EAAS4lB,EAAO,QACT1qB,IAAVqF,EAAqB,MAGxB27B,IAAa3iC,KAAK0I,KAAOjC,EAAQlC,QACtCwF,EAAMo8B,aAIR37B,IAAK,SAAakO,GAChB,IAAIjS,EAAUk9B,EAAuB3jC,MAAMyG,QAC3C+8B,EAAwBl/B,UAAUC,OAAQ,GAG1C,IAFA,IAAIuC,EAAMq8B,EAAUzqB,GAChB2T,EAAQ,EACLA,EAAQ5lB,EAAQlC,OAAQ8nB,IAC7B,GAAI5lB,EAAQ4lB,GAAOvlB,MAAQA,EAAK,OAAOL,EAAQ4lB,GAAOrlB,MAExD,OAAO,MAITw/B,OAAQ,SAAgB9tB,GACtB,IAAIjS,EAAUk9B,EAAuB3jC,MAAMyG,QAC3C+8B,EAAwBl/B,UAAUC,OAAQ,GAI1C,IAHA,IAAIuC,EAAMq8B,EAAUzqB,GAChBtL,EAAS,GACTif,EAAQ,EACLA,EAAQ5lB,EAAQlC,OAAQ8nB,IACzB5lB,EAAQ4lB,GAAOvlB,MAAQA,GAAKK,EAAKiG,EAAQ3G,EAAQ4lB,GAAOrlB,OAE9D,OAAOoG,GAIT1B,IAAK,SAAagN,GAOhB,IANA,IAAIjS,EAAUk9B,EAAuB3jC,MAAMyG,QACvClC,EAASi/B,EAAwBl/B,UAAUC,OAAQ,GACnDuC,EAAMq8B,EAAUzqB,GAChB6tB,EAAShiC,EAAS,OAAI5C,EAAY2C,UAAU,GAC5C0C,OAAmBrF,IAAX4kC,EAAuBA,EAASpD,EAAUoD,GAClDla,EAAQ,EACLA,EAAQ5lB,EAAQlC,QAAQ,CAC7B,IAAI8gC,EAAQ5+B,EAAQ4lB,KACpB,GAAIgZ,EAAMv+B,MAAQA,SAAkBnF,IAAVqF,GAAuBq+B,EAAMr+B,QAAUA,GAAQ,OAAO,EAElF,OAAO,GAITyC,IAAK,SAAaiP,EAAM1R,GACtB,IAAI+C,EAAQ45B,EAAuB3jC,MACnCwjC,EAAwBl/B,UAAUC,OAAQ,GAO1C,IANA,IAKI8gC,EALA5+B,EAAUsD,EAAMtD,QAChBggC,GAAQ,EACR3/B,EAAMq8B,EAAUzqB,GAChBguB,EAAMvD,EAAUn8B,GAChBqlB,EAAQ,EAELA,EAAQ5lB,EAAQlC,OAAQ8nB,KAC7BgZ,EAAQ5+B,EAAQ4lB,IACNvlB,MAAQA,IACZ2/B,EAAOlC,EAAO99B,EAAS4lB,IAAS,IAElCoa,GAAQ,EACRpB,EAAMr+B,MAAQ0/B,IAIfD,GAAOt/B,EAAKV,EAAS,CAAEK,IAAKA,EAAKE,MAAO0/B,IACxC/D,IAAa3iC,KAAK0I,KAAOjC,EAAQlC,QACtCwF,EAAMo8B,aAIR9+B,KAAM,WACJ,IAAI0C,EAAQ45B,EAAuB3jC,MACnCyjC,EAAU15B,EAAMtD,SAAS,SAAUa,EAAGC,GACpC,OAAOD,EAAER,IAAMS,EAAET,IAAM,GAAK,KAE9BiD,EAAMo8B,aAGRn6B,QAAS,SAAiB26B,GAKxB,IAJA,IAGItB,EAHA5+B,EAAUk9B,EAAuB3jC,MAAMyG,QACvCmgC,EAAgB1D,EAAKyD,EAAUriC,UAAUC,OAAS,EAAID,UAAU,QAAK3C,GACrE0qB,EAAQ,EAELA,EAAQ5lB,EAAQlC,QAErBqiC,GADAvB,EAAQ5+B,EAAQ4lB,MACIrlB,MAAOq+B,EAAMv+B,IAAK9G,OAI1Cwd,KAAM,WACJ,OAAO,IAAI0nB,GAAwBllC,KAAM,SAG3CmmB,OAAQ,WACN,OAAO,IAAI+e,GAAwBllC,KAAM,WAG3CyG,QAAS,WACP,OAAO,IAAIy+B,GAAwBllC,KAAM,aAE1C,CAAEyY,YAAY,IAGjB+L,EAAc6hB,GAA0BvjB,EAAUujB,GAAyB5/B,QAAS,CAAEiS,KAAM,YAI5F8L,EAAc6hB,GAA0B,YAAY,WAClD,OAAO1C,EAAuB3jC,MAAMilC,cACnC,CAAExsB,YAAY,IAIbkqB,GAAaE,EAAsBwD,GAA0B,OAAQ,CACvE77B,IAAK,WACH,OAAOm5B,EAAuB3jC,MAAMyG,QAAQlC,QAE9CuU,cAAc,EACdL,YAAY,IAGd6L,EAAe8hB,GAvUS,mBAyUxB5qB,EAAE,CAAE7C,QAAQ,EAAMlZ,aAAa,EAAMic,QAASknB,GAAkB,CAC9Dp3B,gBAAiB46B,MAIdxD,GAAkB1qB,EAAW+rB,GAAU,CAC1C,IAAI4C,GAAa5jC,EAAYkhC,EAAiBz4B,KAC1Co7B,GAAa7jC,EAAYkhC,EAAiB16B,KAE1Cs9B,GAAqB,SAAUxB,GACjC,GAAIhpB,EAASgpB,GAAO,CAClB,IACIyB,EADAC,EAAO1B,EAAK0B,KAEhB,GAtVkB,oBAsVdzqB,EAAQyqB,GAKV,OAJAD,EAAUzB,EAAKyB,QAAU,IAAI/C,EAAQsB,EAAKyB,SAAW,IAAI/C,EACpD4C,GAAWG,EAAS,iBACvBF,GAAWE,EAAS,eAAgB,mDAE/BtjB,EAAO6hB,EAAM,CAClB0B,KAAM7D,EAAyB,EAAGD,EAAU8D,IAC5CD,QAAS5D,EAAyB,EAAG4D,KAGzC,OAAOzB,GAWX,GARIrtB,EAAW6rB,IACbvoB,EAAE,CAAE7C,QAAQ,EAAMF,YAAY,EAAMyuB,gBAAgB,EAAMxrB,QAAQ,GAAQ,CACxEyrB,MAAO,SAAe5mC,GACpB,OAAOwjC,EAAYxjC,EAAO+D,UAAUC,OAAS,EAAIwiC,GAAmBziC,UAAU,IAAM,OAKtF4T,EAAW8rB,GAAgB,CAC7B,IAAIoD,GAAqB,SAAiB7mC,GAExC,OADAyiC,EAAWhjC,KAAMkkC,GACV,IAAIF,EAAczjC,EAAO+D,UAAUC,OAAS,EAAIwiC,GAAmBziC,UAAU,IAAM,KAG5F4/B,EAAiBzkC,YAAc2nC,GAC/BA,GAAmBlqB,UAAYgnB,EAE/B1oB,EAAE,CAAE7C,QAAQ,EAAMlZ,aAAa,EAAMynC,gBAAgB,EAAMxrB,QAAQ,GAAQ,CACzE2rB,QAASD,MAKf/jC,EAAOC,QAAU,CACfkI,gBAAiB46B,GACjBkB,SAAU3D,I,oCC3ZZ,IAAInoB,EAAI,EAAQ,QACZmnB,EAAc,EAAQ,QACtBhqB,EAAS,EAAQ,QACjB1V,EAAc,EAAQ,QACtBggC,EAAS,EAAQ,QACjB/qB,EAAa,EAAQ,QACrByJ,EAAgB,EAAQ,QACxBze,EAAW,EAAQ,QACnB2/B,EAAwB,EAAQ,QAChC0E,EAA4B,EAAQ,QAEpCC,EAAe7uB,EAAOkK,OACtB4kB,EAAkBD,GAAgBA,EAAatqB,UAEnD,GAAIylB,GAAezqB,EAAWsvB,OAAoB,gBAAiBC,SAElC9lC,IAA/B6lC,IAAeE,aACd,CACD,IAAIC,EAA8B,GAE9BC,EAAgB,WAClB,IAAIF,EAAcpjC,UAAUC,OAAS,QAAsB5C,IAAjB2C,UAAU,QAAmB3C,EAAYuB,EAASoB,UAAU,IAClG8I,EAASuU,EAAc8lB,EAAiBznC,MACxC,IAAIwnC,EAAaE,QAED/lC,IAAhB+lC,EAA4BF,IAAiBA,EAAaE,GAE9D,MADoB,KAAhBA,IAAoBC,EAA4Bv6B,IAAU,GACvDA,GAGTm6B,EAA0BK,EAAeJ,GACzCI,EAAc1qB,UAAYuqB,EAC1BA,EAAgBhoC,YAAcmoC,EAE9B,IAAIC,EAAkE,kCAAlD9c,OAAOyc,EAAa,0BACpCM,EAAkB7kC,EAAYwkC,EAAgBM,SAC9CC,EAA0B/kC,EAAYwkC,EAAgBvkC,UACtD0kB,EAAS,wBACT5d,EAAU/G,EAAY,GAAG+G,SACzB7G,EAAcF,EAAY,GAAGG,OAEjCy/B,EAAsB4E,EAAiB,cAAe,CACpD3uB,cAAc,EACdtO,IAAK,WACH,IAAIy9B,EAASH,EAAgB9nC,MAC7B,GAAIijC,EAAO0E,EAA6BM,GAAS,MAAO,GACxD,IAAI9kB,EAAS6kB,EAAwBC,GACjCC,EAAOL,EAAgB1kC,EAAYggB,EAAQ,GAAI,GAAKnZ,EAAQmZ,EAAQyE,EAAQ,MAChF,MAAgB,KAATsgB,OAAcvmC,EAAYumC,KAIrC1sB,EAAE,CAAE7C,QAAQ,EAAMlZ,aAAa,EAAMic,QAAQ,GAAQ,CACnDmH,OAAQ+kB,M,uGCMZhpB,YAAqB,CACjBC,SAAU,iDACVC,eAtCkBxe,MAClBye,EACAopB,EACA37B,KAEA,GAAI5C,QAAUA,OAAOw+B,WAAax+B,OAAOw+B,UAAU15B,UAAW,CAC1D,MAAM25B,EAAc3hC,MAAM8K,QAAQ22B,GAAcA,EAAW,GAAKA,EAChE,IAAIG,EAAuC,GAG3C,GAAID,GAAeA,EAAYE,YAAc7hC,MAAM8K,QAAQ62B,EAAYE,aAAeF,EAAYE,WAAWhkC,OAAS,EAClH,IACI+jC,QAA6BE,YAAiCH,EAAYE,WAAY/7B,GACxF,MAAO0D,GACL1D,EAAckC,UAAUwB,MAAM,+DAAgEA,GAKtG1D,EAAc5M,eAAeuf,cAAcE,IAAeopB,UAAY,CAClEroC,GAAIioC,EAAYx1B,GAChB61B,YAAaL,EAAY76B,UAAY66B,EAAY76B,UAAUtK,WAAa,GACxEylC,QAASN,EAAYO,oBACrBC,IAAKR,EAAYS,UAEjBh9B,SAAUw8B,GAId1+B,OAAOw+B,UAAU15B,UAAUq6B,SACvB1pB,IAAeopB,SACMj8B,EAAc5M,eAAeuf,cAAcE,IAAeopB,aAQvFlpB,cAjDmBjf,e,oCCfvB,IAAI0oC,EAAkB,EAAQ,QAC1BC,EAAkB,EAAQ,QAC1BC,EAAoB,EAAQ,QAG5BC,EAAe,SAAUC,GAC3B,OAAO,SAAUvsB,EAAOwsB,EAAIC,GAC1B,IAGItiC,EAHAsR,EAAI0wB,EAAgBnsB,GACpBtY,EAAS2kC,EAAkB5wB,GAC3B+T,EAAQ4c,EAAgBK,EAAW/kC,GAIvC,GAAI6kC,GAAeC,GAAOA,GAAI,KAAO9kC,EAAS8nB,GAG5C,IAFArlB,EAAQsR,EAAE+T,OAEIrlB,EAAO,OAAO,OAEvB,KAAMzC,EAAS8nB,EAAOA,IAC3B,IAAK+c,GAAe/c,KAAS/T,IAAMA,EAAE+T,KAAWgd,EAAI,OAAOD,GAAe/c,GAAS,EACnF,OAAQ+c,IAAgB,IAI9B/lC,EAAOC,QAAU,CAGfuB,SAAUskC,GAAa,GAGvBhe,QAASge,GAAa,K,oCC9BxB,IAAIxwB,EAAS,EAAQ,QAGjB4wB,EAAiBjrB,OAAOirB,eAE5BlmC,EAAOC,QAAU,SAAUwD,EAAKE,GAC9B,IACEuiC,EAAe5wB,EAAQ7R,EAAK,CAAEE,MAAOA,EAAO8R,cAAc,EAAME,UAAU,IAC1E,MAAO9I,GACPyI,EAAO7R,GAAOE,EACd,OAAOA,I,gUCYJ,MAAMmhB,EAAb1oB,cAEoB,KAAAggC,aAAyB,CACrC,4DACA,+DACA,oDACA,kEACA,kEACA,wDACA,kEACA,yDACA,uEAOG,KAAA5/B,YAAc,IAAc,eAM5B,KAAAC,mBAAqB,IAAc,eAMnC,KAAAC,cAAgB,IAAiB,eAQrC,MAAMypC,EAA8B3mC,GAChC,IAAIslB,EASR7nB,eAAempC,EAAsBlpC,EAA0BsM,GAKlE,aAJ2B6C,6BAA2BswB,sBAClD,CAAEj/B,cAAe8L,EAAK7L,oBAAqBC,IAAyBC,qCAAqC2L,IACzGtM,EAAMk/B,cAUP,MAAMvX,EAAkC/nB,YAA2C,CACtFC,GAAI,8DACJC,OAAQopC,EACRlpC,MAAOipC,IAGIthB,a,oCCzFf,IAAIgb,EAAO,EAAQ,QACf1kB,EAAO,EAAQ,QACfoI,EAAW,EAAQ,QACnB8iB,EAAc,EAAQ,QACtBC,EAAwB,EAAQ,QAChCT,EAAoB,EAAQ,QAC5BvnB,EAAgB,EAAQ,QACxB0hB,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5BsG,EAAgB,EAAQ,QAExBC,EAAazF,UAEb0F,EAAS,SAAUC,EAAS38B,GAC9BpN,KAAK+pC,QAAUA,EACf/pC,KAAKoN,OAASA,GAGZ48B,EAAkBF,EAAO5sB,UAE7B7Z,EAAOC,QAAU,SAAU2mC,EAAUC,EAAiB3xB,GACpD,IAMIwK,EAAUonB,EAAQ9d,EAAO9nB,EAAQ6I,EAAQiY,EAAMsgB,EAN/CyE,EAAO7xB,GAAWA,EAAQ6xB,KAC1BC,KAAgB9xB,IAAWA,EAAQ8xB,YACnCC,KAAe/xB,IAAWA,EAAQ+xB,WAClCC,KAAiBhyB,IAAWA,EAAQgyB,aACpCC,KAAiBjyB,IAAWA,EAAQiyB,aACpCC,EAAKvH,EAAKgH,EAAiBE,GAG3BM,EAAO,SAAUC,GAEnB,OADI5nB,GAAU6mB,EAAc7mB,EAAU,SAAU4nB,GACzC,IAAIb,GAAO,EAAMa,IAGtBC,EAAS,SAAU5jC,GACrB,OAAIqjC,GACFzjB,EAAS5f,GACFwjC,EAAcC,EAAGzjC,EAAM,GAAIA,EAAM,GAAI0jC,GAAQD,EAAGzjC,EAAM,GAAIA,EAAM,KAChEwjC,EAAcC,EAAGzjC,EAAO0jC,GAAQD,EAAGzjC,IAG9C,GAAIsjC,EACFvnB,EAAWknB,EAASlnB,cACf,GAAIwnB,EACTxnB,EAAWknB,MACN,CAEL,KADAE,EAAS7G,EAAkB2G,IACd,MAAM,IAAIJ,EAAWH,EAAYO,GAAY,oBAE1D,GAAIN,EAAsBQ,GAAS,CACjC,IAAK9d,EAAQ,EAAG9nB,EAAS2kC,EAAkBe,GAAW1lC,EAAS8nB,EAAOA,IAEpE,IADAjf,EAASw9B,EAAOX,EAAS5d,MACX1K,EAAcqoB,EAAiB58B,GAAS,OAAOA,EAC7D,OAAO,IAAI08B,GAAO,GAEtB/mB,EAAWsgB,EAAY4G,EAAUE,GAInC,IADA9kB,EAAOilB,EAAYL,EAAS5kB,KAAOtC,EAASsC,OACnCsgB,EAAOnnB,EAAK6G,EAAMtC,IAAWkjB,MAAM,CAC1C,IACE74B,EAASw9B,EAAOjF,EAAK3+B,OACrB,MAAOkJ,GACP05B,EAAc7mB,EAAU,QAAS7S,GAEnC,GAAqB,iBAAV9C,GAAsBA,GAAUuU,EAAcqoB,EAAiB58B,GAAS,OAAOA,EAC1F,OAAO,IAAI08B,GAAO,K,4GChDf,MAAMe,EAGTprC,YAAYg+B,GAIL,KAAA59B,YAAc,IAAM,iCAEpB,KAAAC,mBAAqB,IAAM,iCAE3B,KAAAC,cAAgB,IAAiB,OAPpCC,KAAKy9B,cAAgBA,GAuDtB,MAAMqN,EAA4C3qC,YAAwC,CAC7FC,GAAI,yFACJC,OA1BGC,eAA+CC,EAAuCsM,GACzF,IACI,MAAM,cAAE4wB,GAAkBl9B,EACpBwqC,QAA2BtZ,sBAC7B,CACI1wB,cAAe8L,GAEnB4wB,GAEJ,GAAIsN,EACA,OAAOA,EAGX,MADAl+B,EAAI6B,UAAUwB,MAAM,wBAAwButB,EAAc5qB,yBACpD,IAAI7P,MAAM,kCAClB,MAAOkN,GAEL,MADArD,EAAI6B,UAAUwB,MAAM,oCAAqCA,GACnDA,IAWV3P,MA3C0CyqC,CAC1CnoC,EACA46B,KAEA,MAAM,eAAE79B,GAAmBiD,EAC3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,+DAEpB,OAAO,IAAI6nC,EAA+BpN,MAsC/BqN,O,oCCnFf,IAAIG,EAAa,EAAQ,QAErBxrB,EAAQrD,KAAKqD,MAEbpY,EAAO,SAAU6jC,EAAOC,GAC1B,IAAI5mC,EAAS2mC,EAAM3mC,OAEnB,GAAIA,EAAS,EAKX,IAHA,IACI0O,EAASm4B,EADT91B,EAAI,EAGDA,EAAI/Q,GAAQ,CAGjB,IAFA6mC,EAAI91B,EACJrC,EAAUi4B,EAAM51B,GACT81B,GAAKD,EAAUD,EAAME,EAAI,GAAIn4B,GAAW,GAC7Ci4B,EAAME,GAAKF,IAAQE,GAEjBA,IAAM91B,MAAK41B,EAAME,GAAKn4B,QAY5B,IARA,IAAIo4B,EAAS5rB,EAAMlb,EAAS,GACxB+mC,EAAOjkC,EAAK4jC,EAAWC,EAAO,EAAGG,GAASF,GAC1CI,EAAQlkC,EAAK4jC,EAAWC,EAAOG,GAASF,GACxCK,EAAUF,EAAK/mC,OACfknC,EAAUF,EAAMhnC,OAChBmnC,EAAS,EACTC,EAAS,EAEND,EAASF,GAAWG,EAASF,GAClCP,EAAMQ,EAASC,GAAWD,EAASF,GAAWG,EAASF,EACnDN,EAAUG,EAAKI,GAASH,EAAMI,KAAY,EAAIL,EAAKI,KAAYH,EAAMI,KACrED,EAASF,EAAUF,EAAKI,KAAYH,EAAMI,KAIlD,OAAOT,GAGT7nC,EAAOC,QAAU+D,G,oCCzCjB,wCAgCelH,YAA2B,CACtCC,GAAI,8DACJC,OAAmC2a,eACnCza,MArBiBsC,IACjB,GAAIA,EAAUjD,gBAAkBiD,EAAUjD,eAAe6S,MAAQ5P,EAAUjD,eAAe6S,KAAKC,gBAC3F,OAAOk5B,8CACH,CACI58B,OAAQ,CACJC,IAAK,IACL4d,KAAM,IAKd,MAIR,MAAM,IAAI7pB,MAAM,yE,2WCGb,MAAM6oC,EAAc,CACvBC,0BAA2B,eAC3BC,sBAAuB,oBACvBC,uBAAwB,qBACxBC,oBAAqB,WACrBC,qBAAsB,YACtBC,qBAAsB,YACtBC,sBAAuB,aACvBC,wBAAyB,cACzBC,qBAAsB,WACtBC,0BAA2B,iBAMxB,MAAMC,EAGT/sC,YAAYsD,GAIL,KAAAlD,YAAc,IAAMsG,wBAAc,oBAAqBnG,KAAK+C,aAE5D,KAAAjD,mBAAqB,IAAM,oBAE3B,KAAAC,cAAgB,IAAiB,UAPpCC,KAAK+C,YAAcA,GAepBzC,eAAemsC,EAA6BlsC,EAA0BsM,GACzE,OAAO6/B,sCAA4B,CAAE3rC,cAAe8L,IAAOtK,KAAMoqC,IACxBA,EAAoBC,oBAAsB,IAC1ErrC,IAA4CsrC,IACzC,IAAI/lC,EAAM,GACV,GAAI+lC,EAAWzgC,WACX,OAAQygC,EAAWzgC,WAAW0gC,eAC1B,IAAK,OACDhmC,EAAM+lC,EAAWxgC,aAAew/B,EAAYK,qBAAuBL,EAAYI,oBAC/E,MACJ,IAAK,QACDnlC,EAAM+lC,EAAWxgC,aAAew/B,EAAYO,sBAAwBP,EAAYM,qBAChF,MACJ,IAAK,gBACDrlC,EAAM+lC,EAAWxgC,aAAew/B,EAAYG,uBAAyBH,EAAYE,sBACjF,MACJ,IAAK,UACDjlC,EAAM+kC,EAAYC,0BAClB,MACJ,IAAK,mBACDhlC,EAAM+kC,EAAYQ,wBAClB,MACJ,IAAK,WACDvlC,EAAM+kC,EAAYS,qBAClB,MACJ,IAAK,gBACDxlC,EAAM+kC,EAAYU,+BAK1B1/B,EAAI6B,UAAUq+B,QAAQ,2DAE1B,GAAIjmC,EACA,MAAO,CACHA,MACA+lC,gBAKX9hC,OAAOiiC,UAIb,MAAM1K,EAAez/B,GACjB,IAAI2pC,EAAkB3pC,EAAUjD,eAAemD,aAG7CkqC,EAAyC9sC,YAA2B,CAC7EC,GAAI,qFACJC,OAA8CosC,EAC9ClsC,MAAO+hC,IAGI2K,a,gFChHR,MAAMC,EASTztC,cACIO,KAAKmtC,aAAe,GAOjBC,UAAUC,GACbrtC,KAAKmtC,aAAahmC,KAAKkmC,GAOpBC,YAAYC,GACfvtC,KAAKmtC,aAAentC,KAAKmtC,aAAapiC,OAAOkI,GAAWA,EAAQs6B,aAAeA,GAM5EC,iBACHxtC,KAAKmtC,aAAe,GAOjBM,UACHztC,KAAKmtC,aAAanhC,QAAQ0hC,IACtBA,EAAWC,e,oCCnDvB,IAAIC,EAA0B,EAAQ,QAItCvqC,EAAOC,QAAU,SAAUuqC,EAAetpC,GACxC,OAAO,IAAKqpC,EAAwBC,GAA7B,CAAwD,IAAXtpC,EAAe,EAAIA,K,8GC6BlE,MAAMupC,EAKTruC,YAAYmC,EAAuCZ,GAK5C,KAAAnB,YAAc,IAAM,0BAEpB,KAAAC,mBAAqB,IAAM,eAE3B,KAAAC,cAAgB,IAAiB,OARpCC,KAAK4B,eAAiBA,EACtB5B,KAAKgB,oBAAsBA,GA0CEb,YAA2B,CAC5DC,GAAI,eACJC,OArBGC,eAA2BC,EAAyBC,GAAuB,IAAA2O,EAC9E,GAAK3O,SAAuB,QAAhB2O,EAAP3O,EAASZ,sBAAc,IAAAuP,GAAM,QAANA,EAAvBA,EAAyBsD,YAAI,IAAAtD,IAA7BA,EAA+BuD,gBAChC,MAAM,IAAI1P,MAAM,8DAGpBzC,EAAMqB,eAAemsC,kBAAoB,CAACC,cAAYC,mBAEtD,MAAMC,QAAwBC,YAAgB,CAAEptC,cAAeP,IAC/DD,EAAMqB,eAAewsC,kBAAoBF,aAAe,EAAfA,EAAiBE,kBAE1D,MAAM/6B,QAAiBg7B,kBAAY,IAAI96B,mBAAiB/S,EAAQZ,eAAemD,aAAcvC,GAG7F,OAFAD,EAAMqB,eAAeiE,WAAawN,EAASI,cAEpC66B,yBAAuBC,iBAC1B,CAAExtC,cAAeP,EAASQ,oBAAqBT,EAAMS,qBACrDT,EAAMqB,iBAOVrB,MAnCmCsC,IACnC,MAAM,eAAEjD,GAAmBiD,EAG3B,IAAKjD,EAAe6S,KAAKC,gBACrB,MAAM,IAAI1P,MAAM,0BAGpB,MAAMhC,EAA4CC,IAAyBugB,cAAc3e,GAAW4e,oBAEpG,OAAO,IAAIqsB,EAnCJ,CACHU,wBAAyB,CAACC,oBAAkB3lC,OAkCQ9H,O,0LCpD5D,MAUa0tC,EAAwBA,CAAC7qC,EAAyByqB,EAAoBzW,IACzD,oBAAXjO,OACA/F,EAGJ8qC,EAAgB9qC,EAAQyqB,EAAYzW,GAMlC+2B,EAAsBA,CAACC,EAA+Bl3B,KAC/D,MAAMm3B,EAAWxwB,OAAOd,KAAKqxB,EAAaE,SAAW,IACrD,IAAK,IAAIz5B,EAAI,EAAGA,EAAIw5B,EAASvqC,SAAU+Q,EAAG,CACtC,MAAM05B,EAAkCH,EAAaE,QAASD,EAASx5B,IACvE,IAAK,IAAI81B,EAAI,EAAGA,EAAI4D,EAAazqC,SAAU6mC,EACvCzzB,EAAaM,IAAI,CAAEJ,SAAUo3B,IAAiCnoC,IAAKkoC,EAAa5D,GAAGhrC,IAAM,CAAE6T,KAAM,CAAC,OAClG26B,EAAoBI,EAAa5D,GAAIzzB,KAUpCu3B,EAAaA,CAAC34B,EAAkB44B,KACzC,GAAIA,EAAS/uC,KAAOmW,EAChB,OAAO44B,EAGX,MAAML,EAAWxwB,OAAOd,KAAK2xB,EAASJ,SAAW,IACjD,IAAK,IAAIz5B,EAAI,EAAGA,EAAIw5B,EAASvqC,SAAU+Q,EAAG,CACtC,MAAM05B,EAAkCG,EAASJ,QAASD,EAASx5B,IACnE,IAAK,IAAI81B,EAAI,EAAGA,EAAI4D,EAAazqC,SAAU6mC,EAAG,CAC1C,MAAMgE,EAAMF,EAAW34B,EAAUy4B,EAAa5D,IAC9C,GAAIgE,EACA,OAAOA,KAWjBT,EAAkBA,CAAC9qC,EAAyByqB,EAAoB+gB,KAClE,MAAM1B,EAAyC,CAC3CnjC,IAAGA,CAAC4b,EAAyBtf,KAEpBsf,EAAuB,kBACxBA,EAAuB,gBAAIkI,GAG1BlI,EAAuB,kBACxBA,EAAuB,gBAAIipB,GAGJ,iBAAhBjpB,EAAOtf,IAAqC,OAAhBsf,EAAOtf,IAE1Csf,EAAOtf,GAAqB,gBAAIsf,EAAuB,gBAAI,GAAGA,EAAuB,mBAAKtf,IAAQA,EAC3F,IAAIwoC,MAAMlpB,EAAOtf,GAAM6mC,IAEvBvnB,EAAOtf,IAKtB2C,IAAI2c,EAAyBtf,EAAayoC,GACtC,IAAIC,EAA+B,GACnC,MAAMj5B,EAAW6P,EAAuB,gBAClCvO,EAA2BuO,EAAuB,gBAExD,IAAK7P,IAAasB,EACd,OAAO,EAGX,IAAI43B,EAAe,CAAC3oC,GAEpB,GAAIsf,EAAuB,gBAAG,CAC1B,MAAMspB,EAAmBtpB,EAAuB,gBAAGne,MAAM,KACzDwnC,EAAuB,UAAR3oC,EAAkB4oC,EAAaA,EAAW7oB,OAAO,CAAC/f,IAMrE,GAAiB,8BAAbyoC,EAA0C,CAG1C,GAFAC,EAA2B5lC,OAAQw+B,UAAUuH,gBAAgBC,sBAAsBr5B,IAE9Ei5B,GAAsB,IAAIjrC,OAAS,EAAG,CAEvC,GAAkC,IAA9BirC,EAAmBjrC,QAA0C,MAA1BirC,EAAmB,GACtD,MAAM,IAAIK,IAAU,gCAGxB,MAAMC,EAAWL,EAAahoC,KAAK,KAInC,GAAI+nC,EAAmBzkC,OAAOglC,GAAKD,IAAaC,GAAKD,EAAS5qC,WAAc6qC,EAAH,MAAUxrC,OAAS,EACxF,MAAM,IAAIsrC,IAAU,gCAM5B,MAAMG,EAA+BC,EAAsBp4B,IAAa,GACxE,MAAM,IAAIg4B,IAAU,+BAAgCK,IAAeF,EAAmBnrC,SAAS4qC,EAAahoC,KAAK,OAUrH,OALA0oC,SAASC,cACL,IAAIC,YAAYC,IAA0B,CACtCC,OAAQ,CAAEh6B,WAAUvP,MAAOuoC,EAAUiB,SAAUf,OAGhD,IAIf,OAAO,IAAIH,MAAMzrC,EAAQ8pC,IAMvBsC,EAAyBp4B,IAC3B,QAAwBlW,WAAXiI,OAAuB,CAChC,MAAM+lC,EAAwB/lC,OAAQw+B,UAAUuH,gBAChD,OAAOA,GAAmBA,EAAgBc,iBAAmBd,EAAgBc,gBAAgBC,yBAAyB74B,GAG1H,MAAO,K,yFC8qBX,MAAM84B,EAAY,IAj0BlB,MAAAlxC,cACY,KAAAmxC,YAA2B,CAC/B,CACIC,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,YAId,KAAAC,YAA2B,CAC/B,CACIF,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,YAId,KAAAE,YAA2B,CAC/B,CACIH,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,YAId,KAAAG,YAA2B,CAC/B,CACIJ,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,UAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,WAElB,CACID,UAAW,OACXC,aAAc,YAIfI,6BACH,OAAOvuC,QAAQ0K,QAAQ,IAEpB8jC,qBAAqBttC,GAExB,OADAutC,QAAQ1hB,IAAI,yEAAyE7rB,IAC9E,EAGJwtC,iBACH,OAAO1uC,QAAQ0K,QAAQ,CACnBqL,KAAM,sBA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","file":"static/js/14.b9349067b2ee94a37a07.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { ProductDimensionAvailabilitySearchCriteria, ProductsDataActions } from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions, getSelectedProductIdFromActionInput } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Product dimension with availability Input.\n */\nexport class ProductDimensionsWithAvailabilitiesInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId?: number;\n\n public constructor(productId: number, channelId: number, requestContext?: IRequestContext) {\n this.productId = productId;\n this.channelId = channelId;\n\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n /**\n * Cache key.\n * @returns String.\n */\n public getCacheKey: () => string = () => 'ProductDimensionsWithAvailabilities';\n\n /**\n * Cache object type.\n * @returns String.\n */\n public getCacheObjectType: () => string = () => 'ProductDimensionsWithAvailabilities';\n\n /**\n * Cache type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Create input method for the get-product-dimension-with-availability data action.\n * @param inputData - The input data passed to the createInput method.\n * @returns - The input for the data action.\n */\nexport const createProductDimensionsWithAvailabilitiesInput = (\n inputData: ICreateActionContext>\n): ProductDimensionsWithAvailabilitiesInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new ProductDimensionsWithAvailabilitiesInput(\n +productId,\n +inputData.requestContext.apiSettings.channelId,\n inputData.requestContext\n );\n }\n throw new Error('Unable to create ProductDimensionsWithAvailabilitiesInput, no productId found on module config or query');\n};\n\n/**\n * Action method for the getProductDimensionsWithAvailabilities Data Action.\n * @param input - Input for the data action.\n * @param context - Action context.\n * @returns Product dimensions with availabilities.\n */\nexport async function getProductDimensionsWithAvailabilitiesAction(\n input: ProductDimensionsWithAvailabilitiesInput,\n context: IActionContext\n): Promise {\n const activeProducts = ArrayExtensions.validValues(\n await ProductsDataActions.getByIdsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n input.channelId,\n [input.productId],\n null,\n input.catalogId ?? 0\n )\n );\n\n if (!ArrayExtensions.hasElements(activeProducts)) {\n return [];\n }\n\n const activeProduct = activeProducts[0];\n\n if (!ArrayExtensions.hasElements(activeProduct.Dimensions)) {\n return [];\n }\n\n const promises = activeProduct.Dimensions.map(dimension => {\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\n MatchingDimensionValues: [],\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue,\n CatalogId: input.catalogId\n };\n\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n activeProduct.MasterProductId ? activeProduct.MasterProductId : activeProduct.RecordId,\n searchCriteria\n );\n const fullDimensionPromise = dimensionValuesPromise.then(dimensionValues => {\n const fullDimension: IProductDimensionsWithAvailabilitiesFull = {\n ...dimension,\n dimensionValuesWithInventory: dimensionValues\n };\n return fullDimension;\n });\n\n return fullDimensionPromise;\n });\n\n // eslint-disable-next-line no-return-await -- existing code\n return await Promise.all(promises);\n}\n\n/**\n * The GetProductDimensionsWithAvailabilitiesAction\n * Gets the available product dimensions for the product via the getDimensionValueswithEstimatedAvailibilities RetailServer API.\n */\nexport const getProductDimensionsWithAvailabilities = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-product-dimensions-with-availabilities',\n action: getProductDimensionsWithAvailabilitiesAction as IAction,\n input: createProductDimensionsWithAvailabilitiesInput\n});\n\nexport default getProductDimensionsWithAvailabilities;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, {\n generateImageUrl as generateImageUrlFromSdk,\n IAny,\n ICommerceApiSettings,\n ICoreContext,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n AsyncResult,\n AttributeValue,\n CartLine,\n ChannelDeliveryOptionConfiguration,\n ChannelInventoryConfiguration,\n CommerceListLine,\n ProductDimension,\n ProductDimensionType,\n ProductSearchResult,\n QueryResultSettings,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ProductDetailsCriteria } from '../get-full-products';\nimport { IKeyValuePair } from './data-structures';\nimport { ArrayExtensions, StringExtensions } from './extensions';\nimport { parseSearchData } from './input-data-parser';\nimport { InventoryLevels } from './product-inventory-information';\n\nexport const wrapInResolvedAsyncResult = (input: T | null | undefined): AsyncResult => {\n return >{\n status: 'SUCCESS',\n result: input,\n metadata: {}\n };\n};\n\nexport const wrapInRejectedAsyncResult = (input: T | null | undefined): AsyncResult => {\n return >{\n status: 'FAILED',\n result: input,\n metadata: {}\n };\n};\n\nexport const buildQueryResultSettings = (inputData: ICreateActionContext, IGeneric>): QueryResultSettings => {\n try {\n const searchInputData = parseSearchData(inputData);\n const search = searchInputData.q;\n if (!search) {\n throw new Error('Query string ?q={searchText} is needed for search actions.');\n }\n const top = (searchInputData.maxItems && Number(searchInputData.maxItems)) || searchInputData.top;\n return { Paging: { Top: top, Skip: searchInputData.skip } };\n } catch {\n return {};\n }\n};\n\n/**\n * Utility function to extract the active productId in the following priority:\n * First query param (productId), then UrlToken (itemId), then module config.\n * @param inputData - The Action Input data.\n * @returns Productid or undefined.\n */\nexport const getSelectedProductIdFromActionInput = (inputData: ICreateActionContext>): string | undefined => {\n const context = inputData.requestContext;\n if (context.query?.productId) {\n return context.query.productId;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Exsiting code.\n } else if (\n context.urlTokens &&\n inputData.requestContext.urlTokens.itemId &&\n inputData.requestContext.urlTokens.pageType === 'Product'\n ) {\n return context.urlTokens.itemId;\n } else if (inputData && inputData.config && inputData.config.productId) {\n return inputData.config.productId;\n }\n return undefined;\n};\n\n/**\n * Generates a Image URL based on data return from retail server.\n * @param imageUrl The image url returned by Retail Server.\n * @param ctx The request context.\n * @param apiSettings\n */\nexport const generateImageUrl = (imageUrl: string | undefined, apiSettings: ICommerceApiSettings): string | undefined => {\n return generateImageUrlFromSdk(apiSettings, imageUrl);\n};\n\n/**\n * Represents app configuration for dimensions.\n */\nexport interface IDimensionsConfig {\n dimensionsAsSwatchType?: DimensionTypes[];\n dimensionsInProductCard?: DimensionTypes[];\n inventoryLevel?: InventoryLevels;\n dimensionToPreSelectInProductCard?: DimensionTypes;\n enableStockCheck?: boolean;\n warehouseAggregation?: string;\n}\n\n/**\n * Represents app configuration for dimensions.\n */\nexport interface IDimensionsApp {\n config: IDimensionsConfig;\n}\n\n/**\n * Represents product dimension types.\n */\nexport enum DimensionTypes {\n none = 'none',\n color = 'color',\n configuration = 'configuration',\n size = 'size',\n style = 'style'\n}\n\n/**\n * Defines display configuration types.\n */\nexport enum DimensionSwatchDisplayTypes {\n default = 'default',\n productCard = 'productCard'\n}\n\n/**\n * Checks if rendering the particular dimensions is allowed.\n * @param dimensionType - Dimension to be displayed.\n * @param context - Core application context.\n * @param displayType - The swatch location, the component from which it comes from.\n * @returns Updates the state with new product page url.\n */\nexport const checkIfShouldDisplayAsSwatch = (\n dimensionType: DimensionTypes,\n context: ICoreContext,\n displayType: DimensionSwatchDisplayTypes = DimensionSwatchDisplayTypes.default\n): boolean => {\n // Additional checks for the product card since it has a separate config setting.\n if (displayType === DimensionSwatchDisplayTypes.productCard) {\n const dimensionsToDisplayOnProductCard = context.app.config.dimensionsInProductCard;\n if (\n !ArrayExtensions.hasElements(dimensionsToDisplayOnProductCard) ||\n dimensionsToDisplayOnProductCard.includes(DimensionTypes.none) ||\n !dimensionsToDisplayOnProductCard.includes(dimensionType)\n ) {\n return false;\n }\n }\n\n const dimensionsToDisplayAsSwatch = context.app.config.dimensionsAsSwatchType;\n return (\n ArrayExtensions.hasElements(dimensionsToDisplayAsSwatch) &&\n !dimensionsToDisplayAsSwatch.includes(DimensionTypes.none) &&\n dimensionsToDisplayAsSwatch.includes(dimensionType)\n );\n};\n\n/**\n * Generates an image URL for a swatch.\n * @param imageUrl - The image url returned by Retail Server.\n * @param apiSettings - The request context.\n * @returns Full image url.\n */\nexport const generateSwatchImageUrl = (imageUrl: string, apiSettings: ICommerceApiSettings): string => {\n if (imageUrl.startsWith('http')) {\n return imageUrl;\n }\n\n return apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\n};\n\n/**\n * Generates a Image URL for a product based on data return from retail server.\n * @param product The Product returned by Retail Server.\n * @param ctx The request context.\n * @param apiSettings\n */\nexport const generateProductImageUrl = (\n product: SimpleProduct | ProductSearchResult,\n apiSettings: ICommerceApiSettings\n): string | undefined => {\n return generateImageUrl(product.PrimaryImageUrl, apiSettings);\n};\n\n/**\n * Creates a CartLine object from the passed data.\n * @param product The product.\n * @param quantity The quantity.\n * @param catalogId The catalog.\n */\nexport const buildCartLine = (product: SimpleProduct, quantity?: number, catalogId?: number): CartLine => {\n return {\n CatalogId: catalogId || 0,\n Description: product.Description,\n\n // TODO: Investigate this value and what it represents\n EntryMethodTypeValue: 3,\n ItemId: product.ItemId,\n ProductId: product.RecordId,\n Quantity: quantity || 1,\n TrackingId: '',\n UnitOfMeasureSymbol: product.DefaultUnitOfMeasure\n };\n};\n\n/**\n * Creates a CommerceListLine (also know as WishlistLine) object from the passed data.\n * @param productId The RecordId of the Product to be added.\n * @param customerId The account number of the customer.\n * @param wishlistId The Id of the commerce list.\n */\nexport const buildWishlistLine = (productId: number, customerId: string, wishlistId: number): CommerceListLine => {\n return {\n CommerceListId: wishlistId,\n ProductId: productId,\n CustomerId: customerId\n };\n};\n\n/**\n * Utility function to prepare the product details criteria before getting full product:\n * @param inputData The Action Input data\n */\nexport const getProductDetailsCriteriaFromActionInput = (inputData: ICreateActionContext>): ProductDetailsCriteria => {\n if (inputData && inputData.config) {\n return {\n getPrice: !inputData.config.hidePrice,\n getRating: !inputData.config.hideRating\n };\n }\n return {\n getPrice: true,\n getRating: true\n };\n};\n\n/**\n * Transforms search text into the expected 'search terms' format, expected by refiner APIs.\n * @param searchText Free-form text used for searching for products or categories of products.\n */\nexport const ensureSearchTextIsFormedProperly = (searchText: string): string => {\n const prefix = searchText.startsWith(\"'\") ? '' : \"'\";\n const suffix = searchText.endsWith(\"'\") ? '' : \"'\";\n return `${prefix}${searchText}${suffix}`;\n};\n\nexport const ensureSafeSearchText = (searchText: string): string => {\n return searchText.replace(/[^\\d\\sA-Za-z]+/g, '');\n};\n\n/**\n * @deprecated Please use `generateCacheKey` instead.\n */\nexport const buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Represents a list of keys for general parameters used in the cache key.\n */\nenum DefaultCacheKeyParameterKeys {\n channelIdKey = 'CHANNELID',\n appSettingsCatalogIdKey = 'APPSETTINGSCATALOGID'\n}\n\n/**\n * Generates a key from set of arguments\n * @param apiSettings - Request context API settings.\n * @param entries - Cache key parameters.\n * @returns String which represents the cache key.\n */\nexport const generateCacheKey = (\n apiSettings?: ICommerceApiSettings,\n ...entries: IKeyValuePair[]\n): string => {\n const parsedEntries: IKeyValuePair[] = entries.map(pair => {\n return { key: pair.key.toLocaleUpperCase(), value: pair.value };\n });\n\n const cacheKeyArgumentsKeys = parsedEntries.map(pair => pair.key);\n\n if (apiSettings) {\n if (!cacheKeyArgumentsKeys.includes(DefaultCacheKeyParameterKeys.channelIdKey)) {\n parsedEntries.push({ key: DefaultCacheKeyParameterKeys.channelIdKey, value: apiSettings.channelId });\n }\n\n if (!cacheKeyArgumentsKeys.includes(DefaultCacheKeyParameterKeys.appSettingsCatalogIdKey) && apiSettings.catalogId) {\n parsedEntries.push({ key: DefaultCacheKeyParameterKeys.appSettingsCatalogIdKey, value: apiSettings.catalogId });\n }\n }\n\n return parsedEntries\n .sort((a, b) => a.key.localeCompare(b.key))\n .map(pair => `${pair.key}:{${pair.value}}`)\n .join('-');\n};\n\nexport const buildCacheKeyWithUrlTokens = (base: string, requestContext: IRequestContext): string => {\n const urlTokens = requestContext.urlTokens;\n const defaultCacheKey = buildCacheKey(base, requestContext.apiSettings, requestContext.locale);\n return urlTokens ? `${defaultCacheKey}-${urlTokens.itemId}-${urlTokens.recordId}-${urlTokens.pageType}` : defaultCacheKey;\n};\n\n/**\n * Generates a key from set of arguments as inputs.\n *\n * @param args Argument list of pivots to generate key from.\n * @param handler Handler function for null/undefined values.\n */\n\ntype TKeyTypes = string | number | boolean | null | undefined;\ninterface IGenerateKeyOptions {\n separator?: string;\n handler?(input: null | undefined): string;\n}\nexport const generateKey = (args: TKeyTypes[], options?: IGenerateKeyOptions): string => {\n const { handler, separator }: IGenerateKeyOptions = { ...{ separator: '-', handler: undefined }, ...(options || {}) };\n return args\n .map(arg => {\n if (arg === null || arg === undefined) {\n if (handler) {\n return handler(arg);\n }\n }\n return arg;\n })\n .join(separator);\n};\n\n/**\n * Gets the fall back image url for a variant image.\n * @param itemId Item id of a product.\n * @param apiSettings Api setting from request context.\n */\nexport const getFallbackImageUrl = (\n itemId: string | undefined,\n apiSettings: ICommerceApiSettings,\n isOmniFeatureEnabled?: boolean\n): string | undefined => {\n if (!itemId || isOmniFeatureEnabled) {\n return '';\n }\n\n const parsedItemId = itemId.trim().split(' ')[0];\n\n const productUrl = `Products/${parsedItemId}_000_001.png`;\n return generateImageUrl(productUrl, apiSettings);\n};\n\n/**\n * Converts retail proxy product dimension type to display dimension type.\n * @param productDimensionType - Product dimension type from retail proxy.\n * @returns Local dimension type.\n */\nexport const convertProductDimensionTypeToDimensionTypes = (productDimensionType: ProductDimensionType): DimensionTypes => {\n switch (productDimensionType) {\n case ProductDimensionType.Color:\n return DimensionTypes.color;\n case ProductDimensionType.Configuration:\n return DimensionTypes.configuration;\n case ProductDimensionType.Size:\n return DimensionTypes.size;\n case ProductDimensionType.Style:\n return DimensionTypes.style;\n default:\n return DimensionTypes.none;\n }\n};\n\n/**\n * Converts display dimension type to retail proxy product dimension type.\n * @param dimensionType - Local dimension type.\n * @returns Product dimension type from retail proxy.\n */\nexport const convertDimensionTypeToProductDimensionType = (dimensionType: DimensionTypes): ProductDimensionType => {\n switch (dimensionType) {\n case DimensionTypes.color:\n return ProductDimensionType.Color;\n case DimensionTypes.configuration:\n return ProductDimensionType.Configuration;\n case DimensionTypes.size:\n return ProductDimensionType.Size;\n case DimensionTypes.style:\n return ProductDimensionType.Style;\n default:\n return ProductDimensionType.None;\n }\n};\n\n/**\n * Sets dimensions to url.\n * @param inputUrl - Url to update.\n * @param productDimensions - Dimensions to set.\n */\nexport const setDimensionValuesToQuery = (inputUrl: URL, productDimensions: ProductDimension[]): void => {\n for (const dimension of productDimensions) {\n const dimensionValue = dimension.DimensionValue?.Value;\n if (!StringExtensions.isNullOrWhitespace(dimensionValue)) {\n inputUrl.searchParams.set(convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue), dimensionValue!);\n }\n }\n\n if (msdyn365Commerce.isBrowser) {\n window.history.replaceState(window.history.state, '', inputUrl.toString().replace(inputUrl.host, window.location.host));\n }\n};\n\n/**\n * Retrieves dimension value stored in url.\n * @param urlParameters - Url parameters.\n * @param productDimensionType - The dimension type to retrieve.\n * @returns Product dimension item.\n */\nconst parseDimensionFromUrl = (\n urlParameters: URLSearchParams,\n productDimensionType: ProductDimensionType\n): ProductDimension | undefined => {\n const localDimensionType = convertProductDimensionTypeToDimensionTypes(productDimensionType);\n const value = urlParameters.get(localDimensionType);\n if (!value) {\n return undefined;\n }\n return {\n DimensionTypeValue: productDimensionType,\n DimensionValue: {\n RecordId: 0,\n Value: value\n }\n };\n};\n\n/**\n * Retrieves all dimensions from URL.\n * @param urlParameters - Url parameters.\n * @returns Product dimensions stored in url.\n */\nconst parseDimensionsFromUrl = (urlParameters: URLSearchParams): ProductDimension[] => {\n const dimensionsToParse: ProductDimensionType[] = [\n ProductDimensionType.Color,\n ProductDimensionType.Configuration,\n ProductDimensionType.Size,\n ProductDimensionType.Style\n ];\n const parsedDimensions = dimensionsToParse.map(dimension => parseDimensionFromUrl(urlParameters, dimension));\n return ArrayExtensions.validValues(parsedDimensions);\n};\n\n/**\n * Utility function to extract the dimension values from input url querystring.\n * @param inputUrl - The request url.\n * @returns The selected dimension values.\n */\nexport const getDimensionValuesFromQuery = (inputUrl: URL): ProductDimension[] => {\n const urlWithIgnoredCase = new URL(inputUrl.toString().toLocaleLowerCase());\n const urlParameters = urlWithIgnoredCase.searchParams;\n const dimensions: ProductDimension[] = parseDimensionsFromUrl(urlParameters);\n return dimensions;\n};\n\n/**\n * Get attribute values by channel inventory configuration.\n * @param attributeValues - The attributeValues.\n * @param channelInventoryConfiguration - The channelInventoryConfiguration.\n * @returns The attributeValues filter by channel inventory configuration.\n */\nexport const getAttributeValuesByConfiguration = (\n attributeValues: AttributeValue[] | null,\n channelInventoryConfiguration: ChannelInventoryConfiguration | null\n): AttributeValue[] => {\n if (!attributeValues) {\n return [];\n }\n if (!channelInventoryConfiguration) {\n return attributeValues;\n }\n\n return attributeValues.filter(\n attribute =>\n attribute.RecordId !== channelInventoryConfiguration.InventoryProductAttributeRecordId &&\n attribute.RecordId !== channelInventoryConfiguration.ProductAvailabilitySortableAttributeRecordId\n );\n};\n\n/**\n * Utility function to remove domain querystring parameter from url.\n * @param inputUrl - The request url.\n * @returns The yrl after dropping domain querystring.\n */\nexport const removeDomainQspFromUrl = (inputUrl: string, requestContext: IRequestContext): string => {\n if (requestContext?.features && requestContext.features.remove_domain_qsp) {\n const Url = new URL(inputUrl);\n const urlParams: URLSearchParams = new URLSearchParams(Url.search);\n if (urlParams.has('domain')) {\n urlParams.delete('domain');\n }\n Url.search = urlParams.toString();\n return Url.toString();\n }\n return inputUrl;\n};\n\n/**\n * Utility function to validate catalog Id for B2B user .\n * @param catalogId - The catalog.\n */\nexport const validateCatalogId = (catalogId?: number | undefined) => {\n if (catalogId === -1) {\n throw new Error(\n 'Catalog id is -1. It means no valid catalogs were found for the user. Make sure the user has some valid catalogs assigned.'\n );\n }\n};\n\n/**\n * Utility function to check deliveryMode .\n * @param cartline - CartLine item.\n * @param retailMulitplePickupFeatureState - pickUp feature state, default to false.\n * @param channelDeliveryOptionConfig - Channel Delivery Option Configuration.\n * @param pickupDeliveryModeCode -pickUp delivery mode code string.\n * @returns true id cartline item is pickUp item else false.\n */\nexport const getDeliveryMode = (\n cartLine: CartLine,\n featureSate: boolean = false,\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration,\n pickupDeliveryMode?: string\n) => {\n if (!featureSate) {\n return cartLine.DeliveryMode === pickupDeliveryMode;\n }\n return (\n cartLine.DeliveryMode ===\n channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(deliveryMode => deliveryMode === cartLine.DeliveryMode)\n );\n};\n\n/**\n * Utility function to check if cartline item is pickupitem .\n * @param cartline - CartLine item.\n * @param retailMulitplePickupFeatureState - pickUp feature state.\n * @param channelDeliveryOptionConfig - Channel Delivery Option Configuration.\n * @param pickupDeliveryModeCode -pickUp delivery mode code string.\n * @returns true id cartline item is pickUp item else false.\n */\nexport const isCartLineItemPickUpType = (\n cartline: CartLine,\n retailMulitplePickupFeatureState: boolean = false,\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration,\n pickupDeliveryModeCode?: string\n): boolean => {\n // check if cartlineitem is pickup item\n if (\n cartline.DeliveryMode &&\n cartline.DeliveryMode !== '' &&\n getDeliveryMode(cartline, retailMulitplePickupFeatureState, channelDeliveryOptionConfig, pickupDeliveryModeCode)\n ) {\n return true;\n }\n return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICommerceApiSettings } from '@msdyn365-commerce/core-internal';\nimport { ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Generates a Image URL based on data return from retail server\n * @param imageUrl The image url returned by Retail Server\n * @param ctx The request context\n */\nexport const generateImageUrl = (imageUrl: string | undefined, apiSettings: ICommerceApiSettings): string | undefined => {\n if (imageUrl) {\n // Images hosted in CMS include schema\n if (imageUrl.startsWith('http')) {\n return imageUrl;\n }\n\n // Images hosted in Retail Server must be encoded and joined with the base image url\n return apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\n } else {\n // d365Commerce.telemetry.warning(`Unable to generate a proper Image URL for Product: ${product.RecordId}`);\n return undefined;\n }\n};\n\n/**\n * Generates a Image URL for a product based on data return from retail server\n * @param product The Product returned by Retail Server\n * @param ctx The request context\n */\nexport const getProductImageUrls = (\n products: SimpleProduct[] | ProductSearchResult[],\n apiSettings: ICommerceApiSettings\n): SimpleProduct[] | ProductSearchResult[] => {\n const productsWithImageUrls: SimpleProduct[] | ProductSearchResult[] = [];\n\n products &&\n products.forEach(product => {\n if (product && product.RecordId) {\n product.PrimaryImageUrl = generateImageUrl(product.PrimaryImageUrl, apiSettings);\n productsWithImageUrls.push(product);\n }\n });\n\n return productsWithImageUrls;\n};\n\n/**\n * Uses the order in which the product ids were returned from the reco call to order\n * the results from the product hydration call\n *\n * @param itemIdOrder The order of product ids to observe\n * @param unorderedProductSearchResults Unordered set of hydrated products\n */\nexport const orderProductSearchResults = (\n itemIdOrder: number[],\n unorderedProductSearchResults: ProductSearchResult[]\n): ProductSearchResult[] => {\n return itemIdOrder.reduce((result: ProductSearchResult[], itemId: number) => {\n const product = unorderedProductSearchResults.find(element => element.RecordId === itemId);\n if (product) {\n result.push(product);\n }\n return result;\n }, []);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Get inventory sorting value based on channelInventoryConfiguration\n *\n * @param context The current action context\n * @param channelInventoryConfiguration The channelInventoryConfiguration\n */\nexport const getInventorySorting = channelInventoryConfiguration => {\n let sorting;\n if (channelInventoryConfiguration && channelInventoryConfiguration.ProductAvailabilitySortableAttributeRecordId) {\n const sortColumnName = `Attr_${channelInventoryConfiguration.ProductAvailabilitySortableAttributeRecordId}`;\n sorting = {\n Columns: [\n {\n ColumnName: sortColumnName,\n IsDescending: true\n }\n ]\n };\n }\n return sorting;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductRefinerHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, versionGte } from '@msdyn365-commerce/core';\nimport { IQueryResultSettings, ProductRefiner, ProductSearchCriteria } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * This setting defines inventory filtering options.\n */\nexport enum ProductListInventoryFilteringOptions {\n /**\n * Filter out all products out of stock.\n */\n HideOOS = 'hideOOS',\n\n /**\n * Sort products by availability, OOS goes last.\n */\n SortOOS = 'sortOOS',\n\n /**\n * No filtering selected.\n */\n Default = 'default'\n}\n\n/**\n * Input class for get inventory in stock refiner value action.\n */\nexport class InventoryInStockRefinerValueInput implements IActionInput {\n public actionContext: IActionContext;\n public channelId: number;\n public channelInventoryConfiguration;\n public catalogId?: number;\n\n public constructor(actionContext: IActionContext, channelId: number, channelInventoryConfiguration, catalogId: number = 0) {\n this.catalogId = catalogId;\n this.channelId = channelId;\n this.actionContext = actionContext;\n this.channelInventoryConfiguration = channelInventoryConfiguration;\n }\n\n public getCacheKey = (): string =>\n `${this.channelId}-${this.catalogId}-${this.channelInventoryConfiguration?.InventoryProductAttributeRecordId}`;\n public getCacheObjectType = (): string => 'RefinerList';\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * Uses Bulk refiner API to get refiners and child refiner values.\n * @param searchCriteria Product search criteria.\n * @param maxItems Max items.\n * @param queryResultSettings\n * @param ctx Action context.\n */\nasync function getProductRefinerHierarchy(\n searchCriteria: ProductSearchCriteria,\n queryResultSettings: IQueryResultSettings,\n ctx: IActionContext\n): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const isHideAndSortByInventoryAvailabilitySupported = versionGte(rsVersion, '9.37');\n if (isHideAndSortByInventoryAvailabilitySupported) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n const productsDataActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g');\n return productsDataActions\n .getProductSearchRefinersAsync({ callerContext: ctx, queryResultSettings }, searchCriteria)\n .then((productRefiners: ProductRefiner[]) => {\n if (!productRefiners) {\n ctx.trace('[getRefinersByCriteriaAction] returned no refiners');\n return [];\n }\n\n const result = productRefiners as IProductRefinerHierarchy[];\n\n if (result.length === 0) {\n ctx.trace('[getRefinersByCriteriaAction] returned no IProductRefinerHierarchy objects');\n return [];\n }\n\n return result;\n });\n } else {\n return Promise.resolve([]);\n }\n}\n\n/**\n * Action method returns inventory in stock refiners.\n * @param input - InventoryInStockRefinerValueInput.\n * @param context - IActionContext.\n * @returns - Promise.\n */\nexport async function getInventoryInStockRefiner(\n input: InventoryInStockRefinerValueInput,\n context: IActionContext\n): Promise {\n const queryResultSettings = {\n count: true\n };\n\n const refiners = await getProductRefinerHierarchy(\n {\n Context: {\n ChannelId: input.channelId,\n CatalogId: input.catalogId\n }\n },\n queryResultSettings,\n context\n );\n\n // InventoryProductAttributeRecordId may be 0, and recId of default refiner Category/Price/Rating is always 0 by design. In this case, we should not return refiner\n // Why recId of default refiner Category/Price/Rating is 0: see GetChannelProductRefiners.sql\n const inventoryRefiner =\n input.channelInventoryConfiguration?.InventoryProductAttributeRecordId !== 0 &&\n refiners.find(refiner => refiner.RecordId === input.channelInventoryConfiguration?.InventoryProductAttributeRecordId);\n let inStockRefiner;\n if (inventoryRefiner) {\n inStockRefiner = inventoryRefiner.Values.find(\n value =>\n value.LeftValueBoundString !== input.channelInventoryConfiguration.InventoryOutOfStockAttributeValueText &&\n value.RightValueBoundString !== input.channelInventoryConfiguration.InventoryOutOfStockAttributeValueText\n );\n }\n\n return inStockRefiner;\n}\n\n/**\n * Action.\n * @param id - Id.\n * @param action - Action.\n * @returns - Results.\n */\nexport const getInventoryInStockRefinerAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-inventory-in-stock-refiner',\n action: getInventoryInStockRefiner as IAction\n});\n\nexport default getInventoryInStockRefinerAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { IAction, IActionContext, versionGte } from '@msdyn365-commerce/core-internal';\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n ProductSearchCriteria,\n ProductSearchResult,\n QueryResultSettings\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { CATEGORY_PAGE_NAME } from '../../consts';\nimport { getProductImageUrls } from '../../utils/product-list-utils';\nimport { ProductListInput } from '../hydrator-action-inputs';\nimport { getInventorySorting } from '../utils/inventory-util';\nimport {\n getInventoryInStockRefinerAction,\n InventoryInStockRefinerValueInput,\n ProductListInventoryFilteringOptions\n} from '../utils/data-actions/get-inventory-in-stock-refiner.action';\n\nexport const getProductsByCategoryList = async (input: ProductListInput, context: IActionContext): Promise => {\n let categoryId: number;\n const urlTokens = context.requestContext.urlTokens;\n\n // If the category ID has been provided from the list metadata use it, otherwise grab the category ID from context\n if (input.listMetadata.categoryIds && input.listMetadata.categoryIds.length > 0) {\n categoryId = input.listMetadata.categoryIds[0];\n } else if (urlTokens && urlTokens.pageType && urlTokens.pageType.toLowerCase() === CATEGORY_PAGE_NAME && urlTokens.recordId) {\n categoryId = +urlTokens.recordId;\n } else if (urlTokens && urlTokens.categories && urlTokens.categories.length > 0) {\n categoryId = +urlTokens.categories[0];\n } else {\n // Unable to determine category from list meta data or context\n throw new Error('CategoryId Missing for ProductsByCategory List');\n }\n context.telemetry.debug(`Category Id input to ProductsByCategory action : ${categoryId}`);\n const productSearchCriteria: ProductSearchCriteria = {\n Context: {\n ChannelId: +input.channelId,\n CatalogId: +input.catalogId\n },\n CategoryIds: [categoryId],\n SkipVariantExpansion: true,\n IncludeAttributes: true\n };\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: input.listMetadata.pageSize || 10\n }\n };\n\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const isHideAndSortByInventoryAvailabilitySupported = versionGte(rsVersion, '9.37');\n if (isHideAndSortByInventoryAvailabilitySupported) {\n let channelInventoryConfiguration = {};\n if (\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS ||\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS\n ) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n const StoreOperationsDataActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g');\n channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({ callerContext: context });\n }\n\n if (context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS) {\n const inventoryInStockRefinerValueInput = new InventoryInStockRefinerValueInput(\n context,\n +input.channelId,\n channelInventoryConfiguration,\n +input.catalogId\n );\n\n const inventoryInStockRefinerValue = await getInventoryInStockRefinerAction(inventoryInStockRefinerValueInput, context);\n if (inventoryInStockRefinerValue) {\n productSearchCriteria.Refinement = [inventoryInStockRefinerValue];\n }\n }\n\n if (context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS) {\n const sorting = getInventorySorting(channelInventoryConfiguration);\n if (sorting) {\n queryResultSettings.Sorting = sorting;\n }\n }\n }\n\n return searchByCriteriaAsync(\n {\n callerContext: context,\n queryResultSettings\n },\n productSearchCriteria\n )\n .then((products: ProductSearchResult[]) => {\n context.telemetry.debug('Products returned by ProductByCategory action', products);\n return getProductImageUrls(products, context.requestContext.apiSettings);\n })\n .catch(error => {\n context.telemetry.error(`Error running ProductByCategory action: ${error}`);\n throw new Error(error);\n });\n};\n\nexport const getProductsByCategoryListAction = createObservableDataAction({\n action: >getProductsByCategoryList,\n id: '@msdyn365-commerce/products-by-category'\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { getCatalogIdForSdk, IAction, IActionContext, versionGte } from '@msdyn365-commerce/core-internal';\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n ProductSearchCriteria,\n ProductSearchResult,\n QueryResultSettings\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductImageUrls } from '../../utils/product-list-utils';\nimport { ProductListInput } from '../hydrator-action-inputs';\nimport { CookieContext } from '../../utils/cookie-utils';\nimport { RecentlyViewedProductItem } from './base';\nimport { getInventorySorting } from '../utils/inventory-util';\nimport {\n getInventoryInStockRefinerAction,\n InventoryInStockRefinerValueInput,\n ProductListInventoryFilteringOptions\n} from '../utils/data-actions/get-inventory-in-stock-refiner.action';\n\nexport const getProductsByRecentlyViewedList = async (input: ProductListInput, ctx: IActionContext): Promise => {\n const searchCriteriaInput: ProductSearchCriteria = {};\n const cookieContext: CookieContext = new CookieContext();\n const catalogId = getCatalogIdForSdk(ctx.requestContext, null);\n searchCriteriaInput.Context = {\n ChannelId: ctx.requestContext.apiSettings.channelId,\n CatalogId: catalogId\n };\n searchCriteriaInput.IncludeAttributes = false;\n searchCriteriaInput.SkipVariantExpansion = true;\n const cookieName: string = '_msdyn365___recently_viewed_products';\n const cookieValue = cookieContext.get(cookieName).value;\n const productIds = cookieValue?.filter(value => value.catalogId === catalogId).map(value => value.productId) || [0];\n searchCriteriaInput.Ids = productIds;\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: input.listMetadata.pageSize || 10\n }\n };\n\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const isHideAndSortByInventoryAvailabilitySupported = versionGte(rsVersion, '9.37');\n if (isHideAndSortByInventoryAvailabilitySupported) {\n let channelInventoryConfiguration = {};\n if (\n ctx.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS ||\n ctx.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS\n ) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n const StoreOperationsDataActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g');\n channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({ callerContext: ctx });\n }\n\n if (ctx.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS) {\n const inventoryInStockRefinerValueInput = new InventoryInStockRefinerValueInput(\n ctx,\n +input.channelId,\n channelInventoryConfiguration,\n +input.catalogId\n );\n\n const inventoryInStockRefinerValue = await getInventoryInStockRefinerAction(inventoryInStockRefinerValueInput, ctx);\n if (inventoryInStockRefinerValue) {\n searchCriteriaInput.Refinement = [inventoryInStockRefinerValue];\n }\n }\n\n if (ctx.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS) {\n const sorting = getInventorySorting(channelInventoryConfiguration);\n if (sorting) {\n queryResultSettings.Sorting = sorting;\n }\n }\n }\n\n return searchByCriteriaAsync(\n {\n callerContext: ctx,\n queryResultSettings\n },\n searchCriteriaInput\n )\n .then((products: ProductSearchResult[]) => {\n ctx.telemetry.debug('Products returned by ProductByRecentlyViewed action', products);\n return getProductImageUrls(products, ctx.requestContext.apiSettings);\n })\n .catch(error => {\n ctx.telemetry.error(`Error running ProductByRecentlyViewed action: ${error}`);\n throw new Error(error);\n });\n};\n\nexport const getProductsByRecentlyViewedListAction = createObservableDataAction({\n action: >getProductsByRecentlyViewedList,\n id: '@msdyn365-commerce/products-by-recently-viewed'\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n AsyncResult,\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n IDictionary\n} from '@msdyn365-commerce/core';\nimport { DataServiceQuery, executeAction, IContext, IDataServiceRequest, IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { getProductImageUrls } from '../utils/product-list-utils';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, catalogId: Number | null): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${catalogId}`;\n};\n\n/**\n * Product Input\n */\nexport class ProductInput implements IActionInput {\n public productId: number;\n public channelId: number;\n public catalogId: number | null;\n private apiSettings: ICommerceApiSettings;\n\n constructor(productId: number | string, apiSettings: ICommerceApiSettings, catalogId: number | null) {\n this.apiSettings = apiSettings;\n this.productId = +productId;\n this.channelId = apiSettings.channelId;\n this.catalogId = catalogId;\n }\n\n public getCacheKey = () => buildCacheKey(`RecordId-${this.productId.toString()}`, this.apiSettings, this.catalogId);\n public getCacheObjectType = () => 'SimpleProduct';\n public dataCacheType = (): CacheType => 'application';\n}\n\nfunction productsQuery(recordId?: number): DataServiceQuery {\n const key = recordId ? { RecordId: recordId } : null;\n return new DataServiceQuery('Products', 'Product', 'ProductClass', key);\n}\n\nfunction createGetByIdsInput(\n queryResultSettings: IQueryResultSettings,\n channelId: number,\n productIds: number[],\n catalogId: number | null\n): IDataServiceRequest {\n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation(\n 'GetByIds',\n true,\n 'SimpleProductClass',\n 'true',\n { bypassCache: 'none', returnEntity: 'SimpleProduct' },\n { channelId: channelId, productIds: productIds, catalogId: catalogId }\n );\n}\n\nfunction getByIdsAsyncAction(\n context: IContext,\n channelId: number,\n productIds: number[],\n catalogId: number | null\n): AsyncResult {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, catalogId);\n return executeAction(request, context);\n}\n\n/**\n * Calls the Retail API and returns the product based on the passed ProductInput\n */\nexport async function getSimpleProductsAction(inputs: ProductInput[], ctx: IActionContext): Promise {\n if (!inputs || !Array.isArray(inputs) || inputs.length === 0) {\n ctx.trace('[getSimpleProductsAction] Invalid or empty inputs passed.');\n return [];\n }\n\n const productIdMapping: IDictionary = {};\n const productIds = inputs.map((input, idx) => {\n productIdMapping[input.productId] = idx;\n return input.productId;\n });\n\n return getByIdsAsyncAction({ callerContext: ctx }, inputs[0].channelId, productIds, inputs[0].catalogId).then(products => {\n if (!products) {\n return [];\n }\n const mappedProducts = (getProductImageUrls(products, ctx.requestContext.apiSettings)).reduce(\n (memo: SimpleProduct[], product: SimpleProduct | undefined) => {\n if (!product) {\n return memo;\n }\n const idx = productIdMapping[product.RecordId];\n memo[idx] = product;\n return memo;\n },\n []\n );\n\n // NOTE: This is not an ideal fix, but will resolve all current issues\n return inputs.map(input => {\n const foundProduct = mappedProducts.find(product => product && product.RecordId === input.productId);\n return foundProduct || {};\n });\n });\n}\n\nexport default createObservableDataAction({\n action: >getSimpleProductsAction,\n id: '@msdyn365-commerce/get-simple-products',\n isBatched: true\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { getCustomerActionDataAction, GetCustomerInput } from '@msdyn365-commerce/core';\nimport { getCatalogIdForSdk, IAction, IActionContext, versionGte } from '@msdyn365-commerce/core-internal';\nimport { IContext } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { getElementsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/RecommendationsDataActions.g';\nimport {\n Cart,\n Customer,\n ProductSearchCriteria,\n ProductSearchResult,\n QueryResultSettings,\n RecommendationCriteria,\n RecommendedElement\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { CATEGORY_PAGE_NAME, FREQUENTLY_BOUGHT_TOGETHER_LIST, PDP_PAGE_NAME, PICKS_FOR_YOU_LIST } from '../../consts';\nimport { getProductImageUrls, orderProductSearchResults } from '../../utils/product-list-utils';\nimport { ProductInput } from '../get-simple-products';\nimport { ProductListInput } from '../hydrator-action-inputs';\nimport { getInventorySorting } from '../utils/inventory-util';\nimport {\n getInventoryInStockRefinerAction,\n InventoryInStockRefinerValueInput,\n ProductListInventoryFilteringOptions\n} from '../utils/data-actions/get-inventory-in-stock-refiner.action';\n\nconst actionInputError = (missingType: string) => {\n throw new Error(`Input ${missingType} is missing and required to run GetProductsByRecommendationId action`);\n};\n\nconst enum CartTokenPrefix {\n Auth = 't',\n Anon = 'p'\n}\n\n/**\n * Constructs the category context for a recommendation call. If page context is selected the category dervided from page context\n * (current page) will be used. If instead a spefic category is chosen as context that category will be used instead.\n *\n * @param recommendationCriteria The criteria that will be used for the recommendation API call\n * @param input The ProductListInput provided to the action\n * @param context The current action context\n */\nconst getCategoryIdForReco = (recommendationCriteria: RecommendationCriteria, input: ProductListInput, context: IActionContext) => {\n let categoryIds: number[] = [];\n\n if (input.listMetadata.includePageContext || !input.listMetadata.categoryIds || input.listMetadata.categoryIds.length === 0) {\n const urlTokens = context.requestContext.urlTokens;\n\n if (urlTokens && urlTokens.pageType && urlTokens.pageType.toLowerCase() === CATEGORY_PAGE_NAME) {\n if (urlTokens.recordId) {\n categoryIds = [+urlTokens.recordId];\n }\n }\n } else {\n // Use category from a specific context if provided\n if (input.listMetadata.categoryIds && input.listMetadata.categoryIds.length > 0) {\n categoryIds = input.listMetadata.categoryIds;\n }\n }\n\n recommendationCriteria.CategoryIds = categoryIds;\n};\n\n/**\n * Fetches the current active cart to be used when cart context\n * is selected for a reco list\n *\n * @param ctx The current action context\n */\nconst getCart = async (ctx: IActionContext): Promise => {\n let cart;\n if (ctx.requestContext && ctx.requestContext.cookies) {\n const cookies = ctx.requestContext && ctx.requestContext.cookies;\n const cartCookie = cookies.getCartCookie();\n const cartCookieParts = cartCookie.split(':');\n if (cartCookieParts && cartCookieParts.length === 2) {\n if (\n (ctx.requestContext.user.isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Auth) ||\n (!ctx.requestContext.user.isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Anon)\n ) {\n const readCart = await readAsync({ callerContext: ctx }, cartCookieParts[1]);\n if (readCart && readCart.Id) {\n cart = readCart;\n }\n }\n }\n }\n return cart;\n};\n\n/**\n * Constructs the product context for a recommendation call. If cart context is selected, products currently in the active cart will\n * be used as the product ids for the recommendation call. Otherwise, if page context is selected the product derived from page context will be used.\n * Finally, if specific context is selected, a product id will be given to us from the ProductListInput which will be used to seed the product id for the reco call.\n *\n * @param recommendationCriteria The criteria that will be used for the recommendation API call\n * @param input The ProductListInput provided to the action\n * @param context The current action context\n */\nconst getProductIdForReco = async (recommendationCriteria: RecommendationCriteria, input: ProductListInput, context: IActionContext) => {\n let productIds: number[] = [];\n // If include cart is set true, fetch the product ids in the cart to append to the product ID list for the recommendation call\n if (input.listMetadata.includeCart) {\n const cart = await getCart(context);\n if (cart && cart.CartLines) {\n const validCartLines = cart.CartLines.filter(element => element.ProductId !== undefined);\n const cartProductIds = validCartLines.map(product => product.ProductId);\n context.telemetry.debug(`Products in cart: ${cartProductIds}`);\n // If the cart isn't empty, assign the products in the cart to the productIds for seeding\n if (cartProductIds && cartProductIds.length > 0) {\n productIds = cartProductIds;\n }\n }\n } else if (input.listMetadata.includePageContext || !input.listMetadata.productIds || input.listMetadata.productIds.length === 0) {\n const urlTokens = context.requestContext.urlTokens;\n\n if (urlTokens && urlTokens.recordId && urlTokens.pageType && urlTokens.pageType.toLowerCase() === PDP_PAGE_NAME) {\n productIds = [+urlTokens.recordId];\n }\n } else {\n // Use the product from specfic context\n if (input.listMetadata.productIds && input.listMetadata.productIds.length > 0) {\n productIds = [input.listMetadata.productIds[0]];\n }\n }\n\n return productIds;\n};\n\nconst getProductsByNewSearchByCriteria = async (\n input: ProductListInput,\n callerContext: IContext,\n channelInventoryConfiguration\n): Promise => {\n const context = callerContext.callerContext;\n const customer: Customer = await getCustomerActionDataAction(new GetCustomerInput(context.requestContext.apiSettings, ''), context);\n const customerAccountNumber = customer?.AccountNumber || context.requestContext.user.customerAccountNumber;\n const searchCriteria: ProductSearchCriteria = {\n // @ts-ignore\n CustomerAccountNumber: customerAccountNumber,\n RecommendationListId: input.listMetadata.recommendationListId,\n Context: {\n ChannelId: +context.requestContext.apiSettings.channelId,\n CatalogId: +input.catalogId\n },\n SkipVariantExpansion: true,\n IncludeAttributes: true\n };\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n\n // after 9.24 version, we dont need to use two retail server call - getElement + searchByCriteria to get all recommendation products.\n // we just need to use searchByCriteria.\n\n const sequentialCallForRecoProducts = versionGte(rsVersion, '9.24');\n if (sequentialCallForRecoProducts && !context.requestContext?.features?.disable_sequential_call_for_recoProducts) {\n try {\n getCategoryIdForReco(searchCriteria, input, context);\n searchCriteria.Ids = await getProductIdForReco(searchCriteria, input, context);\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: input.listMetadata.pageSize || 10\n }\n };\n\n const isHideAndSortByInventoryAvailabilitySupported = versionGte(rsVersion, '9.37');\n if (isHideAndSortByInventoryAvailabilitySupported) {\n if (context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS) {\n const inventoryInStockRefinerValueInput = new InventoryInStockRefinerValueInput(\n context,\n +input.channelId,\n channelInventoryConfiguration,\n +input.catalogId\n );\n\n const inventoryInStockRefinerValue = await getInventoryInStockRefinerAction(inventoryInStockRefinerValueInput, context);\n if (inventoryInStockRefinerValue) {\n searchCriteria.Refinement = [inventoryInStockRefinerValue];\n }\n }\n\n /**\n * Sort by inventory availability:\n * For other type expect editorial: it's supported since 9.37.\n * For editorial list type: it's supported since 9.44 since it depends on fix from retail server which is fixed on 9.44. But logic here is the same as other types.\n */\n if (context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS) {\n const sorting = getInventorySorting(channelInventoryConfiguration);\n if (sorting) {\n queryResultSettings.Sorting = sorting;\n }\n }\n }\n\n let productSearchResults = await searchByCriteriaAsync(\n {\n callerContext: context,\n queryResultSettings\n },\n searchCriteria\n );\n if (productSearchResults.length) {\n let productSearchResultsTmp: ProductSearchResult[] = [];\n productSearchResultsTmp = productSearchResults.filter(item => {\n // @ts-ignore\n const isVariantProduct = !item.IsMasterProduct && item.MasterProductId !== 0;\n return !isVariantProduct;\n });\n productSearchResults = productSearchResultsTmp;\n // If the ProductSearchResult API finds the products then populate the product image urls and return\n // otherwise if the API does not exist or does not return products proceed to the legacy flows for legacy/backward compatibility reasons\n if (productSearchResults.length > 0) {\n getProductImageUrls(productSearchResults, context.requestContext.apiSettings);\n return productSearchResults;\n }\n }\n } catch (e) {\n // In case of an error fall back to legacy flow\n context.telemetry.error(`Error while getting productSearchResult: ${e}`);\n }\n }\n return [];\n};\n\nexport const getProductsByRecommendationList = async (input: ProductListInput, context: IActionContext): Promise => {\n // If the recommendation list is picks for you and the user is not signed do not make the reco API call and return empty list of products\n const customerAccountNumber =\n context.requestContext && context.requestContext.user && context.requestContext.user.customerAccountNumber;\n if (input.listMetadata.recommendationListId === PICKS_FOR_YOU_LIST && !customerAccountNumber) {\n return [];\n }\n\n const recommendationCriteria: RecommendationCriteria = {};\n const proxyContext: IContext = { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } };\n recommendationCriteria.CatalogId = input.catalogId;\n\n let reccomendationListId;\n if (input.listMetadata.recommendationListId) {\n reccomendationListId = input.listMetadata.recommendationListId;\n } else {\n actionInputError(`recommendationListId (from listmetadata)`);\n }\n recommendationCriteria.ProductIds = await getProductIdForReco(recommendationCriteria, input, context);\n\n if ((input.listMetadata.personalization || reccomendationListId === PICKS_FOR_YOU_LIST) && customerAccountNumber) {\n recommendationCriteria.CustomerAccountNumber = customerAccountNumber;\n proxyContext.bypassCache = 'get';\n }\n\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const isHideAndSortByInventoryAvailabilitySupported = versionGte(rsVersion, '9.37');\n let channelInventoryConfiguration = {};\n if (isHideAndSortByInventoryAvailabilitySupported) {\n if (\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS ||\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS\n ) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n const StoreOperationsDataActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g');\n channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({ callerContext: context });\n }\n }\n\n const products = await getProductsByNewSearchByCriteria(input, proxyContext, channelInventoryConfiguration);\n if (products.length > 0) {\n return products;\n }\n\n context.telemetry.debug(`Recommendation Criteria: ${JSON.stringify(recommendationCriteria)}`);\n\n // For FBT lists, a product or category seed must be provided or the request will error out. So we check to see if any have been provided and return empty list if none have\n if (reccomendationListId === FREQUENTLY_BOUGHT_TOGETHER_LIST) {\n if (\n recommendationCriteria.ProductIds &&\n recommendationCriteria.ProductIds.length === 0 &&\n recommendationCriteria.CategoryIds &&\n recommendationCriteria.CategoryIds.length === 0\n ) {\n return [];\n }\n }\n\n return getElementsAsync(proxyContext, reccomendationListId, recommendationCriteria)\n .then(async (recommendedElements: RecommendedElement[]) => {\n if (recommendedElements) {\n const productInputs: ProductInput[] = [];\n const productTypeId: string[] = [];\n const catalogIdNumber = getCatalogIdForSdk(context.requestContext, null);\n // Grab all the elements that are products and store the product ids\n for (let i = 0; i < recommendedElements.length; i++) {\n const element = recommendedElements[i];\n // Element type value of 1 indicates product type\n if (element.ElementId && element.ElementTypeValue === 1) {\n productInputs[i] = new ProductInput(+element.ElementId, context.requestContext.apiSettings, catalogIdNumber);\n productTypeId[i] = element.ElementId;\n }\n }\n context.telemetry.debug(`Running recommendation action for list ${input.listMetadata.recommendationListId}`);\n context.telemetry.debug(`Number of products returned: ${productTypeId.length}`);\n context.telemetry.debug('Product ids returned', productTypeId);\n\n if (productInputs.length) {\n const itemIds: number[] = productInputs.map(value => value.productId);\n const productSearchCriteria: ProductSearchCriteria = {\n Ids: itemIds,\n Context: {\n ChannelId: +context.requestContext.apiSettings.channelId,\n CatalogId: +input.catalogId\n },\n SkipVariantExpansion: true,\n IncludeAttributes: true\n };\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: input.listMetadata.pageSize || 10\n }\n };\n\n if (isHideAndSortByInventoryAvailabilitySupported) {\n if (\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS\n ) {\n const inventoryInStockRefinerValueInput = new InventoryInStockRefinerValueInput(\n context,\n +input.channelId,\n channelInventoryConfiguration,\n +input.catalogId\n );\n\n const inventoryInStockRefinerValue = await getInventoryInStockRefinerAction(\n inventoryInStockRefinerValueInput,\n context\n );\n if (inventoryInStockRefinerValue) {\n productSearchCriteria.Refinement = [inventoryInStockRefinerValue];\n }\n }\n\n /**\n * Sort by inventory availability:\n * For other type expect editorial: it's supported since 9.37.\n * For editorial list type: it's supported since 9.44 since it depends on fix from retail server which is fixed on 9.44. But logic here is the same as other types.\n */\n if (\n context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.SortOOS\n ) {\n const sorting = getInventorySorting(channelInventoryConfiguration);\n if (sorting) {\n queryResultSettings.Sorting = sorting;\n }\n }\n }\n\n try {\n let productSearchResults = await searchByCriteriaAsync(\n {\n callerContext: context,\n queryResultSettings\n },\n productSearchCriteria\n );\n // If the ProductSearchResult API finds the products then populate the product image urls and return\n // otherwise if the API does not exist or does not return products proceed to the legacy flows for legacy/backward compatibility reasons\n context.telemetry.debug('Product search results returned', JSON.stringify(productSearchResults));\n if (productSearchResults.length > 0) {\n getProductImageUrls(productSearchResults, context.requestContext.apiSettings);\n productSearchResults = orderProductSearchResults(itemIds, productSearchResults);\n return productSearchResults;\n }\n } catch (e) {\n // In case of an error fall back to legacy flow\n context.telemetry.error(`Error while getting productSearchResult: ${e}`);\n }\n }\n }\n return [];\n })\n .catch(error => {\n context.telemetry.error(`Error running productByRecommendation action: ${error}`);\n throw new Error(error);\n });\n};\n\nexport const getProductsByRecommendationListAction = createObservableDataAction({\n action: >getProductsByRecommendationList,\n id: '@msdyn365-commerce/products-by-recommendation'\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { IAction, IActionContext } from '@msdyn365-commerce/core-internal';\nimport { getRelatedProductsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductImageUrls } from '../../utils/product-list-utils';\nimport { ProductListInput } from '../hydrator-action-inputs';\n\nconst actionInputError = (missingType: string) => {\n throw new Error(`Input ${missingType} is missing and required to run GetProductsByRelationship action`);\n};\n\nexport const getProductsByRelationshipIdList = async (input: ProductListInput, context: IActionContext): Promise => {\n let productId;\n let relationshipId;\n // Grab the product ID from the list meta data or context\n if (input.listMetadata.productIds && input.listMetadata.productIds.length > 0) {\n productId = input.listMetadata.productIds[0];\n } else if (context.requestContext.urlTokens && context.requestContext.urlTokens.itemId) {\n productId = +context.requestContext.urlTokens.itemId;\n } else {\n actionInputError('productId');\n }\n // The relationship ID must be provided with the list meta data\n if (input.listMetadata.relationshipId) {\n relationshipId = +input.listMetadata.relationshipId;\n } else {\n actionInputError('relationshipId');\n }\n context.telemetry.debug(`Product Id input to productByRelationship action: ${productId}`);\n context.telemetry.debug(`Relationship Id input to productByRelationship action: ${relationshipId}`);\n\n return getRelatedProductsAsync(\n { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\n productId,\n input.channelId,\n input.catalogId,\n relationshipId\n )\n .then((products: ProductSearchResult[]) => {\n context.telemetry.debug('Products returned by getRelatedProducts action', products);\n return getProductImageUrls(products, context.requestContext.apiSettings);\n })\n .catch(error => {\n context.telemetry.error(`Error running getRelatedProducts action: ${error}`);\n throw new Error(error);\n });\n};\n\nexport const getProductsByRelationshipIdListAction = createObservableDataAction({\n action: >getProductsByRelationshipIdList,\n id: '@msdyn365-commerce/products-by-relationship-id'\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { IAction, IActionContext } from '@msdyn365-commerce/core-internal';\nimport { searchByTextAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductImageUrls } from '../../utils/product-list-utils';\nimport { ProductListInput } from '../hydrator-action-inputs';\n\nexport const getProductsBySearchList = async (input: ProductListInput, context: IActionContext): Promise => {\n let searchText: string;\n if (input.listMetadata.searchText) {\n searchText = input.listMetadata.searchText;\n } else if (context.requestContext.query && context.requestContext.query && context.requestContext.query.q) {\n searchText = context.requestContext.query.q;\n } else {\n throw new Error(\n 'Search text missing for ProductsBySearch. Query string ?q={searchText} or search text in list meta data must be present.'\n );\n }\n\n return searchByTextAsync(\n { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\n input.channelId,\n input.catalogId,\n searchText\n )\n .then((products: ProductSearchResult[]) => {\n context.telemetry.debug('Products returned by productsBySearch action:', products);\n return getProductImageUrls(products, context.requestContext.apiSettings);\n })\n .catch(error => {\n context.telemetry.error(`Error running productsBySearch action: ${error}`);\n throw new Error(error);\n });\n};\n\nexport const getProductsBySearchListAction = createObservableDataAction({\n action: >getProductsBySearchList,\n id: '@msdyn365-commerce/products-by-search'\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { IActionContext, IDictionary, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ICache } from '@msdyn365-commerce/cache-internal';\nimport { IProductList } from '@msdyn365-commerce/retail-proxy/dist/data-types';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { EXCEPTION_PRODUCT_LIST_ACTION, INVALID_PRODUCT_LIST_TYPE } from '@msdyn365-commerce/telemetry-internal';\nimport { toJS } from 'mobx';\nimport { set as _set } from 'lodash';\nimport { MODULE_CONFIG_KEY } from '../consts';\nimport { IProductListMetaData, ProductListInput, ProductListType } from './hydrator-action-inputs';\nimport { getProductsByCategoryListAction } from './product-list-actions/products-by-category.action';\nimport { getProductsByRecentlyViewedListAction } from './product-list-actions/products-by-recentlyviewed.action';\nimport { getProductsByRecommendationListAction } from './product-list-actions/products-by-recommendation.action';\nimport { getProductsByRelationshipIdListAction } from './product-list-actions/products-by-relationship-id.action';\nimport { getProductsBySearchListAction } from './product-list-actions/products-by-search.action';\nimport { shouldOptimizeHydrate } from '../utils/helpers';\n\n/**\n * Method to hydrate a product list from metadata provided by CMS\n * @param listMetaData The metadata for the product list from CMS\n */\nexport const hydrateProductList = async (\n listMetaData: IProductListMetaData,\n context: IActionContext,\n moduleId?: string,\n propertyToMapInConfig?: string\n): Promise => {\n let action: IObservableAction | undefined;\n const productListMetaData = (listMetaData);\n productListMetaData.products = [];\n\n switch (ProductListType[listMetaData.listType]) {\n case ProductListType.productBySearch:\n action = getProductsBySearchListAction;\n break;\n case ProductListType.productByCategory:\n action = getProductsByCategoryListAction;\n break;\n case ProductListType.relatedProducts:\n action = getProductsByRelationshipIdListAction;\n break;\n case ProductListType.recentlyViewedProducts:\n action = getProductsByRecentlyViewedListAction;\n break;\n case ProductListType.editorial:\n case ProductListType.algo:\n case ProductListType.recommendation:\n action = getProductsByRecommendationListAction;\n break;\n default:\n context.telemetry.error(INVALID_PRODUCT_LIST_TYPE, listMetaData.listType);\n productListMetaData.listMetadata = { error: INVALID_PRODUCT_LIST_TYPE };\n }\n\n if (action !== undefined) {\n return action(new ProductListInput(listMetaData, context), context)\n .then(productList => {\n productListMetaData.products = productList ?? [];\n productListMetaData.products = productListMetaData.products.filter(item => item && item.Name);\n updateListDataInRequestCache(context, productList, moduleId, propertyToMapInConfig);\n })\n .catch(error => {\n context.telemetry.error(EXCEPTION_PRODUCT_LIST_ACTION);\n context.telemetry.exception(error);\n productListMetaData.listMetadata = { error: EXCEPTION_PRODUCT_LIST_ACTION };\n updateListDataInRequestCache(context, productListMetaData.products, moduleId, propertyToMapInConfig);\n });\n }\n\n return;\n};\n\n/**\n * update list data in request cache when client optimize hydrate is enabled. This\n * @param context\n * @param products\n * @param moduleId\n * @param propertyToMapInConfig\n */\nconst updateListDataInRequestCache = (\n context: IActionContext,\n products: ProductSearchResult[],\n moduleId?: string,\n propertyToMapInConfig?: string\n) => {\n if (msdyn365Commerce.isBrowser && shouldOptimizeHydrate(context.requestContext) && moduleId && propertyToMapInConfig) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const requestCache: ICache = (context).requestCache;\n const cacheValue = requestCache.get>({\n typeName: MODULE_CONFIG_KEY,\n key: moduleId\n });\n if (cacheValue) {\n const config = toJS(cacheValue.item);\n config[propertyToMapInConfig].products = products;\n _set(config, [propertyToMapInConfig], config[propertyToMapInConfig]);\n requestCache.put({ typeName: MODULE_CONFIG_KEY, key: moduleId }, { item: config });\n }\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n BypassCache,\n ProductDimension,\n ProductDimensionAvailabilitySearchCriteria,\n ProductsDataActions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { generateProductImageUrl, getDimensionValuesFromQuery, getSelectedProductIdFromActionInput } from './utilities/utils';\n\n/**\n * Stores data about the selected product.\n */\nexport interface ISelectedProduct extends SimpleProduct {\n productVariant?: SimpleProduct;\n}\n\n/**\n * Get selected variant action input class.\n */\nexport class SelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public matchingDimensionValues?: ProductDimension[];\n\n public bypassCache?: BypassCache;\n\n public catalogId?: number;\n\n public constructor(\n productId: number,\n channelId: number,\n matchingDimensionValues?: ProductDimension[],\n bypassCache?: BypassCache,\n requestContext?: IRequestContext\n ) {\n this.productId = productId;\n this.channelId = channelId;\n this.matchingDimensionValues = matchingDimensionValues;\n this.bypassCache = bypassCache;\n\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n /**\n * Cache key.\n * @returns String.\n */\n public getCacheKey: () => string = () => 'SelectedVariant';\n\n /**\n * Cache object type.\n * @returns String.\n */\n public getCacheObjectType: () => string = () => 'SimpleProduct';\n\n /**\n * Cache type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the getSelectedVariant data action.\n * @param inputData - The input data passed to the createInput method.\n * @returns The input for the ata action getSelectedVariantNewAction.\n */\nconst createInput = (inputData: ICreateActionContext>): SelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new SelectedVariantInput(\n +productId,\n +inputData.requestContext.apiSettings.channelId,\n undefined,\n undefined,\n inputData.requestContext\n );\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * Checks if given product has any unmatched dimensions.\n * Modifies product entity to use matched dimension values.\n * @param product - The product to analyze and modify.\n * @param matchingDimensionValues - Matched dimensions.\n * @returns True if has any unmatched dimension, false if all dimensions are specified.\n */\nconst checkIfHasUnmatchedDimensions = (product: SimpleProduct, matchingDimensionValues: ProductDimension[]): boolean => {\n let hasUnmatchedDimension: boolean = false;\n if (product.Dimensions) {\n product.Dimensions = product.Dimensions.map(dimension => {\n return { ...dimension };\n });\n for (const dimension of product.Dimensions) {\n const matchedTargetDimension = matchingDimensionValues.find(\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\n );\n\n if (matchedTargetDimension) {\n dimension.DimensionValue = matchedTargetDimension.DimensionValue;\n } else {\n hasUnmatchedDimension = true;\n }\n }\n }\n return hasUnmatchedDimension;\n};\n\n/**\n * Retrieves product dimensions with availabilities.\n * @param product - Product for which the dimensions need to be retrieved.\n * @param matchingDimensionValues - Selected dimensions - filter criteria for the dimensions API.\n * @param context - Action context.\n * @param catalogId - Catalog id.\n * @returns Array of dimensions.\n */\nconst getFullDimensions = async (\n product: SimpleProduct,\n matchingDimensionValues: ProductDimension[],\n context: IActionContext,\n catalogId?: number\n) => {\n let fullDimensions: IProductDimensionsWithAvailabilitiesFull[] = [];\n const fullDimensionPromises = (product.Dimensions ?? []).map(dimension => {\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\n MatchingDimensionValues: matchingDimensionValues,\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue,\n CatalogId: catalogId\n };\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n product.MasterProductId ? product.MasterProductId : product.RecordId,\n searchCriteria\n );\n\n return dimensionValuesPromise.then(dimensionValues => {\n const fullDimension: IProductDimensionsWithAvailabilitiesFull = {\n ...dimension,\n dimensionValuesWithInventory: dimensionValues\n };\n return fullDimension;\n });\n });\n fullDimensions = await Promise.all(fullDimensionPromises);\n return fullDimensions;\n};\n\n/**\n * Retrieves product variant for the given input or undefined if not found.\n * @param input - Action input.\n * @param context - Action context.\n * @param fullDimensions - Product dimensions with availabilities.\n * @returns A product variant that is available or undefined.\n */\nconst getProductVariant = async (\n input: SelectedVariantInput,\n context: IActionContext,\n fullDimensions: IProductDimensionsWithAvailabilitiesFull[]\n) => {\n let productVariant: SimpleProduct | undefined;\n if (\n ArrayExtensions.hasElements(fullDimensions) &&\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory) &&\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory[0].ProductIds)\n ) {\n const variantProductId = fullDimensions[0].dimensionValuesWithInventory[0].ProductIds[0];\n const result = await ProductsDataActions.getByIdsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\n bypassCache: input.bypassCache\n },\n input.channelId,\n [variantProductId],\n null,\n input.catalogId ?? 0\n );\n productVariant = result[0];\n productVariant = { ...productVariant };\n const variantImageUrl = generateProductImageUrl(productVariant, context.requestContext.apiSettings);\n\n if (variantImageUrl) {\n productVariant.PrimaryImageUrl = variantImageUrl;\n }\n }\n\n return productVariant;\n};\n\n/**\n * Action method for the getSelectedVariant data action.\n * @param input - The action input class.\n * @param context - The action context.\n * @returns Simple product.\n */\nasync function getSelectedVariantAction(input: SelectedVariantInput, context: IActionContext): Promise {\n const matchingDimensionValues = input.matchingDimensionValues ?? getDimensionValuesFromQuery(context.requestContext.url.requestUrl);\n\n const result = await ProductsDataActions.getByIdsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\n bypassCache: input.bypassCache\n },\n input.channelId,\n [input.productId],\n null,\n input.catalogId ?? 0\n );\n let product = result[0];\n\n // Need to dereference this before editing it. Otherwise we might not\n // properly get the mobx events because if things aren't properly observable\n // they won't fire when you set them, and then if you don't deref the value in\n // the cache will match the value when you try to save it, so it won't detect any\n // changes there either\n product = { ...product };\n const hasUnmatchedDimension = checkIfHasUnmatchedDimensions(product, matchingDimensionValues);\n\n const newImageUrl = generateProductImageUrl(product, context.requestContext.apiSettings);\n\n if (newImageUrl) {\n product.PrimaryImageUrl = newImageUrl;\n }\n\n const fullDimensions: IProductDimensionsWithAvailabilitiesFull[] = await getFullDimensions(\n product,\n matchingDimensionValues,\n context,\n input.catalogId\n );\n\n // Retrieve product variants only if matching dimensions are provided.\n const productVariant: SimpleProduct | undefined = ArrayExtensions.hasElements(matchingDimensionValues)\n ? await getProductVariant(input, context, fullDimensions)\n : undefined;\n\n // Update dimension value back to the one that comes from API since the URL query might have a different format for the dimension values.\n if (productVariant?.Dimensions && product.Dimensions) {\n for (const dimension of product.Dimensions) {\n const matchedTargetDimensionFromApi = productVariant.Dimensions.find(\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\n );\n const matchedTargetDimensionFromSearch = matchingDimensionValues.find(\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\n );\n\n if (matchedTargetDimensionFromSearch && matchedTargetDimensionFromApi) {\n dimension.DimensionValue = matchedTargetDimensionFromApi.DimensionValue;\n }\n }\n }\n\n if (!hasUnmatchedDimension && ArrayExtensions.hasElements(matchingDimensionValues) && productVariant) {\n return productVariant;\n }\n\n const selectedProduct: ISelectedProduct = product;\n selectedProduct.productVariant = productVariant;\n return selectedProduct;\n}\n\n/**\n * The complete getSelectedVariant data action.\n */\nexport const getSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-selected-variant',\n action: getSelectedVariantAction as IAction,\n input: createInput\n});\n\nexport default getSelectedVariantActionDataAction;\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICartState } from '../state-interfaces';\nimport { getCartState } from './get-cart-state';\n\n/**\n * Input class for getCart data action.\n */\nexport class GetCartStateDataInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly catalogId?: number;\n\n constructor(apiSettings: ICommerceApiSettings, requestContext?: IRequestContext) {\n this.apiSettings = apiSettings;\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n public getCacheKey = () => `GetCart-ChannelId:${this.apiSettings.channelId}-CatalogId:${this.catalogId ?? 0}`;\n\n public getCacheObjectType = () => 'Cart';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nconst createInput = (inputData: ICreateActionContext) => {\n return new GetCartStateDataInput(inputData.requestContext.apiSettings, inputData.requestContext);\n};\n\n/**\n * Data action to copy the cart for actions.\n * @param input\n * @param ctx\n */\nexport async function getCartStateData(input: GetCartStateDataInput, ctx: IActionContext): Promise {\n const cartState = await getCartState(ctx);\n if (cartState && cartState.cart.Id !== undefined) {\n return cartState;\n }\n\n return undefined;\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce/global-state/get-cart-state-data',\n action: >getCartStateData,\n input: createInput\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { retailAction } from '@msdyn365-commerce/retail-proxy/dist';\nimport { createGetByCustomerInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CommerceListsDataActions.g';\nimport { CommerceList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nconst createWishlistInput = (inputData: ICreateActionContext) => {\n if (inputData.requestContext && inputData.requestContext.user && inputData.requestContext.user.isAuthenticated) {\n return createGetByCustomerInput({}, null);\n }\n\n throw new Error('[get-wishlist-by-customer-id] Unable to create input for getWishlists');\n};\n\n/**\n * Get Org Unit Configuration Data Action.\n */\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-wishlist-by-customer-id',\n action: >retailAction,\n input: createWishlistInput\n});\n\nexport default retailActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { Address, Customer } from '@msdyn365-commerce/retail-proxy';\n\nimport { createAddressManagementInput, doAddressManagementOperation, IAddressManagementInput } from './add-address';\n\nexport function deleteAddressHandler(customer: Customer, address: Address): Customer {\n customer.Addresses = customer.Addresses || [];\n customer.Addresses = [...customer.Addresses.filter(cur => cur.RecordId !== address.RecordId)];\n return customer;\n}\n\nexport async function deleteAddressAction(input: IAddressManagementInput, ctx: IActionContext): Promise {\n return doAddressManagementOperation(input, ctx, deleteAddressHandler);\n}\n\n/**\n * The deleteAddress data action\n * Calls the read RetailServer API to get information about a customer\n * Removes all address information from the retireved customer, and\n * then updates that customer via the update RetailServer API.\n */\nexport const deleteAddressActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/delete-address',\n action: >deleteAddressAction,\n input: <(args: ICreateActionContext) => IActionInput>(createAddressManagementInput),\n isBatched: false\n});\n\nexport default deleteAddressActionDataAction;\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { getAttributeDefinitionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { AttributeDefinition, AttributeDefinitionCriteria } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for get attribute definitions data action.\n */\nexport class GetAttributeDefinitionsInput implements IActionInput {\n public attributeDefinitionCriteria?: AttributeDefinitionCriteria;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria) {\n this.attributeDefinitionCriteria = attributeDefinitionCriteria;\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('AttributeDefinitions', this.apiSettings);\n\n public getCacheObjectType = () => 'CustomerAttribute';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): GetAttributeDefinitionsInput => {\n const { apiSettings, channel } = inputData.requestContext;\n if (!channel || !channel.CustomerAttributeGroupId) {\n throw new Error('[getAttributeDefinitions][createInput]: Customer attribute group id is not found.');\n }\n\n return new GetAttributeDefinitionsInput(apiSettings, { AttributeGroupIdentifier: channel.CustomerAttributeGroupId });\n};\n\nconst getAttributeDefinitionsAction = async (input: GetAttributeDefinitionsInput, ctx: IActionContext): Promise => {\n if (input && ctx.requestContext.channel && ctx.requestContext.channel.CustomerAttributeGroupId) {\n return getAttributeDefinitionsAsync({ callerContext: ctx }, input.attributeDefinitionCriteria || null).then(response => {\n return response;\n });\n }\n\n ctx.trace('[getAttributeDefinitions]Invalid input passed to action');\n return [];\n};\n\nexport const getAttributeDefinitionsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-custom-attributes',\n action: >getAttributeDefinitionsAction,\n input: createInput\n});\n\nexport default getAttributeDefinitionsActionDataAction;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { StockCountJournal, StockCountJournalTransaction } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function stockCountJournalsQuery(journalId?: string): DataServiceQuery {\n var key = (journalId) ? { JournalId: journalId } : null;\n return new DataServiceQuery(\"StockCountJournals\", \"StockCountJournal\", \"StockCountJournalClass\", key);\n }\n \n export function createCreateInput(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery().create(entity);\n }\n\n export function createStockCountJournalAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery(entity.JournalId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery(entity.JournalId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(journalId: string): IDataServiceRequest {\n return stockCountJournalsQuery(journalId).read();\n }\n\n export function readAsync(context: IContext, journalId: string): AsyncResult {\n const request = createReadAsync(journalId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return stockCountJournalsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSyncInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = stockCountJournalsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Sync', true, \n 'StockCountJournalClass'\n , 'true', {bypassCache: 'get', returnEntity: 'StockCountJournal'}, { });\n } \n \n export function syncAsync(context: IContext, ):AsyncResult {\n const request = createSyncInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createSyncTransactionsInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SyncTransactions', true, \n 'StockCountJournalTransactionClass'\n , 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\n } \n \n export function syncTransactionsAsync(context: IContext, journalId: string):AsyncResult {\n const request = createSyncTransactionsInput(context.queryResultSettings, journalId);\n return executeAction(request, context);\n } \n \n export function createCalculateEstimatedOnHandInventoryInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CalculateEstimatedOnHandInventory', true, \n 'StockCountJournalTransactionClass'\n , 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\n } \n \n export function calculateEstimatedOnHandInventoryAsync(context: IContext, journalId: string):AsyncResult {\n const request = createCalculateEstimatedOnHandInventoryInput(context.queryResultSettings, journalId);\n return executeAction(request, context);\n } \n \n export function createRemoveJournalInput(journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveJournal', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function removeJournalAsync(context: IContext, journalId: string):AsyncResult {\n const request = createRemoveJournalInput(journalId);\n return executeAction(request, context);\n } \n \n export function createRemoveTransactionInput(journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveTransaction', true, '', '', {bypassCache: 'get', returnEntity: ''}, {itemId: itemId, inventSizeId: inventSizeId, inventColorId: inventColorId, inventStyleId: inventStyleId, configurationId: configurationId });\n } \n \n export function removeTransactionAsync(context: IContext, journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null):AsyncResult {\n const request = createRemoveTransactionInput(journalId, itemId, inventSizeId, inventColorId, inventStyleId, configurationId);\n return executeAction(request, context);\n } \n \n export function createRemoveStockCountLineByLineIdInput(journalId: string, stockCountLineId: number): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByLineId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {stockCountLineId: stockCountLineId });\n } \n \n export function removeStockCountLineByLineIdAsync(context: IContext, journalId: string, stockCountLineId: number):AsyncResult {\n const request = createRemoveStockCountLineByLineIdInput(journalId, stockCountLineId);\n return executeAction(request, context);\n } \n \n export function createRemoveStockCountLineByProductRecIdInput(journalId: string, productId: number): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByProductRecId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productId: productId });\n } \n \n export function removeStockCountLineByProductRecIdAsync(context: IContext, journalId: string, productId: number):AsyncResult {\n const request = createRemoveStockCountLineByProductRecIdInput(journalId, productId);\n return executeAction(request, context);\n } \n \n export function createCommitInput(journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function commitAsync(context: IContext, journalId: string):AsyncResult {\n const request = createCommitInput(journalId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction } from '@msdyn365-commerce/core';\nimport { retailAction } from '@msdyn365-commerce/retail-proxy/dist';\nimport { createGetOrgUnitConfigurationInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\n/**\n * Get Org Unit Configuration Data Action.\n */\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-org-unit-configuration',\n action: >retailAction,\n input: () => {\n return createGetOrgUnitConfigurationInput();\n }\n});\n\nexport default retailActionDataAction;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n InventoryAccuracy,\n ProductDimensionAvailabilitySearchCriteria,\n ProductDimensionType,\n ProductDimensionValueInventoryAvailability,\n ProductsDataActions\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions, generateCacheKey, IKeyValuePair } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Interface for IProductDimension.\n */\nexport interface IProductDimension {\n masterProductId: number;\n requestDimensionType?: ProductDimensionType;\n requestDimensionTypes?: ProductDimensionType[];\n}\n\n/**\n * Product Input.\n */\nexport class ProductsDimensionAvailabilitiesInput implements IActionInput {\n public masterProductId: number;\n\n public requestDimensionType: ProductDimensionType | undefined;\n\n public requestDimensionTypes: ProductDimensionType[] | undefined;\n\n public catalogId?: number;\n\n private _requestContext?: IRequestContext;\n\n public constructor(\n masterProductId: number,\n requestDimensionType?: ProductDimensionType,\n requestContext?: IRequestContext,\n requestDimensionTypes?: ProductDimensionType[]\n ) {\n this._requestContext = requestContext;\n this.masterProductId = masterProductId;\n this.requestDimensionType = requestDimensionType;\n this.requestDimensionTypes = requestDimensionTypes;\n\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n /**\n * Cache key.\n * @returns String.\n */\n public getCacheKey: () => string = () => {\n const keys: IKeyValuePair[] = [\n { key: 'MasterProductId', value: this.masterProductId },\n { key: 'CatalogId', value: this.catalogId }\n ];\n if (this.requestDimensionTypes) {\n keys.push({ key: 'DimensionTypes', value: this.requestDimensionTypes });\n } else {\n keys.push({ key: 'DimensionType', value: this.requestDimensionType });\n }\n return generateCacheKey(this._requestContext?.apiSettings, ...keys);\n };\n\n /**\n * Cache object type.\n * @returns String.\n */\n public getCacheObjectType = (): string => 'MasterProductDimensionAvailabilities';\n\n /**\n * Cache type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * Create input method for the getDimensionsForSelectedVariant data action.\n * @param inputData - The input data passed to the createInput method.\n * @returns - The input for the data action.\n */\nexport const createProductsDimensionAvailabilitiesInput = (\n inputData: ICreateActionContext>\n): ProductsDimensionAvailabilitiesInput[] => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- ignore type of config.\n const productsDimensions: IProductDimension[] = inputData.config?.productsDimensions;\n\n return productsDimensions.map((productDimension: IProductDimension) => {\n return new ProductsDimensionAvailabilitiesInput(\n productDimension.masterProductId,\n productDimension.requestDimensionType,\n inputData.requestContext,\n productDimension.requestDimensionTypes\n );\n });\n};\n\n/**\n * Action Method for the getDimensionsForSelectedVariant Data Action.\n * @param inputs - Input for the data action.\n * @param context - Action context.\n * @returns Master product dimensions with availabilities.\n */\nexport async function getDimensionAvailabilitiesForProductsAction(\n inputs: ProductsDimensionAvailabilitiesInput[],\n context: IActionContext\n): Promise {\n if (!Array.isArray(inputs) || !ArrayExtensions.hasElements(inputs)) {\n context.trace('[getDimensionAvailabilitiesForProductsAction] Invalid or empty inputs passed.');\n return [];\n }\n\n const promise = inputs.map(input => {\n // As per default PDP loads shipping inventory policies, so making swatch to pick the same configuration\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(\n context,\n [input.masterProductId],\n true,\n undefined,\n undefined\n );\n\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\n MatchingDimensionValues: undefined,\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue,\n CatalogId: input.catalogId\n };\n\n if (input.requestDimensionTypes) {\n searchCriteria.RequestedDimensionTypeValues = input.requestDimensionTypes;\n searchCriteria.InventoryAccuracyValue = InventoryAccuracy.Low;\n } else {\n searchCriteria.RequestedDimensionTypeValue = input.requestDimensionType;\n }\n\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n input.masterProductId,\n searchCriteria\n );\n\n return dimensionValuesPromise;\n });\n\n // eslint-disable-next-line no-return-await -- existing code\n return await Promise.all(promise);\n}\n\n/**\n * The GetDimensionAvailabilitiesForProductsAction\n * Gets the available product dimensions for the master product via the getDimensionValues RetailServer API.\n */\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-dimension-availabilities-for-products',\n action: getDimensionAvailabilitiesForProductsAction as IAction,\n input: createProductsDimensionAvailabilitiesInput,\n isBatched: true\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput } from '@msdyn365-commerce/core';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { TelemetryEvent } from '@msdyn365-commerce/telemetry-internal';\nimport { getProductInfoFromSimpleProduct } from './telemetry.action.helper';\n\nconst beforeGetById = async (inputs: IActionInput | IActionInput[]) => {\n // placeholder\n};\n\nconst afterGetById = async (\n _inputs: IActionInput | IActionInput[],\n simpleProduct: SimpleProduct | SimpleProduct[],\n actionContext: IActionContext\n) => {\n simpleProduct = await Promise.resolve(Array.isArray(simpleProduct) ? simpleProduct[0] : simpleProduct);\n\n // If simple product result is defined run the post hook\n if (simpleProduct) {\n const productInfo = getProductInfoFromSimpleProduct(simpleProduct);\n actionContext.requestContext.telemetryData[productInfo.productSku] = productInfo;\n actionContext.requestContext.telemetryData[TelemetryEvent.ProductPageView] = productInfo ? [productInfo] : [];\n }\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Products/GetById',\n postReaderHook: afterGetById,\n preReaderHook: beforeGetById\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport {\n getOrderTemplates,\n GetOrderTemplatesInput,\n getPaginatedOrderTemplateLinesAction,\n GetPaginatedOrderTemplateLinesInput,\n QueryResultSettingsProxy\n} from '..';\nimport { OrderTemplate } from '../utilities/order-templates';\n\n/**\n * Input class for the GetOrderTemplates data action.\n */\nexport class GetFullOrderTemplateInput implements IActionInput {\n public orderTemplateId: string;\n\n public queryResultSettings: IQueryResultSettings;\n\n constructor(orderTemplateId: string, queryResultSettings: IQueryResultSettings) {\n this.orderTemplateId = orderTemplateId;\n this.queryResultSettings = queryResultSettings;\n }\n\n public getCacheKey = () => `GetFullOrderTemplate|${this.orderTemplateId}`;\n\n public getCacheObjectType = () => 'GetFullOrderTemplate';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the GetOrderTemplate method.\n * @param inputData The input data passed to the createInput method.\n * @param orderTemplateId\n */\nexport const createGetFullOrderTemplateInput = (inputData: ICreateActionContext, orderTemplateId: string): GetFullOrderTemplateInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to get full order templates. User is not authenticated.');\n }\n const queryResultSettings: IQueryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n queryResultSettings.count = true;\n\n return new GetFullOrderTemplateInput(orderTemplateId, queryResultSettings);\n};\n\n/**\n * The action method for the GetFullOrderTemplate data action.\n * @param input The action input.\n * @param ctx The action context.\n */\nexport async function getFullOrderTemplateAction(input: GetFullOrderTemplateInput, ctx: IActionContext): Promise {\n if (!ctx.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get full order template. User is not authenticated.');\n }\n\n const inputParams = new GetOrderTemplatesInput(input.orderTemplateId);\n const productLists: ProductList[] = await getOrderTemplates(inputParams, ctx);\n\n if (!productLists || productLists.length !== 1) {\n throw new Error('Unable to get full order template. Order template was not found.');\n }\n\n const inputLines = new GetPaginatedOrderTemplateLinesInput(productLists[0].Id, input.queryResultSettings);\n const linesState = await getPaginatedOrderTemplateLinesAction(inputLines, ctx);\n return new OrderTemplate(productLists[0], linesState.lines, linesState.totalCount);\n}\n\n/**\n * The GetFullOrderTemplate Data Action\n * Returns order templates.\n */\nexport const getFullOrderTemplateActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/get-full-order-template',\n action: >getFullOrderTemplateAction,\n input: createGetFullOrderTemplateInput\n});\n\nexport default getFullOrderTemplateActionDataAction;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ProductRefiner } from '@msdyn365-commerce/retail-proxy';\nimport { getRefinersByCategoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\nimport getCurrentCategory, { CurrentCategoryInput } from './get-current-category';\nimport { generateCacheKey } from './utilities';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Action Input class for the getRefinersByCategory data action.\n */\nexport class RefinersByCategoryInput implements IActionInput {\n public readonly catalogId: number;\n\n public readonly currentCategory: CurrentCategoryInput;\n\n public readonly queryResultSettingsProxy: QueryResultSettingsProxy;\n\n constructor(category: CurrentCategoryInput, queryResultSettingsProxy: QueryResultSettingsProxy, catalogId?: number) {\n this.queryResultSettingsProxy = queryResultSettingsProxy;\n this.catalogId = catalogId || 0;\n this.currentCategory = category;\n }\n\n public getCacheKey = () =>\n generateCacheKey(\n undefined,\n { key: 'CategoryKey', value: this.currentCategory.getCacheKey() },\n { key: 'CatalogId', value: this.catalogId },\n { key: 'QueryResultSettingsCacheKeyHint', value: this.queryResultSettingsProxy.cacheKeyHint }\n );\n\n public getCacheObjectType = () => 'ProductRefiner';\n\n public shouldCacheOutput = () => true;\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nexport const createRefinersByCategoryInput = (inputData: ICreateActionContext>): IActionInput => {\n if (inputData && inputData.requestContext) {\n const catalogId = getCatalogId(inputData.requestContext);\n const currentCategory = new CurrentCategoryInput(inputData.requestContext);\n\n return new RefinersByCategoryInput(currentCategory, QueryResultSettingsProxy.fromInputData(inputData), catalogId);\n }\n\n throw new Error('Please specify categoryId query string in request.');\n};\n\n/**\n * Calls the Retail API and returns all refiners by category.\n * @param input\n * @param ctx\n */\nexport async function getRefinersByCategoryAction(input: RefinersByCategoryInput, ctx: IActionContext): Promise {\n let categoryId = input.currentCategory.categoryId;\n if (input.currentCategory.categorySlug && !categoryId) {\n const category = await getCurrentCategory(input.currentCategory, ctx);\n if (!category) {\n ctx.trace('[getRefinersByCategoryAction] Unable to find category');\n return [];\n }\n categoryId = category.RecordId;\n }\n\n return getRefinersByCategoryAsync(\n { callerContext: ctx, queryResultSettings: input.queryResultSettingsProxy.QueryResultSettings },\n input.catalogId,\n categoryId || 0\n );\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-refiners-by-category',\n action: >getRefinersByCategoryAction,\n input: createRefinersByCategoryInput\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { InventoryInboundOutboundDocument, InventoryDocumentLineFilterCriteria, InventoryDocumentUpdateLinesAction, InventoryDocumentLineOperationResultSettings, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult, InventoryInboundOutboundDocumentLine, InventoryDocumentSerialNumberLineSearchCriteria, InventoryDocumentSerialNumberLine, InventoryDocumentValidationResultSummary, InventoryDocumentValidationResultSearchCriteria, InventoryDocumentValidationResultLine, InventoryDocumentReceiptSearchCriteria, ReceiptRetrievalCriteria, Receipt, InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria, InventoryDocumentSourceDocumentLineCommitRecord, InventoryDocumentSearchCriteria, InventoryDocumentLineSearchCriteria, InventoryDocumentSerialNumberLineResetAction, InventoryDocumentSerialNumberLineUpdateAction, InventoryInboundOutboundDocumentLinesSummary, InventoryDocumentSerialNumberLinesSummary } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function inventoryInboundOutboundDocumentsQuery(workDocumentId?: string): DataServiceQuery {\n var key = (workDocumentId) ? { WorkDocumentId: workDocumentId } : null;\n return new DataServiceQuery(\"InventoryInboundOutboundDocuments\", \"InventoryInboundOutboundDocument\", \"InventoryInboundOutboundDocumentClass\", key);\n }\n \n export function createCreateInput(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery().create(entity);\n }\n\n export function createInventoryInboundOutboundDocumentAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(entity.WorkDocumentId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(entity.WorkDocumentId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(workDocumentId: string): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(workDocumentId).read();\n }\n\n export function readAsync(context: IContext, workDocumentId: string): AsyncResult {\n const request = createReadAsync(workDocumentId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createCommitInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('Commit', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentVersion: documentVersion });\n } \n \n export function commitAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createCommitInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateStatusInput(workDocumentId: string, documentStatus: number, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateStatus', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentStatus: documentStatus, documentVersion: documentVersion });\n } \n \n export function updateStatusAsync(context: IContext, workDocumentId: string, documentStatus: number, documentVersion?: number | null):AsyncResult {\n const request = createUpdateStatusInput(workDocumentId, documentStatus, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesByCriteriaInput(workDocumentId: string, filterCriteria?: InventoryDocumentLineFilterCriteria | null, updateLinesAction?: InventoryDocumentUpdateLinesAction | null, returnUpdatedLinesPolicy?: InventoryDocumentLineOperationResultSettings | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateLinesByCriteria', true, \n 'InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult'}, {filterCriteria: filterCriteria, updateLinesAction: updateLinesAction, returnUpdatedLinesPolicy: returnUpdatedLinesPolicy });\n } \n \n export function updateLinesByCriteriaAsync(context: IContext, workDocumentId: string, filterCriteria?: InventoryDocumentLineFilterCriteria | null, updateLinesAction?: InventoryDocumentUpdateLinesAction | null, returnUpdatedLinesPolicy?: InventoryDocumentLineOperationResultSettings | null):AsyncResult {\n const request = createUpdateLinesByCriteriaInput(workDocumentId, filterCriteria, updateLinesAction, returnUpdatedLinesPolicy);\n return executeAction(request, context);\n } \n \n export function createUpdateLineInput(workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateLine', true, \n 'InventoryInboundOutboundDocumentLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {documentLine: documentLine });\n } \n \n export function updateLineAsync(context: IContext, workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null):AsyncResult {\n const request = createUpdateLineInput(workDocumentId, documentLine);\n return executeAction(request, context);\n } \n \n export function createUpdateWorkingTerminalInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateWorkingTerminal', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentVersion: documentVersion });\n } \n \n export function updateWorkingTerminalAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createUpdateWorkingTerminalInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateNoteInput(workDocumentId: string, documentNote?: string | null, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateNote', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentNote: documentNote, documentVersion: documentVersion });\n } \n \n export function updateNoteAsync(context: IContext, workDocumentId: string, documentNote?: string | null, documentVersion?: number | null):AsyncResult {\n const request = createUpdateNoteInput(workDocumentId, documentNote, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateReceiptIdInput(workDocumentId: string, documentReceiptId?: string | null, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateReceiptId', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentReceiptId: documentReceiptId, documentVersion: documentVersion });\n } \n \n export function updateReceiptIdAsync(context: IContext, workDocumentId: string, documentReceiptId?: string | null, documentVersion?: number | null):AsyncResult {\n const request = createUpdateReceiptIdInput(workDocumentId, documentReceiptId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createRefreshOperationStatusInput(workDocumentId: string, ): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('RefreshOperationStatus', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, { });\n } \n \n export function refreshOperationStatusAsync(context: IContext, workDocumentId: string):AsyncResult {\n const request = createRefreshOperationStatusInput(workDocumentId);\n return executeAction(request, context);\n } \n \n export function createStartInput(sourceDocumentId: string | null, sourceDocumentType: number): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery();\n return query.createDataServiceRequestForOperation('Start', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {sourceDocumentId: sourceDocumentId, sourceDocumentType: sourceDocumentType });\n } \n \n export function startAsync(context: IContext, sourceDocumentId: string | null, sourceDocumentType: number):AsyncResult {\n const request = createStartInput(sourceDocumentId, sourceDocumentType);\n return executeAction(request, context);\n } \n \n export function createAddLineInput(workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('AddLine', true, \n 'InventoryInboundOutboundDocumentLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {documentLine: documentLine });\n } \n \n export function addLineAsync(context: IContext, workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null):AsyncResult {\n const request = createAddLineInput(workDocumentId, documentLine);\n return executeAction(request, context);\n } \n \n export function createDeleteLineInput(workDocumentId: string, documentLineId?: string | null, documentLineVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('DeleteLine', true, '', '', {bypassCache: 'get', returnEntity: ''}, {documentLineId: documentLineId, documentLineVersion: documentLineVersion });\n } \n \n export function deleteLineAsync(context: IContext, workDocumentId: string, documentLineId?: string | null, documentLineVersion?: number | null):AsyncResult {\n const request = createDeleteLineInput(workDocumentId, documentLineId, documentLineVersion);\n return executeAction(request, context);\n } \n \n export function createSearchSerialNumberLinesInput(queryResultSettings: IQueryResultSettings, workDocumentId: string, searchCriteria?: InventoryDocumentSerialNumberLineSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSerialNumberLines', true, \n 'InventoryDocumentSerialNumberLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentSerialNumberLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchSerialNumberLinesAsync(context: IContext, workDocumentId: string, searchCriteria?: InventoryDocumentSerialNumberLineSearchCriteria | null):AsyncResult {\n const request = createSearchSerialNumberLinesInput(context.queryResultSettings, workDocumentId, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createValidateInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('Validate', true, \n 'InventoryDocumentValidationResultSummaryClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentValidationResultSummary'}, {documentVersion: documentVersion });\n } \n \n export function validateAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createValidateInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createSearchValidationResultLinesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentValidationResultSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchValidationResultLines', true, \n 'InventoryDocumentValidationResultLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentValidationResultLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchValidationResultLinesAsync(context: IContext, searchCriteria?: InventoryDocumentValidationResultSearchCriteria | null):AsyncResult {\n const request = createSearchValidationResultLinesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSyncSourceDocumentInput(sourceDocumentId: string | null, sourceDocumentType: number): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery();\n return query.createDataServiceRequestForOperation('SyncSourceDocument', true, '', '', {bypassCache: 'get', returnEntity: ''}, {sourceDocumentId: sourceDocumentId, sourceDocumentType: sourceDocumentType });\n } \n \n export function syncSourceDocumentAsync(context: IContext, sourceDocumentId: string | null, sourceDocumentType: number):AsyncResult {\n const request = createSyncSourceDocumentInput(sourceDocumentId, sourceDocumentType);\n return executeAction(request, context);\n } \n \n export function createConfirmPurchaseOrderInput(sourceDocumentId: string | null, sourceDocumentType: number): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery();\n return query.createDataServiceRequestForOperation('ConfirmPurchaseOrder', true, '', '', {bypassCache: 'get', returnEntity: ''}, {sourceDocumentId: sourceDocumentId, sourceDocumentType: sourceDocumentType });\n } \n \n export function confirmPurchaseOrderAsync(context: IContext, sourceDocumentId: string | null, sourceDocumentType: number):AsyncResult {\n const request = createConfirmPurchaseOrderInput(sourceDocumentId, sourceDocumentType);\n return executeAction(request, context);\n } \n \n export function createSearchInventoryDocumentReceiptInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentReceiptSearchCriteria | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInventoryDocumentReceipt', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {searchCriteria: searchCriteria, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function searchInventoryDocumentReceiptAsync(context: IContext, searchCriteria?: InventoryDocumentReceiptSearchCriteria | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createSearchInventoryDocumentReceiptInput(context.queryResultSettings, searchCriteria, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchSourceDocumentLineCommitRecordsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSourceDocumentLineCommitRecords', true, \n 'InventoryDocumentSourceDocumentLineCommitRecordClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentSourceDocumentLineCommitRecord'}, {searchCriteria: searchCriteria });\n } \n \n export function searchSourceDocumentLineCommitRecordsAsync(context: IContext, searchCriteria?: InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria | null):AsyncResult {\n const request = createSearchSourceDocumentLineCommitRecordsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchInboundDocumentsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInboundDocuments', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocument'}, {searchCriteria: searchCriteria });\n } \n \n export function searchInboundDocumentsAsync(context: IContext, searchCriteria?: InventoryDocumentSearchCriteria | null):AsyncResult {\n const request = createSearchInboundDocumentsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchOutboundDocumentsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOutboundDocuments', true, \n 'InventoryInboundOutboundDocumentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocument'}, {searchCriteria: searchCriteria });\n } \n \n export function searchOutboundDocumentsAsync(context: IContext, searchCriteria?: InventoryDocumentSearchCriteria | null):AsyncResult {\n const request = createSearchOutboundDocumentsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchLinesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentLineSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchLines', true, \n 'InventoryInboundOutboundDocumentLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchLinesAsync(context: IContext, searchCriteria?: InventoryDocumentLineSearchCriteria | null):AsyncResult {\n const request = createSearchLinesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createResetSerialNumberLineInput(workDocumentId: string, resetSerialNumberLineAction?: InventoryDocumentSerialNumberLineResetAction | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('ResetSerialNumberLine', true, \n 'InventoryDocumentSerialNumberLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentSerialNumberLine'}, {resetSerialNumberLineAction: resetSerialNumberLineAction });\n } \n \n export function resetSerialNumberLineAsync(context: IContext, workDocumentId: string, resetSerialNumberLineAction?: InventoryDocumentSerialNumberLineResetAction | null):AsyncResult {\n const request = createResetSerialNumberLineInput(workDocumentId, resetSerialNumberLineAction);\n return executeAction(request, context);\n } \n \n export function createUpdateSerialNumberLineInput(workDocumentId: string, updateSerialNumberLineAction?: InventoryDocumentSerialNumberLineUpdateAction | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateSerialNumberLine', true, \n 'InventoryDocumentSerialNumberLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentSerialNumberLine'}, {updateSerialNumberLineAction: updateSerialNumberLineAction });\n } \n \n export function updateSerialNumberLineAsync(context: IContext, workDocumentId: string, updateSerialNumberLineAction?: InventoryDocumentSerialNumberLineUpdateAction | null):AsyncResult {\n const request = createUpdateSerialNumberLineInput(workDocumentId, updateSerialNumberLineAction);\n return executeAction(request, context);\n } \n \n export function createGetLinesSummaryInput(workDocumentId: string, ): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('GetLinesSummary', false, \n 'InventoryInboundOutboundDocumentLinesSummaryClass'\n , 'false', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocumentLinesSummary'}, { });\n } \n \n export function getLinesSummaryAsync(context: IContext, workDocumentId: string):AsyncResult {\n const request = createGetLinesSummaryInput(workDocumentId);\n return executeAction(request, context);\n } \n \n export function createGetSerialNumberLinesSummaryInput(workDocumentId: string, documentLineId?: string | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('GetSerialNumberLinesSummary', false, \n 'InventoryDocumentSerialNumberLinesSummaryClass'\n , 'false', {bypassCache: 'none', returnEntity: 'InventoryDocumentSerialNumberLinesSummary'}, {documentLineId: documentLineId });\n } \n \n export function getSerialNumberLinesSummaryAsync(context: IContext, workDocumentId: string, documentLineId?: string | null):AsyncResult {\n const request = createGetSerialNumberLinesSummaryInput(workDocumentId, documentLineId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport type CacheType = 'none' | 'instance' | 'application' | 'request';\n\n/**\n * BypassCache type.\n */\nexport type BypassCache = 'none' | 'get' | 'put' | 'getAndPut';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n cacheType?: CacheType;\n shouldRefresh?: boolean;\n error?: boolean;\n s?: ICacheSource;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n put(cacheKey: ICacheKey, item: ICacheItem): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): { [cacheKey: string]: ICacheItem } | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n}\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function commerceListsQuery(id?: number): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", \"CommerceListClass\", key);\n }\n \n export function createCreateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery().create(entity);\n }\n\n export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: number): IDataServiceRequest {\n return commerceListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: number): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return commerceListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByCustomer', true, \n 'CommerceListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\n } \n \n export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetByCustomerInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createAddLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createUpdateLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createRemoveLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('MoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createMoveLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('CopyLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createCopyLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createAddContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createRemoveContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('CreateInvitations', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\n } \n \n export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult {\n const request = createCreateInvitationsInput(id, commerceListInvitations);\n return executeAction(request, context);\n } \n \n export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\n } \n \n export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult {\n const request = createAcceptInvitationInput(invitationToken, customerId);\n return executeAction(request, context);\n } \n \n ","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ProductRefinerValue, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\nimport { createRefineSearchByCategoryInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { retailAction } from '@msdyn365-commerce/retail-proxy/dist/retail-action';\n\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Action Input class for the refineSearchByCategory data action.\n */\nexport class RefineSearchByCriteriaInput implements IActionInput {\n public readonly categoryId?: number;\n\n public readonly channelId?: number;\n\n public readonly refinementCriteria: ProductRefinerValue[];\n\n public readonly catalogId: number;\n\n public readonly queryResultSettingsProxy: QueryResultSettingsProxy;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(\n queryResultSettingsProxy: QueryResultSettingsProxy,\n apiSettings: ICommerceApiSettings,\n categoryId?: number,\n channelId?: number,\n refinementCriteria?: ProductRefinerValue[],\n catalogId?: number\n ) {\n this.categoryId = categoryId;\n this.channelId = channelId;\n this.refinementCriteria = refinementCriteria || [];\n this.queryResultSettingsProxy = queryResultSettingsProxy;\n this.catalogId = catalogId || 0;\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('RefineSearchByCriteriaInputCache', this.apiSettings);\n\n public getCacheObjectType = () => 'RefineSearchByCriteriaInput';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CreateInput method for the refineSearchByCategory data action.\n * @param inputData\n */\nexport const createInput = (inputData: ICreateActionContext>): IActionInput => {\n const refinementCriteria = inputData.config && inputData.config.refinementCriteria;\n\n if (inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.categoryId) {\n return createRefineSearchByCategoryInput(\n QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings,\n +inputData.requestContext.apiSettings.channelId,\n inputData.config ? Number(inputData.config.catalogId) : 0,\n +inputData.requestContext.query.categoryId,\n !Array.isArray(refinementCriteria)\n ? []\n : refinementCriteria.map((refinementCriterion: ProductRefinerValue) => refinementCriterion)\n );\n }\n\n throw new Error('Please specify categoryId, refinerId, and refinerSourceValue query string in request.');\n};\n\n/**\n * The RefineSearchByCategory data action\n * Uses categoryId query string parameter to call the RefinerSearchByCategory\n * RetailServer API to get information about products.\n */\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/regin-search-by-category',\n action: >retailAction,\n input: createInput\n});\n\nexport default retailActionDataAction;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { addProductListLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\nimport { ProductListLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { validateCatalogId } from '../utilities';\n\n/**\n * Input class for the AddItemToOrderTemplate data action.\n */\nexport class AddItemToOrderTemplateInput implements IActionInput {\n public readonly orderTemplateId: string;\n\n public readonly productId: number;\n\n public readonly quantity: number;\n\n public readonly unitOfMeasure: string;\n public readonly isMultipleCatalogFeatureEnabledInHq?: boolean;\n public readonly catalogId?: number | undefined;\n\n constructor(\n orderTemplateId: string,\n productId: number,\n quantity: number,\n unitOfMeasure: string,\n isMultipleCatalogFeatureEnabledInHq?: boolean,\n catalogId?: number\n ) {\n this.orderTemplateId = orderTemplateId;\n this.productId = productId;\n this.quantity = quantity;\n this.unitOfMeasure = unitOfMeasure || 'ea';\n this.isMultipleCatalogFeatureEnabledInHq = isMultipleCatalogFeatureEnabledInHq;\n this.catalogId = catalogId;\n }\n\n public getCacheKey = () => 'AddItemToOrderTemplateInput';\n\n public getCacheObjectType = () => 'AddItemToOrderTemplateInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the AddItemToOrderTemplate method.\n * @param {ICreateActionContext} inputData The input data passed to the createInput method.\n * @param {string} orderTemplateId The id of order template to update.\n * @param {number} productId The id of a product to add.\n * @param {number} quantity How many items of this product to add.\n * @param unitOfMeasure\n */\nexport const addItemToOrderTemplateInput = (\n inputData: ICreateActionContext,\n orderTemplateId: string,\n productId: number,\n quantity: number,\n unitOfMeasure: string,\n isMultipleCatalogFeatureEnabledInHq?: boolean,\n catalogId?: number | undefined\n): AddItemToOrderTemplateInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to create order template. User is not authenticated.');\n }\n return new AddItemToOrderTemplateInput(\n orderTemplateId,\n productId,\n quantity,\n unitOfMeasure,\n isMultipleCatalogFeatureEnabledInHq || false,\n catalogId\n );\n};\n\n/**\n * The action method for the AddItemToOrderTemplate data action.\n * @param {AddItemToOrderTemplateInput} input The action input.\n * @param {IActionContext} ctx The action context.\n */\nexport async function addItemToOrderTemplateAction(input: AddItemToOrderTemplateInput, ctx: IActionContext): Promise {\n try {\n // Adding catalog from context if not passed from component\n const catalogId = input.catalogId ?? getCatalogId(ctx.requestContext);\n validateCatalogId(catalogId);\n const productListLineToAdd: ProductListLine = {\n ProductListId: input.orderTemplateId,\n ProductId: input.productId,\n Quantity: input.quantity,\n UnitOfMeasure: input.unitOfMeasure,\n ...(input.isMultipleCatalogFeatureEnabledInHq && { catalogId: catalogId })\n };\n\n const productListLine: ProductListLine[] = await addProductListLinesAsync(\n {\n callerContext: ctx\n },\n input.orderTemplateId,\n [productListLineToAdd]\n );\n\n if (productListLine && productListLine.length === 1 && productListLine[0] && productListLine[0].ProductListId) {\n return productListLine[0];\n }\n ctx.telemetry.error('Product list line was not returned when adding it to order template');\n throw new Error('Product list line was not returned when adding it to order template');\n } catch (error) {\n ctx.telemetry.error('Not able to add an item to order template', error);\n throw error;\n }\n}\n\n/**\n * The AddItemToOrderTemplate Data Action.\n * Returns product list line that was added to the order template.\n */\nexport const addItemToOrderTemplateActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/add-item-to-order-template',\n action: >addItemToOrderTemplateAction,\n input: addItemToOrderTemplateInput\n});\n\nexport default addItemToOrderTemplateActionDataAction;\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n FilterDeliveryModeOption,\n ProductDeliveryOptions,\n ReleasedProductType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { getSelectedProductIdFromActionInput, getSelectedVariant, SelectedVariantInput } from '.';\nimport { FeatureStateInput, getFeatureStateActionDataAction } from './get-feature-state';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Input class for the GetDeliveryOptionsForSelectedVariant Data Action.\n */\nexport class GetDeliveryOptionsForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public selectedProduct: SimpleProduct | undefined;\n\n public customerId: string;\n\n public featureState?: boolean;\n\n constructor(productId: number, channelId: number, selectedProduct?: SimpleProduct, customerId?: string, featureState?: boolean) {\n this.productId = productId;\n this.channelId = channelId;\n this.selectedProduct = selectedProduct;\n this.customerId = customerId || '';\n this.featureState = featureState;\n }\n\n public getCacheKey = () => 'DeliveryOptionsForSelectedVariant';\n\n public getCacheObjectType = () => 'DeliveryOptions';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Calls the Retail Feature State API and returns a list of feature with isEnabled flag.\n * @param context\n */\nexport async function getFeatureState(context: IActionContext): Promise {\n return getFeatureStateActionDataAction(new FeatureStateInput(), context);\n}\n\n/**\n * The createInput method for the GetDeliveryOptionsForSelectedVariant Data Action.\n * @param inputData The input data for the createInput method.\n */\nexport const createDeliveryOptionsForSelectedVariantInput = (\n inputData: ICreateActionContext>\n): GetDeliveryOptionsForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new GetDeliveryOptionsForSelectedVariantInput(\n +productId,\n +inputData.requestContext.apiSettings.channelId,\n undefined,\n undefined\n );\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * The Action Method for the GetDeliveryOptionsForSelectedVariant Data Action\n * Pulls the currently selected variant from the cache using the getSelectedVariant data action, and gets it's supported delivery options\n * via the getDeliveryOptionsAsync RetailServer API.\n * @param input\n * @param ctx\n */\nexport async function getDeliveryOptionsForSelectedVariantAction(\n input: GetDeliveryOptionsForSelectedVariantInput,\n ctx: IActionContext\n): Promise {\n if (input.featureState === undefined) {\n const featureState = await getFeatureState(ctx);\n input.featureState = featureState?.find(\n item => item.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'\n )?.IsEnabled;\n }\n\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(\n input.productId,\n input.channelId,\n undefined,\n undefined,\n ctx.requestContext\n );\n\n return getSelectedVariant(selectedVariantInput, ctx);\n }\n\n return activeProduct;\n })\n .then((productResult: SimpleProduct | null) => {\n const activeProduct: SimpleProduct | undefined = productResult;\n\n if (activeProduct) {\n return getDeliveryOptionsAsync(\n { callerContext: ctx, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx) },\n [activeProduct.RecordId],\n {},\n\n // For service item, should not apply the filter, otherwise there will be no electronic delivery mode\n input.featureState && productResult?.ItemTypeValue !== ReleasedProductType.Service\n ? FilterDeliveryModeOption.FilterOutNonPickupDeliveryMode\n : null\n ).then(response => {\n if (response && response.length > 0) {\n return response[0];\n }\n\n return undefined;\n });\n }\n\n return undefined;\n })\n .catch((error: Error) => {\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[getDeliveryOptionsForSelectedVariantAction]Error executing action');\n throw new Error('[getDeliveryOptionsForSelectedVariantAction]Error executing action');\n });\n}\n\nexport const getDeliveryOptionsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-delivery-options-for-selected-variant',\n action: >getDeliveryOptionsForSelectedVariantAction,\n input: createDeliveryOptionsForSelectedVariantInput\n});\n\nexport default getDeliveryOptionsForSelectedVariantActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { Customer, CustomersDataActions } from '@msdyn365-commerce/retail-proxy';\n\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetCustomerInput implements IActionInput {\n public customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly cacheType?: CacheType;\n\n public constructor(apiSettings: ICommerceApiSettings, accountNumber?: string, cacheType?: CacheType) {\n this.customerAccountNumber = accountNumber;\n this.apiSettings = apiSettings;\n this.cacheType = cacheType;\n }\n\n /**\n * GetCacheKey.\n * @returns - Returns string.\n */\n public getCacheKey = (): string => buildCacheKey(`Customer-${this.customerAccountNumber}`, this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns - Cache Object Type string.\n */\n public getCacheObjectType = (): string => 'Customer';\n\n /**\n * DataCacheType.\n * @returns - CacheType string.\n */\n public dataCacheType = (): CacheType => {\n return this.cacheType ? this.cacheType : 'request';\n };\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - ProductAvailabilitiesForSelectedVariant or error.\n */\nconst createInput = (inputData: ICreateActionContext>): GetCustomerInput => {\n const { user, apiSettings } = inputData.requestContext;\n if (!user.token || !user.isAuthenticated) {\n throw new Error('[getCustomer][createInput]: User is not Authenticated.');\n }\n\n return new GetCustomerInput(apiSettings);\n};\n\n/**\n * GetCustomerAction.\n * @param input - GetCustomerInput.\n * @param ctx - Action Context.\n * @returns - Customer information.\n */\nconst getCustomerAction = async (input: GetCustomerInput, ctx: IActionContext): Promise => {\n if (input && ctx.requestContext.user.isAuthenticated) {\n // TO-DO- Need to clean up this code once SDK releases new proxy that handles null.\n return CustomersDataActions.readAsync({ callerContext: ctx, bypassCache: 'get' }, input.customerAccountNumber || '').then(\n response => {\n return Array.isArray(response) ? response[0] : response;\n }\n );\n }\n\n ctx.trace('[getCustomer]Invalid input passed to action');\n return {};\n};\n\n/**\n * The customer data action.\n */\nexport const getCustomerActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-customer',\n action: >getCustomerAction,\n input: createInput\n});\n\nexport default getCustomerActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Represents a pair of two fields: key and value.\n * Used to initialize a dictionary.\n */\nexport interface IKeyValuePair {\n readonly key: Key;\n readonly value: Value;\n}\n\n/**\n * Represents a dictionary in memory storage.\n */\nexport class Dictionary {\n /**\n * Values stored in the dictionary.\n */\n private _values: { [eventName: string]: Value };\n\n /**\n * The number of values stored in the dictionary (does not include keys).\n */\n private _length: number;\n\n /**\n * Initializes an empty dictionary or a dictionary with the given key value pairs.\n * @param {IKeyValuePair[]} entries The key value pairs which should be stored in the dictionary initially.\n */\n public constructor(...entries: IKeyValuePair[]) {\n this._values = {};\n this._length = 0;\n entries.forEach(keyValuePair => {\n this.setValue(keyValuePair.key, keyValuePair.value);\n });\n }\n\n /**\n * Removes value from the dictionary for the given key.\n * @param {Key} key The key to retrieve the value.\n * @remark Does nothing in case the key is not present in the dictionary.\n */\n public removeValue(key: Key): void {\n if (!this.hasValue(key)) {\n return;\n }\n\n --this._length;\n delete this._values[key];\n }\n\n /**\n * Retrieves a value from the dictionary or returns undefined in case it's not found.\n * @param {Key} key The key to retrieve the value.\n * @returns {Value | undefined} The value stored in the dictionary or undefined in case it's not found.\n */\n public getValue(key: Key): Value | undefined {\n return this._values[key];\n }\n\n /**\n * Retrieves a value from the dictionary.\n * In case it's not found, adds the default value to the dictionary and returns it.\n * @param {Key} key The key to retrieve the value.\n * @param defaultValue\n * @returns {Value} The value stored in the dictionary or the default value in case it's not found.\n */\n public getValueWithDefaultValue(key: Key, defaultValue: Value): Value {\n if (!this.hasValue(key)) {\n this.setValue(key, defaultValue);\n }\n return this.getValue(key)!;\n }\n\n /**\n * Sets the value to the dictionary for the given key.\n * @remarks In case undefined was passed, removes the value from the dictionary instead.\n * @param {Key} key The key under which the value should be stored.\n * @param {Value} value The value which should be stored in the dictionary.\n */\n public setValue(key: Key, value: Value): void {\n if (value === undefined) {\n this.removeValue(key);\n return;\n }\n\n if (!this.hasValue(key)) {\n ++this._length;\n }\n\n this._values[key] = value;\n }\n\n /**\n * Checks if the dictionary stores some value (except undefined) for the given key.\n * @param {Key} key The key to retrieve the value.\n * @returns {boolean} True in case the value is present, false otherwise or if it's undefined.\n */\n public hasValue(key: Key): boolean {\n return this._values[key] !== undefined;\n }\n\n /**\n * Checks if the dictionary is empty.\n * @returns {boolean} True if the dictionary is empty, false otherwise.\n */\n public isEmpty(): boolean {\n return this.length === 0;\n }\n\n /**\n * Retrieves the number of values stored in the dictionary.\n * @remark Use `isEmpty` to check if the dictionary has any elements.\n * @returns {number} The number of values stored.\n */\n public get length(): number {\n return this._length;\n }\n\n /**\n * Clears the dictionary by removing all elements from the storage.\n */\n public clear(): void {\n this._values = {};\n this._length = 0;\n }\n\n /**\n * Returns all values stored in the dictionary.\n * @returns {Value[]} List of values.\n */\n public getValues(): Value[] {\n return this.getKeys().map(key => this._values[key]);\n }\n\n /**\n * Returns all keys stored in the dictionary.\n * @returns {string[]} List of keys.\n */\n public getKeys(): Key[] {\n return Object.keys(this._values);\n }\n\n /**\n * Returns all key value pairs stored in the dictionary.\n * @returns {IKeyValuePair[]} List of key value pairs.\n */\n public getKeyValuePairs(): IKeyValuePair[] {\n return this.getKeys().map(key => {\n return { key, value: this._values[key] };\n });\n }\n}\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { PurchaseOrder } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function purchaseOrdersQuery(orderId?: string): DataServiceQuery {\n var key = (orderId) ? { OrderId: orderId } : null;\n return new DataServiceQuery(\"PurchaseOrders\", \"PurchaseOrder\", \"PurchaseOrderClass\", key);\n }\n \n export function createCreateInput(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery().create(entity);\n }\n\n export function createPurchaseOrderAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery(entity.OrderId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery(entity.OrderId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orderId: string): IDataServiceRequest {\n return purchaseOrdersQuery(orderId).read();\n }\n\n export function readAsync(context: IContext, orderId: string): AsyncResult {\n const request = createReadAsync(orderId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return purchaseOrdersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createCommitInput(orderId: string, ): IDataServiceRequest { \n const query = purchaseOrdersQuery(orderId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function commitAsync(context: IContext, orderId: string):AsyncResult {\n const request = createCommitInput(orderId);\n return executeAction(request, context);\n } \n \n ","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { CartLine, QueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { addCartLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\n\nimport { getPaginatedOrderTemplateLinesAction, GetPaginatedOrderTemplateLinesInput } from './get-paginated-order-template-lines';\n\n/**\n * Input class for the AddOrderTemplateToCart data action.\n */\nexport class AddOrderTemplateToCartInput implements IActionInput {\n public readonly orderTemplateId: string;\n public readonly isMultipleCatalogFeatureEnabledInHq?: boolean;\n constructor(orderTemplateId: string, isMultipleCatalogFeatureEnabledInHq?: boolean) {\n this.orderTemplateId = orderTemplateId;\n this.isMultipleCatalogFeatureEnabledInHq = isMultipleCatalogFeatureEnabledInHq;\n }\n\n public getCacheKey = () => 'AddOrderTemplateToCartInput';\n\n public getCacheObjectType = () => 'AddOrderTemplateToCartInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the AddOrderTemplateToCart method.\n * @param {ICreateActionContext} inputData The input data passed to the createInput method.\n * @param {string} orderTemplateId The id of template.\n */\nexport const addOrderTemplateToCartInput = (inputData: ICreateActionContext, orderTemplateId: string): AddOrderTemplateToCartInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to create order template. User is not authenticated.');\n }\n return new AddOrderTemplateToCartInput(orderTemplateId);\n};\n\n/**\n * The action method for the AddOrderTemplateToCart data action.\n * @param {AddOrderTemplateToCartInput} input The action input.\n * @param {IActionContext} ctx The action context.\n * @param context\n */\nexport async function addOrderTemplateToCartAction(input: AddOrderTemplateToCartInput, context: IActionContext): Promise {\n const cartState = await getCartState(context);\n const chunkCount = 1000;\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: chunkCount,\n Skip: 0\n }\n };\n const getPaginatedOrderTemplateLinesInput = new GetPaginatedOrderTemplateLinesInput(input.orderTemplateId, queryResultSettings);\n let orderTemplateLines = await getPaginatedOrderTemplateLinesAction(getPaginatedOrderTemplateLinesInput, context);\n let addedCartLines: CartLine[] = [];\n for (let skip = chunkCount; orderTemplateLines.lines.length > 0; skip += chunkCount) {\n const cartLines: CartLine[] = orderTemplateLines.lines.map(productLine => {\n const cartLine: CartLine = {\n ItemId: productLine.fullProduct?.ProductDetails.ItemId,\n ProductId: productLine.productListLine.ProductId,\n Quantity: productLine.productListLine.Quantity,\n TrackingId: '',\n UnitOfMeasureSymbol: productLine.productListLine.UnitOfMeasure,\n ...(input.isMultipleCatalogFeatureEnabledInHq && { catalogId: productLine.productListLine.CatalogId })\n };\n return cartLine;\n });\n await addCartLinesAsync({ callerContext: context }, cartState.cart.Id, cartLines, cartState.cart.Version).catch(error => {\n context.telemetry.trace(error.data?.ValidationResults);\n context.telemetry.trace('Unable to add order template to cart.');\n throw error.data?.ValidationResults;\n });\n addedCartLines = addedCartLines.concat(cartLines);\n getPaginatedOrderTemplateLinesInput.queryResultSettings.Paging!.Skip = skip;\n orderTemplateLines = await getPaginatedOrderTemplateLinesAction(getPaginatedOrderTemplateLinesInput, context);\n }\n await cartState.refreshCart({});\n return addedCartLines;\n}\n\n/**\n * The AddOrderTemplateToCart Data Action.\n * Returns created order template.\n */\nexport const addOrderTemplateToCartActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/add-order-template-to-cart',\n action: >addOrderTemplateToCartAction,\n input: addOrderTemplateToCartInput\n});\nexport default addOrderTemplateToCartActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport { IComponent, IComponentProps, ICoreContext, IModule, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\nimport { asSystemMetadata, EXCEPTION_NOMODULEBINDER, LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React from 'react';\nimport * as path from 'path';\nimport { IMSDyn365CommerceExtension } from '../app-initialization/models';\nimport { getModuleName, getPageInsightsCacheKey, isPageInsightsEnabled } from '../utils/helpers';\nimport { PAGE_INSIGHTS_COMPONENTS_KEY } from '../consts';\n\nexport interface IModuleWithView extends IModule {\n View: React.FunctionComponent;\n}\n\nconst getModuleBinder = (typeName: string) => ((msdyn365Commerce as unknown) as IMSDyn365CommerceExtension).moduleBinder(typeName);\n\nconst getBinder = (lookupKey: string, moduleName: string, requestCache: ICache, pageInsightsEnabled: boolean) => {\n const view = ((msdyn365Commerce as unknown) as IMSDyn365CommerceExtension).componentBinder(lookupKey);\n if (view) {\n if (pageInsightsEnabled) {\n const componentInsightsKey = getPageInsightsCacheKey(PAGE_INSIGHTS_COMPONENTS_KEY);\n const componentInsights = requestCache.get<{}>(componentInsightsKey)?.item || {};\n componentInsights[`${moduleName}`] = `${lookupKey.replace(/\\|/g, '/')}.component.tsx`;\n requestCache.put(componentInsightsKey, { item: componentInsights });\n }\n\n return { key: lookupKey, view };\n }\n return undefined;\n};\n\n/* component will be read in following hierarchy\n 1) __local__/__local__|views/theme1/BuyBox/Components/PriceComponent\n 2) __local__/__local__|views/theme1/Components/PriceComponent\n 3) @msdyn-365-commerce-modules/theme1/views/BuyBox/Components/PriceComponent\n 4) @msdyn-365-commerce-modules/theme1/views/Components/PriceComponent\n */\nconst lookupFunc = (moduleBinder, themeBinder, name, requestCache: ICache, pageInsightsEnabled: boolean) => {\n name = name.toLowerCase();\n return (\n (themeBinder &&\n (getBinder(\n `__local__|__local__|themes|${themeBinder.name}|views|${moduleBinder.name}|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ) ||\n getBinder(\n `__local__|__local__|themes|${themeBinder.name}|views|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ) ||\n getBinder(\n `__local__|__local__|themes|${themeBinder.name}|views|components|${moduleBinder.name}|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ) ||\n getBinder(\n `${themeBinder.moduleNamespace}|${themeBinder.packageName}|modules|${themeBinder.name}|views|components|${moduleBinder.name}|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ) ||\n getBinder(\n `${themeBinder.moduleNamespace}|${themeBinder.packageName}|modules|${themeBinder.name}|views|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ))) ||\n getBinder(\n `${moduleBinder.moduleNamespace}|${moduleBinder.packageName}|views|${moduleBinder.name}|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n )\n );\n};\n\n/**\n * Component will be read from the module\n * @msdyn-365-commerce-modules/BuyBox/views/BuyBox/Components/PriceComponent\n */\nconst defaultComponentLookupFunc = (moduleBinder, name: string, requestCache: ICache, pageInsightsEnabled: boolean) => {\n const parentModuleBinder = getModuleBinder(getModuleName(moduleBinder.parentDefinitionPath));\n\n return (\n getBinder(\n `${moduleBinder.moduleNamespace}|${moduleBinder.packageName}|views|${moduleBinder.name}|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ) ||\n (parentModuleBinder &&\n getBinder(\n `${parentModuleBinder.moduleNamespace}|${parentModuleBinder.packageName}|views|${parentModuleBinder.name}|components|${name}`,\n moduleBinder.name,\n requestCache,\n pageInsightsEnabled\n ))\n );\n};\n\nconst getComponent = (name, moduleBinder, themeBinder, context: ICoreContext) => {\n if (!moduleBinder) {\n return { view: null };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cache: ICache = (msdyn365Commerce as any).getAppCache(context.actionContext.requestContext);\n const pageInsightsEnabled = isPageInsightsEnabled(context.request.params);\n const cacheKey: ICacheKey = {\n key: `${name}|${moduleBinder.name}|${themeBinder ? themeBinder.name : 'no-theme'}`,\n typeName: '__ComponentCacheKey__'\n };\n const lookupKey = cache.getValue(cacheKey);\n const actionContextData: any = context.actionContext;\n const requestCache: ICache = actionContextData.requestCache;\n\n if (lookupKey) {\n context.telemetry.log(LogLevel.Debug, `lookup key for component [${cacheKey.key}] found at - [${lookupKey}]`);\n !msdyn365Commerce.isBrowser && actionContextData.requestCache.put(cacheKey, { item: lookupKey });\n return getBinder(lookupKey, moduleBinder.name, requestCache, pageInsightsEnabled) || { view: null };\n }\n\n let component = lookupFunc(moduleBinder, themeBinder, name, requestCache, pageInsightsEnabled);\n\n // If no component found in the theme, search in parent theme (in case of inherited theme)\n if (!component && themeBinder) {\n const parentThemeName = getModuleName(themeBinder.parentDefinitionPath);\n const parentThemeBinder = getModuleBinder(parentThemeName);\n component = lookupFunc(moduleBinder, parentThemeBinder, name, requestCache, pageInsightsEnabled);\n }\n\n // If no component file found, fall back to module's default component\n if (!component) {\n component = defaultComponentLookupFunc(moduleBinder, name, requestCache, pageInsightsEnabled);\n }\n\n if (component) {\n context.telemetry.log(LogLevel.Debug, `lookup key for component [${cacheKey.key}] found at - [${component.key}]`);\n cache.put(cacheKey, { item: component.key });\n actionContextData.requestCache.put(cacheKey, { item: component.key });\n return component;\n }\n\n return { view: null };\n};\n\nexport const createComponent = >(name: string, componentObj: T) => (props: IComponentProps) => {\n props.context.telemetry.log(LogLevel.Debug, `rendering component-'${name}' within module-'${props.id}-${props.typeName}'`);\n const moduleBinder = getModuleBinder(props.typeName);\n if (!moduleBinder) {\n props.context.telemetry.log(LogLevel.Error, EXCEPTION_NOMODULEBINDER, { values: [asSystemMetadata(props.typeName)] });\n return null;\n }\n let componentName = path.basename(__filename);\n if (componentName) {\n componentName = componentName.replace('.component.tsx', '');\n componentName = componentName.replace('.component.js', '');\n }\n\n const themeBinder = getModuleBinder(props.context.actionContext.requestContext.params.theme);\n let componentView = getComponent(componentName, moduleBinder, themeBinder, props.context);\n if (!componentView.view) {\n componentView = getComponent(name, moduleBinder, themeBinder, props.context);\n }\n const { view } = componentView;\n const mergedComponent = view ? { ...((componentObj as unknown) as object), ...view } : componentObj;\n const Component = mergedComponent.component;\n const propsDictionary = props as any;\n if (propsDictionary.addChunk && view) {\n propsDictionary.addChunk(view.cn);\n }\n\n return ;\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Cart, CartSearchCriteria, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, ReturnCartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, RecallInvoicedSalesLineLookup, CardPaymentAcceptSettings, CommerceProperty, CardPaymentAcceptPoint, RetrievePaymentResultSettings, CardPaymentAcceptResult, RecallOrderSearchCriteria, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function cartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Carts\", \"Cart\", \"CartClass\", key);\n }\n \n export function createCreateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery().create(entity);\n }\n\n export function createCartAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return cartsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return cartsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, cartSearchCriteria?: CartSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, {cartSearchCriteria: cartSearchCriteria });\n } \n \n export function searchAsync(context: IContext, cartSearchCriteria?: CartSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, cartSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createCheckoutInput(id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Checkout', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion, checkoutLocation: checkoutLocation });\n } \n \n export function checkoutAsync(context: IContext, id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null):AsyncResult {\n const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion, checkoutLocation);\n return executeAction(request, context);\n } \n \n export function createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id: string, loyaltyCardId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetMaxLoyaltyPointsToRedeemForTransactionBalance', true, \n 'LoyaltyPointRedemptionEstimateClass'\n , 'false', {bypassCache: 'none', returnEntity: 'LoyaltyPointRedemptionEstimate'}, {loyaltyCardId: loyaltyCardId, currencyCode: currencyCode });\n } \n \n export function getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(context: IContext, id: string, loyaltyCardId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id, loyaltyCardId, currencyCode);\n return executeAction(request, context);\n } \n \n export function createGetPaymentsHistoryInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPaymentsHistory', true, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, { });\n } \n \n export function getPaymentsHistoryAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPaymentsHistoryInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsByChannelIdInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptionsByChannelId', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, channelId: channelId, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsByChannelIdAsync(context: IContext, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsByChannelIdInput(context.queryResultSettings, id, lineShippingAddresses, channelId, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptions', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsAsync(context: IContext, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsInput(context.queryResultSettings, id, lineShippingAddresses, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryPreferencesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetDeliveryPreferences', true, \n 'CartDeliveryPreferencesClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartDeliveryPreferences'}, { });\n } \n \n export function getDeliveryPreferencesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetDeliveryPreferencesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n 'DeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'DeliveryOption'}, {shippingAddress: shippingAddress, cartLineIds: cartLineIds, filterOption: filterOption, ignoreLinesWithDeliveryMode: ignoreLinesWithDeliveryMode });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, id, shippingAddress, cartLineIds, filterOption, ignoreLinesWithDeliveryMode);\n return executeAction(request, context);\n } \n \n export function createUpdateLineDeliverySpecificationsInput(id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLineDeliverySpecifications', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {lineDeliverySpecifications: lineDeliverySpecifications });\n } \n \n export function updateLineDeliverySpecificationsAsync(context: IContext, id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null):AsyncResult {\n const request = createUpdateLineDeliverySpecificationsInput(id, lineDeliverySpecifications);\n return executeAction(request, context);\n } \n \n export function createUpdateDeliverySpecificationInput(id: string, deliverySpecification?: DeliverySpecification | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateDeliverySpecification', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {deliverySpecification: deliverySpecification });\n } \n \n export function updateDeliverySpecificationAsync(context: IContext, id: string, deliverySpecification?: DeliverySpecification | null):AsyncResult {\n const request = createUpdateDeliverySpecificationInput(id, deliverySpecification);\n return executeAction(request, context);\n } \n \n export function createAddChargeInput(id: string, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addChargeAsync(context: IContext, id: string, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddChargeInput(id, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideChargeInput(id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideChargeAsync(context: IContext, id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideChargeInput(id, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createAddCartLineChargeInput(id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddCartLineChargeInput(id, cartLineId, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideCartLineChargeInput(id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideCartLineChargeInput(id, cartLineId, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createVoidInput(id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Void', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {reasonCodeLines: reasonCodeLines, cartVersion: cartVersion });\n } \n \n export function voidAsync(context: IContext, id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createVoidInput(id, reasonCodeLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function addCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createAddCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddReturnCartLinesInput(id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddReturnCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {returnCartLines: returnCartLines, returnTransactionSearchLocation: returnTransactionSearchLocation, cartVersion: cartVersion });\n } \n \n export function addReturnCartLinesAsync(context: IContext, id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null):AsyncResult {\n const request = createAddReturnCartLinesInput(id, returnCartLines, returnTransactionSearchLocation, cartVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function updateCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createUpdateCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createVoidCartLinesInput(id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines });\n } \n \n export function voidCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createVoidCartLinesInput(id, cartLines);\n return executeAction(request, context);\n } \n \n export function createRemoveCartLinesInput(id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineIds: cartLineIds });\n } \n \n export function removeCartLinesAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createRemoveCartLinesInput(id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createAddTenderLineInput(id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartTenderLine: cartTenderLine, cartVersion: cartVersion });\n } \n \n export function addTenderLineAsync(context: IContext, id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddTenderLineInput(id, cartTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createCalculateTenderDiscountInput(id: string, tenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CalculateTenderDiscount', true, \n 'TenderDiscountLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'TenderDiscountLine'}, {tenderLine: tenderLine, cartVersion: cartVersion });\n } \n \n export function calculateTenderDiscountAsync(context: IContext, id: string, tenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createCalculateTenderDiscountInput(id, tenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddPreprocessedTenderLineInput(id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddPreprocessedTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {preprocessedTenderLine: preprocessedTenderLine, cartVersion: cartVersion });\n } \n \n export function addPreprocessedTenderLineAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddPreprocessedTenderLineInput(id, preprocessedTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createValidateTenderLineForAddInput(id: string, tenderLine?: TenderLine | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateTenderLineForAdd', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLine: tenderLine });\n } \n \n export function validateTenderLineForAddAsync(context: IContext, id: string, tenderLine?: TenderLine | null):AsyncResult {\n const request = createValidateTenderLineForAddInput(id, tenderLine);\n return executeAction(request, context);\n } \n \n export function createUpdateTenderLineSignatureInput(id: string, tenderLineId?: string | null, signatureData?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateTenderLineSignature', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, signatureData: signatureData });\n } \n \n export function updateTenderLineSignatureAsync(context: IContext, id: string, tenderLineId?: string | null, signatureData?: string | null):AsyncResult {\n const request = createUpdateTenderLineSignatureInput(id, tenderLineId, signatureData);\n return executeAction(request, context);\n } \n \n export function createGetDeclinedOrVoidedCardReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeclinedOrVoidedCardReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {preprocessedTenderLine: preprocessedTenderLine, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getDeclinedOrVoidedCardReceiptsAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetDeclinedOrVoidedCardReceiptsInput(context.queryResultSettings, id, preprocessedTenderLine, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createCopyInput(id: string, targetCartType: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Copy', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {targetCartType: targetCartType });\n } \n \n export function copyAsync(context: IContext, id: string, targetCartType: number):AsyncResult {\n const request = createCopyInput(id, targetCartType);\n return executeAction(request, context);\n } \n \n export function createAddInvoicedSalesLinesToCartInput(transactionId: string | null, invoicedSalesLinesIds: number[]): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('AddInvoicedSalesLinesToCart', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoicedSalesLinesIds: invoicedSalesLinesIds });\n } \n \n export function addInvoicedSalesLinesToCartAsync(context: IContext, transactionId: string | null, invoicedSalesLinesIds: number[]):AsyncResult {\n const request = createAddInvoicedSalesLinesToCartInput(transactionId, invoicedSalesLinesIds);\n return executeAction(request, context);\n } \n \n export function createRecallInvoicedSalesLinesInput(id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecallInvoicedSalesLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {recallInvoicedSalesLineLookups: recallInvoicedSalesLineLookups });\n } \n \n export function recallInvoicedSalesLinesAsync(context: IContext, id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null):AsyncResult {\n const request = createRecallInvoicedSalesLinesInput(id, recallInvoicedSalesLineLookups);\n return executeAction(request, context);\n } \n \n export function createVoidTenderLineInput(id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, reasonCodeLines: reasonCodeLines, isPreprocessed: isPreprocessed, forceVoid: forceVoid });\n } \n \n export function voidTenderLineAsync(context: IContext, id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null):AsyncResult {\n const request = createVoidTenderLineInput(id, tenderLineId, reasonCodeLines, isPreprocessed, forceVoid);\n return executeAction(request, context);\n } \n \n export function createIssueGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('IssueGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function issueGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createIssueGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createRefillGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RefillGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function refillGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createRefillGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createCashOutGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CashOutGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function cashOutGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createCashOutGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createSuspendInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Suspend', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function suspendAsync(context: IContext, id: string):AsyncResult {\n const request = createSuspendInput(id);\n return executeAction(request, context);\n } \n \n export function createSuspendWithJournalInput(id: string, journalCartId?: string | null, receiptNumberSequence?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SuspendWithJournal', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {journalCartId: journalCartId, receiptNumberSequence: receiptNumberSequence });\n } \n \n export function suspendWithJournalAsync(context: IContext, id: string, journalCartId?: string | null, receiptNumberSequence?: string | null):AsyncResult {\n const request = createSuspendWithJournalInput(id, journalCartId, receiptNumberSequence);\n return executeAction(request, context);\n } \n \n export function createResumeInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Resume', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resumeAsync(context: IContext, id: string):AsyncResult {\n const request = createResumeInput(id);\n return executeAction(request, context);\n } \n \n export function createResumeFromReceiptIdInput(receiptId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('ResumeFromReceiptId', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {receiptId: receiptId });\n } \n \n export function resumeFromReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createResumeFromReceiptIdInput(receiptId);\n return executeAction(request, context);\n } \n \n export function createRemoveDiscountCodesInput(id: string, discountCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveDiscountCodes', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCodes: discountCodes });\n } \n \n export function removeDiscountCodesAsync(context: IContext, id: string, discountCodes?: string[] | null):AsyncResult {\n const request = createRemoveDiscountCodesInput(id, discountCodes);\n return executeAction(request, context);\n } \n \n export function createGetSuspendedInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSuspended', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, { });\n } \n \n export function getSuspendedAsync(context: IContext, ):AsyncResult {\n const request = createGetSuspendedInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createOverrideCartLinePriceInput(id: string, cartLineId: string | null, price: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price });\n } \n \n export function overrideCartLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number):AsyncResult {\n const request = createOverrideCartLinePriceInput(id, cartLineId, price);\n return executeAction(request, context);\n } \n \n export function createGetCardPaymentAcceptPointInput(id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetCardPaymentAcceptPoint', true, \n 'CardPaymentAcceptPointClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CardPaymentAcceptPoint'}, {cardPaymentAcceptSettings: cardPaymentAcceptSettings, extensionProperties: extensionProperties });\n } \n \n export function getCardPaymentAcceptPointAsync(context: IContext, id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetCardPaymentAcceptPointInput(id, cardPaymentAcceptSettings, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createRetrieveCardPaymentAcceptResultInput(resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RetrieveCardPaymentAcceptResult', true, \n 'CardPaymentAcceptResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CardPaymentAcceptResult'}, {resultAccessCode: resultAccessCode, extensionProperties: extensionProperties, cartId: cartId, settings: settings });\n } \n \n export function retrieveCardPaymentAcceptResultAsync(context: IContext, resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null):AsyncResult {\n const request = createRetrieveCardPaymentAcceptResultInput(resultAccessCode, extensionProperties, cartId, settings);\n return executeAction(request, context);\n } \n \n export function createRecallOrderInput(transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId, recallOrderSearchCriteria: recallOrderSearchCriteria });\n } \n \n export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null):AsyncResult {\n const request = createRecallOrderInput(transactionId, salesId, recallOrderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createRecallQuoteInput(transactionId?: string | null, quoteId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallQuote', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, quoteId: quoteId });\n } \n \n export function recallQuoteAsync(context: IContext, transactionId?: string | null, quoteId?: string | null):AsyncResult {\n const request = createRecallQuoteInput(transactionId, quoteId);\n return executeAction(request, context);\n } \n \n export function createRecalculateOrderInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecalculateOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function recalculateOrderAsync(context: IContext, id: string):AsyncResult {\n const request = createRecalculateOrderInput(id);\n return executeAction(request, context);\n } \n \n export function createResetAllChargesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ResetAllCharges', false, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resetAllChargesAsync(context: IContext, id: string):AsyncResult {\n const request = createResetAllChargesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetPromotionsInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetPromotions', true, \n 'CartPromotionsClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartPromotions'}, { });\n } \n \n export function getPromotionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPromotionsInput(id);\n return executeAction(request, context);\n } \n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'CartPromotionLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartPromotionLine'}, {cartLineIds: cartLineIds });\n } \n \n export function getAvailablePromotionsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createRecallSalesInvoiceInput(transactionId?: string | null, invoiceId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallSalesInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoiceId: invoiceId });\n } \n \n export function recallSalesInvoiceAsync(context: IContext, transactionId?: string | null, invoiceId?: string | null):AsyncResult {\n const request = createRecallSalesInvoiceInput(transactionId, invoiceId);\n return executeAction(request, context);\n } \n \n export function createAddOrderInvoiceInput(id: string, invoiceId?: string | null, lineDescription?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddOrderInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceId: invoiceId, lineDescription: lineDescription });\n } \n \n export function addOrderInvoiceAsync(context: IContext, id: string, invoiceId?: string | null, lineDescription?: string | null):AsyncResult {\n const request = createAddOrderInvoiceInput(id, invoiceId, lineDescription);\n return executeAction(request, context);\n } \n \n export function createAddInvoicesInput(id: string, invoiceIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddInvoices', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceIds: invoiceIds });\n } \n \n export function addInvoicesAsync(context: IContext, id: string, invoiceIds?: string[] | null):AsyncResult {\n const request = createAddInvoicesInput(id, invoiceIds);\n return executeAction(request, context);\n } \n \n export function createUpdateCommissionSalesGroupInput(transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('UpdateCommissionSalesGroup', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, cartLineId: cartLineId, commissionSalesGroup: commissionSalesGroup, isUserInitiated: isUserInitiated });\n } \n \n export function updateCommissionSalesGroupAsync(context: IContext, transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean):AsyncResult {\n const request = createUpdateCommissionSalesGroupInput(transactionId, cartLineId, commissionSalesGroup, isUserInitiated);\n return executeAction(request, context);\n } \n \n export function createAddCouponsInput(id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes, isLegacyDiscountCode: isLegacyDiscountCode });\n } \n \n export function addCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null):AsyncResult {\n const request = createAddCouponsInput(id, couponCodes, isLegacyDiscountCode);\n return executeAction(request, context);\n } \n \n export function createRemoveCouponsInput(id: string, couponCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes });\n } \n \n export function removeCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null):AsyncResult {\n const request = createRemoveCouponsInput(id, couponCodes);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsForAddInput(queryResultSettings: IQueryResultSettings, id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlertsForAdd', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLines: cartLines });\n } \n \n export function getCartLineUserAlertsForAddAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsForAddInput(context.queryResultSettings, id, cartLines);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlerts', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLineIds: cartLineIds });\n } \n \n export function getCartLineUserAlertsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createGetChargeCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChargeCodes', false, \n 'ChargeCodeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChargeCode'}, { });\n } \n \n export function getChargeCodesAsync(context: IContext, ):AsyncResult {\n const request = createGetChargeCodesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetReceiptTypesInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptTypes', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getReceiptTypesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReceiptTypesInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createSetInvoiceLinePriceInput(id: string, cartLineId: string | null, price: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SetInvoiceLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price, cartVersion: cartVersion });\n } \n \n export function setInvoiceLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number, cartVersion?: number | null):AsyncResult {\n const request = createSetInvoiceLinePriceInput(id, cartLineId, price, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddDiscountCodeInput(id: string, discountCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddDiscountCode', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCode: discountCode });\n } \n \n export function addDiscountCodeAsync(context: IContext, id: string, discountCode?: string | null):AsyncResult {\n const request = createAddDiscountCodeInput(id, discountCode);\n return executeAction(request, context);\n } \n \n export function createGetReturnOptionsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOptions', false, \n 'TenderTypeAmountClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderTypeAmount'}, { });\n } \n \n export function getReturnOptionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReturnOptionsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createValidateForCheckoutInput(id: string, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateForCheckout', false, \n 'CartLineValidationResultsClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CartLineValidationResults'}, {cartVersion: cartVersion });\n } \n \n export function validateForCheckoutAsync(context: IContext, id: string, cartVersion?: number | null):AsyncResult {\n const request = createValidateForCheckoutInput(id, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetTenderSuggestionsInput(queryResultSettings: IQueryResultSettings, id: string, tenderTypeId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderSuggestions', false, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, {tenderTypeId: tenderTypeId, currencyCode: currencyCode });\n } \n \n export function getTenderSuggestionsAsync(context: IContext, id: string, tenderTypeId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetTenderSuggestionsInput(context.queryResultSettings, id, tenderTypeId, currencyCode);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { ProductList, ProductListType } from '@msdyn365-commerce/retail-proxy';\nimport { createProductListAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\n\n/**\n * Input class for the CreateOrderTemplate data action.\n */\nexport class CreateOrderTemplateInput implements IActionInput {\n public readonly templateName: string;\n\n constructor(templateName: string) {\n this.templateName = templateName;\n }\n\n public getCacheKey = () => 'CreateOrderTemplateInput';\n\n public getCacheObjectType = () => 'CreateOrderTemplateInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the CreateOrderTemplate method.\n * @param {ICreateActionContext} inputData The input data passed to the createInput method.\n * @param {string} templateName The name of template.\n */\nexport const createOrderTemplateInput = (inputData: ICreateActionContext, templateName: string): CreateOrderTemplateInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to create order template. User is not authenticated.');\n }\n return new CreateOrderTemplateInput(templateName);\n};\n\n/**\n * The action method for the CreateOrderTemplate data action.\n * @param {CreateOrderTemplateInput} input The action input.\n * @param {IActionContext} ctx The action context.\n */\nexport async function createOrderTemplateAction(input: CreateOrderTemplateInput, ctx: IActionContext): Promise {\n try {\n const orderTemplate: ProductList = {\n Id: '',\n Name: input.templateName,\n ProductListTypeValue: ProductListType.OrderTemplate\n };\n const createdProductList = await createProductListAsync(\n {\n callerContext: ctx\n },\n orderTemplate\n );\n if (createdProductList && createdProductList.Id !== '') {\n return createdProductList;\n }\n ctx.telemetry.error('Created product list was null');\n throw new Error('Created product list was null');\n } catch (error) {\n ctx.telemetry.error('Not able to create order template', error);\n throw error;\n }\n}\n\n/**\n * The CreateOrderTemplate Data Action.\n * Returns created order template.\n */\nexport const createOrderTemplateActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/create-order-template',\n action: >createOrderTemplateAction,\n input: createOrderTemplateInput\n});\n\nexport default createOrderTemplateActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport {\n addCartLinesAsync,\n addCouponsAsync,\n createCartAsync,\n readAsync,\n removeCartLinesAsync,\n searchAsync,\n updateAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n getChannelDeliveryOptionConfigurationAsync,\n getCustomerLoyaltyCardsAsync,\n getFeatureStatesAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Cart,\n CartLine,\n CartSearchCriteria,\n Coupon,\n QueryResultSettings\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport isEmpty from 'lodash/isEmpty';\n\nenum CartTokenPrefix {\n Auth = 't',\n Anon = 'p'\n}\n\nexport default async function getOrCreateActiveCart(ctx: IActionContext): Promise {\n let cart: Cart | undefined;\n const cartCookie: string = ctx.requestContext.cookies.getCartCookie();\n const cartCookieParts: string[] = cartCookie.split(':');\n try {\n // Check if there are already is a cart cookie and it is in the format we understand\n cart = await getCartFromCookie(cartCookieParts, ctx);\n const wasReadFromCookie = !!cart && cart.Id;\n\n // If the customer is authenticated, and the auth cookie didn't give us a cart OR doesn't have a cookie, search for the customer's cart\n if (!(cart && cart.Id)) {\n cart = await getCartFromCustomer(ctx);\n }\n\n // If the customer just went from anon to signed in state then get that anon cart\n // if the search of carts didn't result in a cart, claim the current anon cart as a new auth cart for the customer\n // if the search resulted in a cart, and the read also resulted in cart, then go ahead an merge the carts\n const anonCart = await claimAnonCart(cartCookieParts, cart, ctx);\n if (anonCart) {\n cart = anonCart;\n }\n\n // If there is no cookie or everything else fails, create an empty cart and return that for the customer\n if (!(cart && cart.Id)) {\n cart = await createNewCart(ctx);\n }\n if (!wasReadFromCookie && ctx.requestContext.user.isAuthenticated && cart && !cart.LoyaltyCardId) {\n const card = await getCustomerLoyaltyCardsAsync({ callerContext: ctx, queryResultSettings: {} }, null);\n if (card && card.length > 0) {\n cart = await updateAsync(\n { callerContext: ctx },\n {\n Id: cart.Id,\n LoyaltyCardId: card[0].CardNumber\n }\n );\n }\n }\n } catch (error) {\n ctx.telemetry.error(`Caught exception in getting cart: ${error}`);\n cart = await createNewCart(ctx);\n }\n return cart;\n}\n\n/**\n * Function to check cart exception due to product no available\n *\n * @param ctx Request context.\n * @param errorObj Error Object.\n */\nfunction handleItemDiscontinuedException(ctx: IActionContext, errorObj: object): boolean {\n const error = errorObj as Error;\n let response = false;\n if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel') {\n ctx.telemetry.information('Caught cart ItemDiscontinuedException error.');\n response = true;\n }\n\n return response;\n}\n\nexport async function createNewCart(ctx: IActionContext): Promise {\n const newCart = await createCartAsync({ callerContext: ctx }, {});\n if (newCart && newCart.Id) {\n ctx.requestContext.cookies.setCartCookie(newCart, ctx.requestContext.user.isAuthenticated);\n\n return newCart;\n }\n\n return undefined;\n}\n\nexport async function getCartFromCookie(cartCookieParts: string[], ctx: IActionContext): Promise {\n let readCart: Cart | undefined;\n let readCartId: string = '';\n\n const isAuthenticated = ctx.requestContext.user.isAuthenticated;\n if (cartCookieParts && cartCookieParts.length === 2) {\n // If the customer is authenticated and they have an auth cookie\n // OR if the customer is not authenticated and then have an anon cookie\n // just get the cart and return that\n\n if (\n (isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Auth) ||\n (!isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Anon)\n ) {\n try {\n readCartId = cartCookieParts[1];\n const readCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, cartCookieParts[1]);\n\n if (readCart && readCart.Id) {\n ctx.requestContext.cookies.setCartCookie(readCart, ctx.requestContext.user.isAuthenticated);\n return readCart;\n }\n } catch (error) {\n if (handleItemDiscontinuedException(ctx, error)) {\n readCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, readCartId);\n }\n ctx.telemetry.error('Error getting cart based on saved card id');\n ctx.telemetry.exception(error);\n }\n }\n }\n\n return readCart;\n}\n\nexport async function getCartFromCustomer(ctx: IActionContext): Promise {\n if (ctx.requestContext.user.isAuthenticated) {\n const authCarts = await searchCarts(ctx);\n if (authCarts && authCarts.length > 0) {\n ctx.requestContext.cookies.setCartCookie(authCarts[0], ctx.requestContext.user.isAuthenticated);\n return authCarts[0];\n }\n }\n\n return undefined;\n}\n\nexport async function claimAnonCart(\n cartCookieParts: string[],\n currentCart: Cart | undefined,\n ctx: IActionContext\n): Promise {\n let anonCurrentCart: Cart | undefined;\n\n if (\n ctx.requestContext.user.isAuthenticated &&\n cartCookieParts &&\n cartCookieParts.length === 2 &&\n cartCookieParts[0] === CartTokenPrefix.Anon\n ) {\n try {\n anonCurrentCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, cartCookieParts[1]);\n } catch (error) {\n if (handleItemDiscontinuedException(ctx, error)) {\n anonCurrentCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, cartCookieParts[1]);\n }\n }\n\n if (anonCurrentCart && !currentCart) {\n const newCart = await claimCart(anonCurrentCart.Id, ctx);\n if (newCart && newCart.Id) {\n ctx.requestContext.cookies.setCartCookie(newCart, ctx.requestContext.user.isAuthenticated);\n return newCart;\n }\n }\n\n if (anonCurrentCart && anonCurrentCart.Id && currentCart) {\n const mergedCart = await addCartLines(anonCurrentCart, currentCart, ctx);\n\n // Once updated, take that merged cart ID and store the cart ID in the cookie\n if (!(mergedCart instanceof Error) && mergedCart.Id) {\n ctx.requestContext.cookies.setCartCookie(mergedCart, ctx.requestContext.user.isAuthenticated);\n return mergedCart;\n }\n }\n }\n\n return undefined;\n}\n\n/**\n * Function that copies a cartline for giftcard.\n * @param cartline Source CartLine you want to copy.\n */\nfunction buildGiftCardLine(cartline: CartLine): CartLine {\n return {\n DeliveryMode: cartline.DeliveryMode,\n CatalogId: cartline.CatalogId,\n Description: cartline.Description,\n EntryMethodTypeValue: cartline.EntryMethodTypeValue || 3,\n ItemId: cartline.ItemId,\n ProductId: cartline.ProductId,\n Quantity: cartline.Quantity,\n Price: cartline.Price,\n NetPrice: cartline.NetPrice,\n GiftCardBalance: cartline.GiftCardBalance,\n TrackingId: '',\n UnitOfMeasureSymbol: cartline.UnitOfMeasureSymbol,\n IsPriceKeyedIn: true,\n IsGiftCardLine: true,\n ExtensionProperties: cartline.ExtensionProperties\n };\n}\n\n/**\n * Function that adds cart lines from source cart to destination cart.\n * @param sourceCart Source cart you want to add cart lines from.\n * @param destinationCart Destination cart that you want to add cart lines to.\n * @param ctx Request context.\n */\nexport async function addCartLines(sourceCart: Cart, destinationCart: Cart, ctx: IActionContext): Promise {\n let updatedCart;\n const cartLines: CartLine[] = [];\n const cartLinesToDelete: string[] = [];\n let hasShippingMethod: boolean;\n const channelConfiguration = ctx.requestContext.channel;\n const featureNames: string[] = ['Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'];\n if (destinationCart.Version) {\n if (sourceCart.CartLines && sourceCart.CartLines.length > 0) {\n for (const cartline of sourceCart.CartLines) {\n let newCartLine: CartLine;\n\n if (cartline.IsGiftCardLine) {\n newCartLine = buildGiftCardLine(cartline);\n } else {\n newCartLine = {};\n const featureStates = await getFeatureStatesAsync({ callerContext: ctx }, featureNames);\n const isfeatureStatesEnabled =\n featureStates?.find(\n (featureState: FeatureState) =>\n featureState.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'\n )?.IsEnabled || false;\n if (isfeatureStatesEnabled) {\n const channelDeliveryOptionConfig = await getChannelDeliveryOptionConfigurationAsync({ callerContext: ctx });\n hasShippingMethod =\n cartline.DeliveryMode ===\n channelDeliveryOptionConfig.PickupDeliveryModeCodes?.find(\n (deliveryMode: string) => deliveryMode === cartline.DeliveryMode\n );\n\n if (cartline.DeliveryMode !== undefined && hasShippingMethod) {\n newCartLine.DeliveryMode = cartline.DeliveryMode;\n newCartLine.FulfillmentStoreId = cartline.FulfillmentStoreId;\n newCartLine.ShippingAddress = cartline.ShippingAddress;\n newCartLine.WarehouseId = cartline.WarehouseId;\n }\n } else if (!isEmpty(cartline.DeliveryMode) && cartline.DeliveryMode === channelConfiguration?.PickupDeliveryModeCode) {\n newCartLine.DeliveryMode = channelConfiguration?.PickupDeliveryModeCode;\n newCartLine.FulfillmentStoreId = cartline.FulfillmentStoreId;\n newCartLine.ShippingAddress = cartline.ShippingAddress;\n newCartLine.WarehouseId = cartline.WarehouseId;\n }\n newCartLine.ProductId = cartline.ProductId;\n newCartLine.Quantity = cartline.Quantity;\n newCartLine.ExtensionProperties = cartline.ExtensionProperties;\n newCartLine.Description = cartline.Description;\n newCartLine.ReasonCodeLines = cartline.ReasonCodeLines;\n newCartLine.AttributeValues = cartline.AttributeValues;\n newCartLine.CatalogId = cartline.CatalogId;\n newCartLine.EntryMethodTypeValue = cartline.EntryMethodTypeValue;\n newCartLine.ItemId = cartline.ItemId;\n\n // without unitofmeasure cartline wont be aggregated in customer cart.\n newCartLine.UnitOfMeasureSymbol = cartline.UnitOfMeasureSymbol;\n if (cartline.IsPriceKeyedIn) {\n newCartLine.Price = cartline.Price;\n newCartLine.IsPriceKeyedIn = cartline.IsPriceKeyedIn;\n }\n }\n\n cartLines.push({ ...newCartLine });\n if (cartline.LineId) {\n cartLinesToDelete.push(cartline.LineId);\n }\n }\n }\n\n if (cartLines.length > 0) {\n try {\n updatedCart = await addCartLinesAsync({ callerContext: ctx }, destinationCart.Id, cartLines, destinationCart.Version);\n\n if (cartLinesToDelete.length > 0) {\n sourceCart = await removeCartLinesAsync({ callerContext: ctx }, sourceCart.Id, cartLinesToDelete);\n }\n } catch (error) {\n ctx.telemetry.error('Error adding cart lines to desination cart');\n ctx.telemetry.exception(error);\n return destinationCart;\n }\n }\n\n // Copy over coupon codes from source cart to destination cart so that the customer doesn't lose couponCodes while migration\n if (sourceCart.Coupons && sourceCart.Coupons.length > 0) {\n const coupons = sourceCart.Coupons.map((coupon: Coupon) => {\n return coupon.Code!;\n });\n\n try {\n updatedCart = await addCouponsAsync({ callerContext: ctx }, destinationCart.Id, coupons, false);\n } catch (error) {\n ctx.telemetry.error('Error adding existing coupon codes to the cart');\n ctx.telemetry.exception(error);\n return destinationCart;\n }\n }\n }\n\n return updatedCart || destinationCart;\n}\n\n/**\n * Function to claim a cart as auth cart and set the browser cookie accordingly.\n *\n * @param cartId Cart Id to claim as auth cart.\n * @param ctx Request Context.\n */\nexport async function claimCart(cartId: string, ctx: IActionContext): Promise {\n const claimAuthCart = await updateAsync(\n { callerContext: ctx },\n {\n Id: cartId\n }\n );\n if (!(claimAuthCart instanceof Error) && claimAuthCart && claimAuthCart.Id) {\n return claimAuthCart;\n }\n return {};\n}\n\n/**\n * Function to search carts that belong to a customer.\n *\n * @param ctx Request context.\n */\nexport async function searchCarts(ctx: IActionContext): Promise {\n const cartSearchCriteria: CartSearchCriteria = {\n IncludeAnonymous: false,\n CartTypeValue: 1\n };\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: 1,\n Skip: 0\n },\n Sorting: {\n Columns: [\n {\n ColumnName: 'ModifiedDateTime',\n IsDescending: true\n }\n ]\n }\n };\n\n return searchAsync({ callerContext: ctx, queryResultSettings }, cartSearchCriteria);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { ProductLookupClause, ProductsDataActions, ProductSearchCriteria, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IActiveImageConfig, IActivePointsData } from '../active-image';\n\n/**\n * ActiveImageInput.\n */\nexport class ActiveImageInput implements IActionInput {\n public config: IActiveImageConfig;\n\n private readonly _cacheKey: string = 'ActiveImage';\n\n public constructor(config: IActiveImageConfig) {\n this.config = config;\n\n if (this.config.activePoints && ArrayExtensions.hasElements(this.config.activePoints)) {\n for (const activePointData of this.config.activePoints) {\n if (activePointData.itemId) {\n this._cacheKey = `${this._cacheKey}-${activePointData.itemId.toString()}`;\n }\n }\n }\n }\n\n /**\n * GetCacheObjectType.\n * @returns - Returns string.\n */\n public getCacheObjectType = (): string => 'ActiveImageFullProductSearchResult';\n\n /**\n * GetCacheKey.\n * @returns - Returns string.\n */\n public getCacheKey = (): string => this._cacheKey;\n\n /**\n * DataCacheType.\n * @returns - CacheType string.\n */\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * CreateInput.\n * @param inputData - IActionContext.\n * @returns - IActionInput.\n */\nexport const createInput = (inputData: ICreateActionContext): IActionInput => {\n return new ActiveImageInput(inputData.config as IActiveImageConfig);\n};\n\n/**\n * Action.\n * @param input - ActiveImageInput.\n * @param context - IActionContext.\n * @returns - ProductSearchResult[].\n */\nexport const getActiveImageproductAction = async (input: ActiveImageInput, context: IActionContext): Promise => {\n const { config } = input;\n const itemIds: ProductLookupClause[] = [];\n if (config.activePoints) {\n config.activePoints.map((activePointData: IActivePointsData) => itemIds.push({ ItemId: activePointData.itemId }));\n }\n const searchCriteriaInput: ProductSearchCriteria = {};\n const catalogId = getCatalogId(context.requestContext);\n validateCatalogId(catalogId);\n\n searchCriteriaInput.Context = {\n ChannelId: context.requestContext.apiSettings.channelId,\n CatalogId: catalogId\n };\n searchCriteriaInput.IncludeAttributes = true;\n searchCriteriaInput.ItemIds = itemIds;\n if (!config.activePoints || !ArrayExtensions.hasElements(config.activePoints)) {\n throw new Error('Fail to call ActiveImage API no active points configured.');\n }\n // eslint-disable-next-line no-return-await -- Disable because we want to return the promise.\n return await ProductsDataActions.searchByCriteriaAsync({ callerContext: context }, searchCriteriaInput);\n};\n\n/**\n * Action.\n * @param id - Id.\n * @param action - Action.\n * @returns - Results.\n */\nexport const actionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/active-image/get-active-image-products',\n action: getActiveImageproductAction as IAction,\n input: createInput\n});\n\nexport default actionDataAction;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput, IMSDyn365Window } from '@msdyn365-commerce/core';\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport { IProductInfo, IProductTransaction, TelemetryEvent } from '@msdyn365-commerce/telemetry-internal';\nimport { getProductInfoFromCartLinesAsync } from './telemetry.action.helper';\n\ndeclare let window: IMSDyn365Window;\n\n/**\n * Checkout data action pre-hook\n * @param inputs Data action inputs\n */\nconst beforePurchase = async (inputs: IActionInput | IActionInput[]) => {\n // placeholder\n};\n\n/**\n * Fires a Purchase event after Checkout data action completed\n * @param _inputs Data action inputs\n * @param salesOrder Sales order for transaction\n * @param actionContext Action context\n */\nconst afterPurchase = async (\n _inputs: IActionInput | IActionInput[],\n salesOrder: SalesOrder | SalesOrder[],\n actionContext: IActionContext\n) => {\n if (window && window._msdyn365 && window._msdyn365.telemetry) {\n const salesObject = Array.isArray(salesOrder) ? salesOrder[0] : salesOrder;\n let saleLineProductUnits: IProductInfo[] = [];\n\n // Collect info on products in the sales order\n if (salesObject && salesObject.SalesLines && Array.isArray(salesObject.SalesLines) && salesObject.SalesLines.length > 0) {\n try {\n saleLineProductUnits = await getProductInfoFromCartLinesAsync(salesObject.SalesLines, actionContext);\n } catch (error) {\n actionContext.telemetry.error('Checkout post-data action hook failed to process cart lines.', error);\n }\n }\n\n // Store the purchased product information so that we can avoid \"code triggered\" remove from cart telemetry event.\n actionContext.requestContext.telemetryData[TelemetryEvent.Purchase] = {\n id: salesObject.Id,\n affiliation: salesObject.ChannelId ? salesObject.ChannelId.toString() : '',\n revenue: salesObject.NetAmountWithoutTax,\n tax: salesObject.TaxAmount,\n // shippingCost?: // Confirm if it is delivery mode charge amount;\n products: saleLineProductUnits\n };\n\n // Fire Purchase event\n window._msdyn365.telemetry.logEvent(\n TelemetryEvent.Purchase,\n actionContext.requestContext.telemetryData[TelemetryEvent.Purchase]\n );\n }\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Carts/Checkout',\n postReaderHook: afterPurchase,\n preReaderHook: beforePurchase\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { FeatureState, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\n\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Input class for the getFeatureState data action.\n * The life time of the data action is 'application'.\n */\nexport class FeatureStateInput implements IActionInput {\n // Any additional feature names that needs to be checked in the code for enablement needs to be appended here:\n public readonly featureNames: string[] = [\n 'Dynamics.AX.Application.RetailAsyncAddressCreationFeature',\n 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature',\n 'Dynamics.AX.Application.RetailB2BEcommerceFeature',\n 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature',\n 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature',\n 'Dynamics.AX.Application.RetailSearchPriceRangeFeature',\n 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature',\n 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature',\n 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature'\n ];\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n public getCacheKey = (): string => 'FeatureState';\n\n /**\n * Get Cache type Name.\n * @returns - Cache name string.\n */\n public getCacheObjectType = (): string => 'FeatureState';\n\n /**\n * Get Cache type.\n * @returns - CacheType enum.\n */\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * CreateInput method for the getFeatureState method.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - Input for data action.\n */\nexport const createGetFeatureStateInput = (inputData: ICreateActionContext>): IActionInput => {\n return new FeatureStateInput();\n};\n\n/**\n * The action method for the getFeatureState data action.\n * @param input -- The action input.\n * @param ctx -- The action context.\n * @returns -- Feature state.\n */\nexport async function getFeatureStateAction(input: FeatureStateInput, ctx: IActionContext): Promise {\n const featureState = await StoreOperationsDataActions.getFeatureStatesAsync(\n { callerContext: ctx, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx) },\n input.featureNames\n );\n return featureState;\n}\n\n/**\n * The getFeatureState data action.\n * Gets the feature state via the read RetailServer API.\n * @returns Address information associated with the retrieved customer.\n */\nexport const getFeatureStateActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-feature-state',\n action: getFeatureStateAction as IAction,\n input: createGetFeatureStateInput\n});\n\nexport default getFeatureStateActionDataAction;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\n/**\n * Input class for the UpdateOrderTemplate data action.\n */\nexport class UpdateOrderTemplateHeaderInput implements IActionInput {\n public readonly orderTemplate: ProductList;\n\n constructor(orderTemplate: ProductList) {\n this.orderTemplate = orderTemplate;\n }\n\n public getCacheKey = () => 'UpdateOrderTemplateHeaderInput';\n\n public getCacheObjectType = () => 'UpdateOrderTemplateHeaderInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the UpdateOrderTemplateHeader method.\n * @param {ICreateActionContext} inputData The input data passed to the createInput method.\n * @param {ProductList} orderTemplate The template header.\n */\nexport const updateOrderTemplateHeaderInput = (\n inputData: ICreateActionContext,\n orderTemplate: ProductList\n): UpdateOrderTemplateHeaderInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to update order template. User is not authenticated.');\n }\n return new UpdateOrderTemplateHeaderInput(orderTemplate);\n};\n\n/**\n * The action method for the UpdateOrderTemplate data action.\n * @param {UpdateOrderTemplateHeaderInput} input The action input.\n * @param {IActionContext} ctx The action context.\n */\nexport async function updateOrderTemplateHeaderAction(input: UpdateOrderTemplateHeaderInput, ctx: IActionContext): Promise {\n try {\n const { orderTemplate } = input;\n const updatedProductList = await updateAsync(\n {\n callerContext: ctx\n },\n orderTemplate\n );\n if (updatedProductList) {\n return updatedProductList;\n }\n ctx.telemetry.error(`Updated product list ${orderTemplate.Id} came back as null.`);\n throw new Error('Updated product list was null.');\n } catch (error) {\n ctx.telemetry.error('Not able to update order template', error);\n throw error;\n }\n}\n\n/**\n * The UpdateOrderTemplate Data Action.\n * Returns updated order template.\n */\nexport const updateOrderTemplateHeaderActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/update-order-template-header',\n action: >updateOrderTemplateHeaderAction,\n input: updateOrderTemplateHeaderInput\n});\n\nexport default updateOrderTemplateHeaderActionDataAction;\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), comparefn);\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { IDataServiceRequest, retailAction } from '@msdyn365-commerce/retail-proxy/dist';\nimport { createGetOrderShipmentsHistoryInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport { OrderShipments } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): IDataServiceRequest => {\n if (inputData.requestContext && inputData.requestContext.user && inputData.requestContext.user.isAuthenticated) {\n return createGetOrderShipmentsHistoryInput(\n {\n Paging: {\n Top: 100,\n Skip: 0\n }\n },\n\n // @ts-expect-error\n null\n );\n }\n\n throw new Error('Unable to create order history input. User is not authenticated.');\n};\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-order-history',\n action: >retailAction,\n input: createInput\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { SortColumn } from '@msdyn365-commerce/retail-proxy';\nimport { getSearchConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\n// TODO: import from commerce entities when available\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Name change will require many modifications\ninterface SearchConfiguration {\n ProductSortColumns?: SortColumn[];\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Name change will require many modifications\nexport interface MappedSearchConfiguration {\n key: string;\n sortColumn: SortColumn;\n}\n\nexport const sortOptions = {\n sortByOptionRelevanceDesc: 'Ranking-Desc',\n sortByOptionRatingAsc: 'AverageRating-Asc',\n sortByOptionRatingDesc: 'AverageRating-Desc',\n sortByOptionNameAsc: 'Name-Asc',\n sortByOptionNameDesc: 'Name-Desc',\n sortByOptionPriceAsc: 'Price-Asc',\n sortByOptionPriceDesc: 'Price-Desc',\n sortByOptionBestSelling: 'BestSelling',\n sortByOptionNewScore: 'NewScore',\n sortByOptionTrendingScore: 'TrendingScore'\n};\n\n/**\n * ActionInput class for the get-mapped-search-configuration Data Action.\n */\nexport class MappedSearchInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('MappedSearchInput', this.apiSettings);\n\n public getCacheObjectType = () => 'MappedSearchInput';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Get a mapped search configuration that is easy to use for sorting.\n * @param input\n * @param ctx\n */\nexport async function getMappedSearchConfiguration(input: MappedSearchInput, ctx: IActionContext): Promise {\n return getSearchConfigurationAsync({ callerContext: ctx }).then((searchConfiguration: SearchConfiguration) => {\n return (searchConfiguration.ProductSortColumns || [])\n .map((sortColumn: SortColumn) => {\n let key = '';\n if (sortColumn.ColumnName) {\n switch (sortColumn.ColumnName.toUpperCase()) {\n case 'NAME':\n key = sortColumn.IsDescending ? sortOptions.sortByOptionNameDesc : sortOptions.sortByOptionNameAsc;\n break;\n case 'PRICE':\n key = sortColumn.IsDescending ? sortOptions.sortByOptionPriceDesc : sortOptions.sortByOptionPriceAsc;\n break;\n case 'AVERAGERATING':\n key = sortColumn.IsDescending ? sortOptions.sortByOptionRatingDesc : sortOptions.sortByOptionRatingAsc;\n break;\n case 'RANKING':\n key = sortOptions.sortByOptionRelevanceDesc;\n break;\n case 'BESTSELLINGSCORE':\n key = sortOptions.sortByOptionBestSelling;\n break;\n case 'NEWSCORE':\n key = sortOptions.sortByOptionNewScore;\n break;\n case 'TRENDINGSCORE':\n key = sortOptions.sortByOptionTrendingScore;\n break;\n default:\n }\n } else {\n ctx.telemetry.warning('[get-mapped-search-configuration] unknown search option');\n }\n if (key) {\n return {\n key,\n sortColumn\n };\n }\n return undefined;\n })\n .filter(Boolean);\n });\n}\n\nexport const createInput = (inputData: ICreateActionContext>): IActionInput => {\n return new MappedSearchInput(inputData.requestContext.apiSettings);\n};\n\nexport const getMappedSearchConfigurationDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/search-result-container/get-mapped-search-configuration',\n action: >getMappedSearchConfiguration,\n input: createInput\n});\n\nexport default getMappedSearchConfigurationDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IEventSubscriber } from './event-subscriber';\n\n/**\n * Represents a simple event with subscribers. Notifies the subscribers once the event is triggered.\n */\nexport class Event {\n /**\n * The list of subscribers.\n */\n private _subscribers: IEventSubscriber[];\n\n /**\n * Initializes the event with a empty subscribers list.\n */\n public constructor() {\n this._subscribers = [];\n }\n\n /**\n * Subscribes given instance to the event.\n * @param {IEventSubscriber} instance The info about the subscriber.\n */\n public subscribe(instance: IEventSubscriber): void {\n this._subscribers.push(instance);\n }\n\n /**\n * Removes the subscriber from the list of subscribers watching the event.\n * @param {string} instanceId The unique identifier of the subscriber which was earlier passed in `subscribe` method in `IEventSubscriber`.\n */\n public unsubscribe(instanceId: string): void {\n this._subscribers = this._subscribers.filter(element => element.instanceId !== instanceId);\n }\n\n /**\n * Clears the list of subscriber removing all instances watching the event.\n */\n public unsubscribeAll(): void {\n this._subscribers = [];\n }\n\n /**\n * Triggers the event.\n * Notifies the subscribers that the event is triggered by calling `handler` method.\n */\n public trigger(): void {\n this._subscribers.forEach(subscriber => {\n subscriber.handler();\n });\n }\n}\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport {\n InvoicePaidStatus,\n InvoiceSearchCriteria,\n InvoiceType,\n IQueryResultSettings,\n OrderInvoice,\n SalesOrdersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\n\nimport getCustomer, { GetCustomerInput } from '../get-customer';\nimport { QueryResultSettingsProxy } from '../utilities/QueryResultSettingsProxy';\n\nconst getDefaultSearchCriteria = (): InvoiceSearchCriteria => {\n return {\n InvoicePaidStatusValues: [InvoicePaidStatus.None]\n };\n};\n\n/**\n * Input class for get invoice data action.\n */\nexport class GetInvoicesInput implements IActionInput {\n public readonly searchCriteria: InvoiceSearchCriteria;\n\n public readonly queryResultSettings: IQueryResultSettings;\n\n constructor(searchCriteria: InvoiceSearchCriteria, queryResultSettings: IQueryResultSettings) {\n this.searchCriteria = searchCriteria;\n this.queryResultSettings = queryResultSettings;\n }\n\n public getCacheKey = () => 'BusinessPartnerInvoices';\n\n public getCacheObjectType = () => 'OrderInvoice';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const CreateGetInvoicesInput = (inputData: ICreateActionContext): IActionInput => {\n const { requestContext } = inputData;\n\n // Check if the user is authenticated.\n if (!requestContext.user.isAuthenticated) {\n throw new Error('User is not logged in.');\n }\n\n const queryResultSettings: IQueryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n\n return new GetInvoicesInput(getDefaultSearchCriteria(), queryResultSettings);\n};\n\nexport async function getInvoices(input: GetInvoicesInput, context: IActionContext): Promise {\n if (!context?.requestContext?.user?.isAuthenticated) {\n throw new Error('Unable to get list of invoices. User is not authenticated.');\n }\n\n input.searchCriteria.InvoiceTypeValues = [InvoiceType.SalesOrderInvoice];\n\n const businessPartner = await getCurrentAsync({ callerContext: context });\n input.searchCriteria.BusinessPartnerId = businessPartner?.BusinessPartnerId;\n\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\n input.searchCriteria.CustomerId = customer.AccountNumber;\n\n return SalesOrdersDataActions.getInvoicesAsync(\n { callerContext: context, queryResultSettings: input.queryResultSettings },\n input.searchCriteria\n );\n}\n\nexport const getInvoicesDataAction = createObservableDataAction({\n id: 'get-invoices',\n action: >getInvoices,\n input: CreateGetInvoicesInput\n});\n\nexport default getInvoicesDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache } from '@msdyn365-commerce/cache-internal';\nimport { EditError, IDictionary, IModuleContract, PROPERTY_INIT } from '@msdyn365-commerce/core-internal';\nimport { CLIENT_DATA_UPDATE_EVENT, MSDYN365_WYSIWYG_DISABLED_PROPS } from '../consts';\n\nconst MODULE_NAME_PATH = '__MODULE_NAME__';\n\nconst MODULE_TYPE_PATH = '__MODULE_TYPE__';\n\nconst PARENT_PROP_PATH = '__PARENT_PROP__';\n\nexport interface IDisabledProperties {\n modules: IDictionary;\n}\n\nexport const getWrappedProxyObject = (config: IDictionary<{}>, moduleName: string, typeName: string) => {\n if (typeof window === 'undefined') {\n return config;\n }\n\n return getProxyHandler(config, moduleName, typeName);\n};\n\n/**\n * Get parent module id\n */\nexport const disableChildModules = (parentModule: IModuleContract, requestCache: ICache) => {\n const slotKeys = Object.keys(parentModule.modules || []);\n for (let i = 0; i < slotKeys.length; ++i) {\n const childModules: IModuleContract[] = parentModule.modules![slotKeys[i]];\n for (let j = 0; j < childModules.length; ++j) {\n requestCache.put({ typeName: MSDYN365_WYSIWYG_DISABLED_PROPS, key: childModules[j].id }, { item: ['*'] });\n disableChildModules(childModules[j], requestCache);\n }\n }\n};\n\n/**\n * helper function to find module from page contract\n * @param moduleId module to be searched\n * @param pageRoot page root object\n */\nexport const findModule = (moduleId: string, pageRoot: IModuleContract): IModuleContract | undefined => {\n if (pageRoot.id === moduleId) {\n return pageRoot;\n }\n\n const slotKeys = Object.keys(pageRoot.modules || []);\n for (let i = 0; i < slotKeys.length; ++i) {\n const childModules: IModuleContract[] = pageRoot.modules![slotKeys[i]];\n for (let j = 0; j < childModules.length; ++j) {\n const res = findModule(moduleId, childModules[j]);\n if (res) {\n return res;\n }\n }\n }\n\n return undefined;\n};\n\n/**\n * Returns proxy object with get and set traps\n */\nconst getProxyHandler = (config: IDictionary<{}>, moduleName: string, moduleType: string): unknown => {\n const handler: ProxyHandler> = {\n get(target: IDictionary<{}>, key: string): IDictionary<{}> | string {\n // store current module name on the proxy object\n if (!target[MODULE_NAME_PATH]) {\n target[MODULE_NAME_PATH] = moduleName;\n }\n\n if (!target[MODULE_TYPE_PATH]) {\n target[MODULE_TYPE_PATH] = moduleType;\n }\n\n if (typeof target[key] === 'object' && target[key] !== null) {\n // store current prop path as parent and return new proxy (for objects)\n target[key][PARENT_PROP_PATH] = target[PARENT_PROP_PATH] ? `${target[PARENT_PROP_PATH]}.${key}` : key;\n return new Proxy(target[key], handler);\n } else {\n return target[key];\n }\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(target: IDictionary<{}>, key: string, newValue: any): boolean {\n let disabledProperties: string[] = [];\n const moduleId = target[MODULE_NAME_PATH];\n const typeName: string = target[MODULE_TYPE_PATH];\n\n if (!moduleId || !typeName) {\n return true;\n }\n\n let propertyPath = [key];\n\n if (target[PARENT_PROP_PATH]) {\n const parentPath = (target[PARENT_PROP_PATH]).split('.');\n propertyPath = key === '$type' ? parentPath : parentPath.concat([key]);\n }\n\n // Check for disabled properties only during component initialization\n // MSDYN365_WYSIWYG_INIT is triggered on component mount and whenever\n // there is a change in component props (componentWillReceiveProps)\n if (newValue === '__MSDYN365_WYSIWYG_INIT__') {\n disabledProperties = (window)._msdyn365.authoringHelper.getDisabledProperties(moduleId);\n\n if ((disabledProperties || []).length > 0) {\n // if the value is '*' all properties are disabled\n if (disabledProperties.length === 1 && disabledProperties[0] === '*') {\n throw new EditError('cannot set disabled property');\n }\n\n const fullPath = propertyPath.join('.');\n // properties disabled in template are disabled at root property path - and will only contain part of the updated property's full path\n // e.g. disabledProperties = ['heading','links'], updatedProperty = 'heading.text' and 'links.1.linkText' are disabled\n // we check for fullPath.startsWith(`${p}.`) to handle cases where 'heading' prop is disabled and edited property is 'headingLink'\n if (disabledProperties.filter(p => fullPath === p || fullPath.startsWith(`${p}.`)).length > 0) {\n throw new EditError('cannot set disabled property');\n }\n }\n\n // for events that are called as part of initialization, do no set any value\n // as the initialization is to check if a property is disabled\n const requiredProperties: string[] = getRequiredProperties(typeName) || [];\n throw new EditError('cannot set disabled property', PROPERTY_INIT, requiredProperties.includes(propertyPath.join('.')));\n }\n\n // If we reached here, it means component is not disabled, lets just\n // notify the site builder\n document.dispatchEvent(\n new CustomEvent(CLIENT_DATA_UPDATE_EVENT, {\n detail: { moduleId, value: newValue, property: propertyPath }\n })\n );\n return true;\n }\n };\n\n return new Proxy(config, handler);\n};\n\n/**\n * helper method to get required properties\n */\nconst getRequiredProperties = (typeName: string) => {\n if (!(typeof window === undefined)) {\n const authoringHelper = (window)._msdyn365.authoringHelper;\n return authoringHelper && authoringHelper.renderingHelper && authoringHelper.renderingHelper.moduleRequiredProperties(typeName);\n }\n\n return [];\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any, max-lines */\nimport { IExperimentationProvider, IExperimentsResult, ISecretManager, IVariants, State } from '@msdyn365-commerce/core';\n/**\n * A basic implementation of the ExperimentationProvider interface used for testing\n */\nclass MsDyn365ExpTestConnector implements IExperimentationProvider {\n private variantSet1: IVariants[] = [\n {\n variantId: 'var1',\n experimentId: 'expid1'\n },\n {\n variantId: 'var1',\n experimentId: 'expid4'\n },\n {\n variantId: 'var1',\n experimentId: 'expid6'\n },\n {\n variantId: 'var1',\n experimentId: 'expid7'\n },\n {\n variantId: 'var1',\n experimentId: 'expid8'\n },\n {\n variantId: 'var1',\n experimentId: 'expid9'\n },\n {\n variantId: 'var1',\n experimentId: 'expid10'\n },\n {\n variantId: 'var1',\n experimentId: 'expid11'\n },\n {\n variantId: 'var1',\n experimentId: 'expid12'\n }\n ];\n\n private variantSet2: IVariants[] = [\n {\n variantId: 'var2',\n experimentId: 'expid1'\n },\n {\n variantId: 'var2',\n experimentId: 'expid5'\n },\n {\n variantId: 'var2',\n experimentId: 'expid7'\n },\n {\n variantId: 'var2',\n experimentId: 'expid8'\n },\n {\n variantId: 'var2',\n experimentId: 'expid9'\n },\n {\n variantId: 'var2',\n experimentId: 'expid10'\n },\n {\n variantId: 'var2',\n experimentId: 'expid11'\n },\n {\n variantId: 'var2',\n experimentId: 'expid12'\n }\n ];\n\n private variantSet3: IVariants[] = [\n {\n variantId: 'var1',\n experimentId: 'expid5'\n },\n {\n variantId: 'var2',\n experimentId: 'expid13'\n },\n {\n variantId: 'var2',\n experimentId: 'expid14'\n },\n {\n variantId: 'var2',\n experimentId: 'expid15'\n },\n {\n variantId: 'var2',\n experimentId: 'expid16'\n },\n {\n variantId: 'var2',\n experimentId: 'expid17'\n },\n {\n variantId: 'var2',\n experimentId: 'expid18'\n },\n {\n variantId: 'var2',\n experimentId: 'expid19'\n },\n {\n variantId: 'var2',\n experimentId: 'expid20'\n },\n {\n variantId: 'var2',\n experimentId: 'expid21'\n },\n {\n variantId: 'var2',\n experimentId: 'expid22'\n },\n {\n variantId: 'var2',\n experimentId: 'expid23'\n },\n {\n variantId: 'var2',\n experimentId: 'expid24'\n },\n {\n variantId: 'var2',\n experimentId: 'expid25'\n }\n ];\n\n private variantSet4: IVariants[] = [\n {\n variantId: 'var1',\n experimentId: 'expid5'\n },\n {\n variantId: 'var1',\n experimentId: 'expid1'\n },\n {\n variantId: 'var1',\n experimentId: 'expid13'\n },\n {\n variantId: 'var1',\n experimentId: 'expid14'\n },\n {\n variantId: 'var1',\n experimentId: 'expid15'\n },\n {\n variantId: 'var1',\n experimentId: 'expid16'\n },\n {\n variantId: 'var1',\n experimentId: 'expid17'\n },\n {\n variantId: 'var1',\n experimentId: 'expid18'\n },\n {\n variantId: 'var1',\n experimentId: 'expid19'\n },\n {\n variantId: 'var1',\n experimentId: 'expid20'\n },\n {\n variantId: 'var1',\n experimentId: 'expid21'\n },\n {\n variantId: 'var1',\n experimentId: 'expid22'\n },\n {\n variantId: 'var1',\n experimentId: 'expid23'\n },\n {\n variantId: 'var1',\n experimentId: 'expid24'\n },\n {\n variantId: 'var1',\n experimentId: 'expid25'\n }\n ];\n\n public getConfigForClientSideInit(): Promise {\n return Promise.resolve({});\n }\n public initializeClientSide(config: any): boolean {\n console.log(`Initialize client side called on MsDyn365ExpTestConnector with config ${config}`);\n return true;\n }\n\n public getExperiments(): Promise {\n return Promise.resolve({\n name: 'msdyn365-exp-test-2',\n experiments: [\n {\n id: 'expid1',\n friendlyName: 'experiment-1',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n link: 'www.msdyn365-exp-test-connector/expid1',\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var3',\n friendlyName: 'variant-3',\n status: State.Draft,\n weight: '0.2'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid2',\n friendlyName: 'experiment-2',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Paused,\n link: 'www.msdyn365-exp-test-connector/expid2',\n variations: [\n {\n id: 'var3',\n friendlyName: 'variant-3',\n status: State.Paused,\n weight: '1.0'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid3',\n friendlyName: 'experiment-3',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Archived,\n variations: [\n {\n id: 'var4',\n friendlyName: 'variant-4',\n status: State.Archived,\n weight: '1.0'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid4',\n friendlyName: 'experiment-4',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid5',\n friendlyName: 'experiment-5',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid6',\n friendlyName: 'experiment-6',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid7',\n friendlyName: 'experiment-7',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid8',\n friendlyName: 'experiment-8',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid9',\n friendlyName: 'experiment-9',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid10',\n friendlyName: 'experiment-10',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid11',\n friendlyName: 'experiment-11',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid12',\n friendlyName: 'experiment-12',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid13',\n friendlyName: 'experiment-13',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid14',\n friendlyName: 'experiment-14',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid15',\n friendlyName: 'experiment-15',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid16',\n friendlyName: 'experiment-16',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid17',\n friendlyName: 'experiment-17',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid18',\n friendlyName: 'experiment-18',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid19',\n friendlyName: 'experiment-19',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid20',\n friendlyName: 'experiment-20',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid21',\n friendlyName: 'experiment-21',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid22',\n friendlyName: 'experiment-22',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid23',\n friendlyName: 'experiment-23',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid24',\n friendlyName: 'experiment-24',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n },\n {\n id: 'expid25',\n friendlyName: 'experiment-25',\n description: 'This is a msdyn365-exp test experiment',\n type: 'A/B Test',\n status: State.Running,\n variations: [\n {\n id: 'var1',\n friendlyName: 'variant-1',\n status: State.Active,\n weight: '0.4'\n },\n {\n id: 'var2',\n friendlyName: 'variant-2',\n status: State.Active,\n weight: '0.6'\n }\n ],\n createdDate: '05/01/2020',\n lastModifiedDate: '05/01/2020',\n lastModifiedBy: 'User 1'\n }\n ]\n });\n }\n public getVariantsForUser(userId: string, attributes?: { [index: string]: string } | undefined): IVariants[] {\n if (userId.match(/^[0-3].*$/)) {\n return this.variantSet1;\n } else if (userId.match(/^[4-7].*$/)) {\n return this.variantSet2;\n } else if (userId.match(/^[8-9|a-b].*$/)) {\n return this.variantSet3;\n } else {\n return this.variantSet4;\n }\n }\n public activateExperiment(userId: string, experiments: IVariants[], attributes?: { [index: string]: string } | undefined): boolean {\n console.log(\n `Active experiment called on MsDyn365ExpTestConnector with userId: ${userId}, experiments: ${JSON.stringify(\n experiments\n )}, attributes: ${JSON.stringify(attributes)}`\n );\n return true;\n }\n public initialize(config: any, secretManager?: ISecretManager): Promise {\n console.log(`MsDyn365 Exp Test Connector called with config: ${JSON.stringify(config)}`);\n return Promise.resolve(true);\n }\n}\n\nconst connector = new MsDyn365ExpTestConnector();\nexport default connector;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SuspendedCart } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function suspendedCartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"SuspendedCarts\", \"SuspendedCart\", \"SuspendedCartClass\", key);\n }\n \n export function createCreateInput(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery().create(entity);\n }\n\n export function createSuspendedCartAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return suspendedCartsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return suspendedCartsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAllSuspendedCartsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = suspendedCartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllSuspendedCarts', true, \n 'SuspendedCartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SuspendedCart'}, { });\n } \n \n export function getAllSuspendedCartsAsync(context: IContext, ):AsyncResult {\n const request = createGetAllSuspendedCartsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Warehouse, WarehouseLocationSearchCriteria, WarehouseLocation } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function warehousesQuery(inventLocation?: string): DataServiceQuery {\n var key = (inventLocation) ? { InventLocation: inventLocation } : null;\n return new DataServiceQuery(\"Warehouses\", \"Warehouse\", \"WarehouseClass\", key);\n }\n \n export function createCreateInput(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery().create(entity);\n }\n\n export function createWarehouseAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery(entity.InventLocation).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery(entity.InventLocation).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(inventLocation: string): IDataServiceRequest {\n return warehousesQuery(inventLocation).read();\n }\n\n export function readAsync(context: IContext, inventLocation: string): AsyncResult {\n const request = createReadAsync(inventLocation);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return warehousesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchWarehouseLocationsAsyncInput(queryResultSettings: IQueryResultSettings, searchCriteria?: WarehouseLocationSearchCriteria | null): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchWarehouseLocationsAsync', true, \n 'WarehouseLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchCriteria: searchCriteria });\n } \n \n export function searchWarehouseLocationsAsyncAsync(context: IContext, searchCriteria?: WarehouseLocationSearchCriteria | null):AsyncResult {\n const request = createSearchWarehouseLocationsAsyncInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetWarehouseByIdInput(inventLocation: string, ): IDataServiceRequest { \n const query = warehousesQuery(inventLocation);\n return query.createDataServiceRequestForOperation('GetWarehouseById', false, \n 'WarehouseClass'\n , 'false', {bypassCache: 'none', returnEntity: 'Warehouse'}, { });\n } \n \n export function getWarehouseByIdAsync(context: IContext, inventLocation: string):AsyncResult {\n const request = createGetWarehouseByIdInput(inventLocation);\n return executeAction(request, context);\n } \n \n export function createSearchWarehousesInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchWarehouses', false, \n 'WarehouseClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {searchText: searchText });\n } \n \n export function searchWarehousesAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchWarehousesInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n } \n \n export function createGetLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, ): IDataServiceRequest { \n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocations', false, \n 'WarehouseLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, { });\n } \n \n export function getLocationsAsync(context: IContext, inventLocation: string):AsyncResult {\n const request = createGetLocationsInput(context.queryResultSettings, inventLocation);\n return executeAction(request, context);\n } \n \n export function createSearchLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, searchText?: string | null): IDataServiceRequest { \n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchLocations', false, \n 'WarehouseLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchText: searchText });\n } \n \n export function searchLocationsAsync(context: IContext, inventLocation: string, searchText?: string | null):AsyncResult {\n const request = createSearchLocationsInput(context.queryResultSettings, inventLocation, searchText);\n return executeAction(request, context);\n } \n \n export function createGetAvailableFulfillmentLocationsInput(queryResultSettings: IQueryResultSettings, deliveryModeTypeFilter: number): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableFulfillmentLocations', false, \n 'WarehouseClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {deliveryModeTypeFilter: deliveryModeTypeFilter });\n } \n \n export function getAvailableFulfillmentLocationsAsync(context: IContext, deliveryModeTypeFilter: number):AsyncResult {\n const request = createGetAvailableFulfillmentLocationsInput(context.queryResultSettings, deliveryModeTypeFilter);\n return executeAction(request, context);\n } \n \n ","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { Image, ISubList } from '@msdyn365-commerce-modules/data-types';\nimport { buildCacheKeyWithUrlTokens, getList, ListInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IProductItem } from '@msdyn365-commerce-modules/retail-actions/dist/types/get-list';\n\nimport { IDefaultPageSummaryConfig } from '../default-page-summary/default-page-summary.props.autogenerated';\nimport { IPageSummaryData } from '../IPageSummaryData';\n\n/**\n * List Page Summary Input\n */\nexport class ListPageSummaryInput implements IActionInput {\n public requestContext: IRequestContext;\n\n public config: IDefaultPageSummaryConfig;\n\n constructor(config: IDefaultPageSummaryConfig, requestContext: IRequestContext) {\n this.config = config || {};\n this.requestContext = requestContext;\n }\n\n public getCacheObjectType = (): string => 'ListPageSummary';\n\n public getCacheKey = (): string => buildCacheKeyWithUrlTokens('ListPageSummary', this.requestContext);\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * List item type enum.\n */\nenum ListItemType {\n list = 'list',\n product = 'product'\n}\n\n/**\n * Get the url of sub list.\n * @param listName\n * @param sitePath\n */\nfunction getSubListUrl(listName: string, sitePath: string): string {\n if (!listName) {\n return '';\n }\n\n if (!sitePath) {\n return `/${listName}.l`;\n }\n\n // SitePath has a leading '/'\n return `${sitePath}/${listName}.l`;\n}\n\n/**\n * Get sub list item.\n * @param item\n * @param sitePathOfRequest\n */\nfunction getSubListItem(item: IGeneric, sitePathOfRequest: string): ISubList {\n const imageList: Image[] = getImages(item.fields.content.images);\n\n const sublistHref = getSubListUrl(item.fields._name, sitePathOfRequest);\n return {\n Title: item.fields.content.title,\n Description: item.fields.content.description,\n ShortDescription: item.fields.content.shortDescription,\n BackgroundColor: item.fields.content.backgroundColor,\n ForegroundColor: item.fields.content.foregroundColor,\n Href: sublistHref,\n Images: imageList\n };\n}\n\n/**\n * Get site path.\n * @param inputData\n */\nfunction getSitePath(inputData: ICreateActionContext, IGeneric>): string {\n return inputData && inputData.requestContext && inputData.requestContext.sitePath ? inputData.requestContext.sitePath : '';\n}\n\n/**\n * Get items per page.\n * @param inputData\n */\nfunction getItemsPerPage(inputData: ICreateActionContext, IGeneric>): number {\n if (!inputData || !inputData.config || !inputData.config.itemsPerPage) {\n return 50;\n }\n\n const result = Number(inputData.config.itemsPerPage);\n if (isNaN(result)) {\n return 50;\n }\n\n return result;\n}\n\n/**\n * Get skip count.\n * @param inputData\n */\nfunction getSkipCount(inputData: ICreateActionContext, IGeneric>): number {\n return inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.skipCount\n ? Number(inputData.requestContext.query.skipCount)\n : 0;\n}\n\n/**\n * Get images.\n * @param images\n */\nfunction getImages(images: IGeneric[]): Image[] {\n const resultImageList: Image[] = [];\n\n if (!images) {\n return resultImageList;\n }\n\n images.forEach(item => {\n if (item && item.image && item.image.href) {\n // Add image item\n const imageItem: Image = {\n href: item.image.href,\n altText: item.image.altText,\n title: item.image.title,\n width: item.image.width,\n height: item.image.height\n };\n\n resultImageList.push(imageItem);\n }\n });\n\n return resultImageList;\n}\n\n/**\n * Get input list data.\n * @param inputData\n */\nfunction getInputListData(inputData: ICreateActionContext, IGeneric>): IGeneric {\n let listData =\n !inputData || !inputData.requestContext || !inputData.requestContext.pageData ? null : inputData.requestContext.pageData.list;\n if (\n !inputData ||\n !inputData.requestContext ||\n !inputData.requestContext.pageData ||\n !inputData.requestContext.pageData.list ||\n !inputData.requestContext.pageData.list.content ||\n !inputData.requestContext.pageData.list.content.items ||\n !inputData.requestContext.pageData.list.content.title ||\n !inputData.requestContext.pageData.list._id\n ) {\n if (\n !inputData ||\n !inputData.data ||\n !inputData.data.list ||\n !inputData.data.list.content ||\n !inputData.data.list.content.items ||\n !inputData.data.list.content.title ||\n !inputData.data.list._id\n ) {\n console.error('data is not well defined for list action input');\n throw new Error('data is not well defined for list action input');\n }\n\n listData = inputData.data.list;\n }\n return listData;\n}\n\nconst createGetListInput = (inputData: IActionContext): ListInput => {\n const listData: IGeneric = getInputListData(inputData);\n const listItems: (IProductItem[] | ISubList)[] = [];\n let productList: IProductItem[] = [];\n\n const parentImageList: Image[] = getImages(listData.content.images);\n\n const itemsPerPage = getItemsPerPage(inputData);\n const skipCount = getSkipCount(inputData);\n\n // This is the list contains all product and will be used to call getSimpleProducts data action.\n const productItems: IProductItem[] = [];\n const sum = skipCount + itemsPerPage;\n for (let index = skipCount; index < listData.content.items.length && index < sum; index++) {\n const item = listData.content.items[index];\n if (item.type === ListItemType.list) {\n if (!item.fields || !item.fields.content || !item.fields.content.title) {\n console.error(`sublist item fields, content or title missing in list ${listData._id}`);\n continue;\n }\n\n // If any elements in product list, then copy it and add to list items\n if (productList.length > 0) {\n const clonedList = [...productList];\n listItems.push(clonedList);\n productList = [];\n }\n\n // Build and add sublist item\n listItems.push(getSubListItem(item, getSitePath(inputData)));\n }\n\n if (item.type === ListItemType.product) {\n if (!item.fields || !item.fields.recordId) {\n console.error(`product item missing recordId in list ${listData._id}`);\n continue;\n }\n\n // Add product item\n const productItem: IProductItem = {\n RecordId: item.fields.recordId,\n CatalogId: item.fields.catalogId || '0'\n };\n\n productList.push(productItem);\n productItems.push(productItem);\n }\n }\n\n // Save the last portion of product items.\n if (productList.length > 0) {\n listItems.push(productList);\n }\n\n return new ListInput(\n listData._id,\n listData.content.title,\n listData.content.description,\n listData.content.shortDescription,\n listData.content.backgroundColor,\n listData.content.foregroundColor,\n parentImageList,\n listItems,\n productItems,\n listData.content.items.length,\n itemsPerPage,\n skipCount\n );\n};\n\nconst action = async (input: ListPageSummaryInput, context: IActionContext): Promise => {\n const { config } = input;\n let listData;\n try {\n listData = await getList(createGetListInput(context), context);\n } catch {\n // Do nothing, if there's an error running the action fall back to values defined from data\n }\n if (listData && listData.Title) {\n return {\n title: listData.Title,\n description: listData.Description\n };\n\n // If the action fails fallback to values defined from data\n } else if (config) {\n return {\n title: config.title,\n description: config.description\n };\n }\n return {};\n};\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/page-summary/list-page-summary',\n action: >action,\n input: (args: ICreateActionContext) => {\n return new ListPageSummaryInput(args.config, args.requestContext);\n }\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput } from '@msdyn365-commerce/core';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getProductInfoFromSimpleProduct } from './telemetry.action.helper';\n\nconst beforeGetVariantsByDimensionValues = async (inputs: IActionInput | IActionInput[]) => {\n // placeholder\n};\n\nconst afterGetVariantsByDimensionValues = async (\n _inputs: IActionInput | IActionInput[],\n simpleProducts: SimpleProduct | SimpleProduct[],\n actionContext: IActionContext\n) => {\n if (!Array.isArray(simpleProducts)) {\n simpleProducts = [simpleProducts];\n }\n\n simpleProducts.forEach(async product => {\n if (product) {\n product = await Promise.resolve(product);\n const productInfo = getProductInfoFromSimpleProduct(product);\n actionContext.requestContext.telemetryData[productInfo.productSku] = productInfo;\n }\n });\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Products/GetVariantsByDimensionValues',\n postReaderHook: afterGetVariantsByDimensionValues,\n preReaderHook: beforeGetVariantsByDimensionValues\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ScanResultsDataActions.g';\nimport { ProductDimension } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { getDimensionsForSelectedVariant, GetDimensionsForSelectedVariantInput } from '.';\nimport { IScanResultWithProduct } from './utilities/scan-result-with-product';\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class to get product from sku number.\n */\nexport class GetScanResultInput implements IActionInput {\n public skuNumber: string;\n\n public channelId: number;\n\n public matchingDimensionValues: ProductDimension[];\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings, sku: string, channelId: number, matchingDimensionValues?: ProductDimension[]) {\n this.skuNumber = sku;\n this.channelId = channelId;\n this.matchingDimensionValues = matchingDimensionValues || [];\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey(`Product-${this.skuNumber}`, this.apiSettings);\n\n public getCacheObjectType = () => 'ProductSKU';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CreateInput method for the getSelectedVariant data action.\n * @param inputData The input data passed to the createInput method.\n * @param skuuNumber SkuNumber to send ScanResult API.\n * @param skuNumber\n * @param channelId ChannelId required to get dimension for given product.\n * @param matchingDimensionValues\n */\nconst createInput = (\n inputData: ICreateActionContext,\n skuNumber: string,\n channelId: number,\n matchingDimensionValues?: ProductDimension[]\n) => {\n return new GetScanResultInput(inputData.requestContext.apiSettings, skuNumber, channelId, matchingDimensionValues);\n};\n\n/**\n * Action method for the product and dimension from scan result and dimension api.\n * @param input The action input class.\n * @param ctx The action context.\n */\nexport async function getScanResult(input: GetScanResultInput, ctx: IActionContext): Promise {\n return readAsync({ callerContext: ctx }, input.skuNumber)\n .then(scanResults => {\n if (scanResults && scanResults.Product) {\n return getDimensionsForSelectedVariant(\n new GetDimensionsForSelectedVariantInput(\n scanResults.Product.MasterProductId ? scanResults.Product.MasterProductId : scanResults.Product.RecordId,\n input.channelId,\n input.matchingDimensionValues,\n ctx.requestContext\n ),\n ctx\n )\n .then(response => {\n if (response && response.length > 0) {\n return { ScanResult: scanResults, Product: scanResults.Product, ProductDimensionFull: response };\n }\n return { ScanResult: scanResults, Product: scanResults.Product };\n })\n .catch((error: Error) => {\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[getScanResult, getDimensionsForSelectedVariant]Error executing action');\n throw new Error('[getScanResult, getDimensionsForSelectedVariant]Error executing action');\n });\n }\n\n throw new Error('Unable to get result from scan result data action.');\n })\n .catch((error: Error) => {\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[getScanResult]Error executing action');\n throw new Error('[getScanResult]Error executing action');\n });\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-scan-results',\n action: >getScanResult,\n input: createInput\n});\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum EventLevel {\n LogAlways = 0,\n Critical = 1,\n Error = 2,\n Warning = 3,\n Informational = 4,\n Verbose = 5\n}\n\nexport enum EventChannel {\n Admin = 16,\n Operational = 17,\n Analytic = 18,\n Debug = 19\n}\n\nexport interface ILoggingSink {\n writeEvent(event: Event): void;\n setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ): void;\n setInstrumentationKey(instrumentationKey: string): void;\n}\n\nexport class Utils {\n public static getParameterNames(func: Function): string[] {\n return [];\n }\n\n public static generateGuid(): string {\n return '';\n }\n\n public static emptyGuid(): string {\n return '';\n }\n}\n\nexport enum EventType {\n None = 0,\n Custom = 1,\n PageView = 2\n}\n\nexport class PageViewMetadata {\n public PageName: string;\n}\n\nexport class EventStaticMetadata {\n public Name: string;\n public Id: number;\n public Version: number;\n public Level: EventLevel;\n public LevelName: string;\n public Channel: EventChannel;\n public ChannelName: string;\n public Keywords: string[];\n public Task: string;\n public OpCode: string;\n public Message: string;\n}\n\nexport class EventCoreFields {\n public ClientTimestamp: number;\n public AppSessionId: string;\n public UserSessionId: string;\n public DeviceId: string;\n public DeviceNumber: string;\n public TerminalId: string;\n public UserId: string;\n public TenantId: string;\n public OfflineAvailability: string;\n public OfflineCurrentMode: string;\n public ScreenResolution: string;\n}\n\nexport class Event {\n public Type: EventType;\n public PageViewMetadata: PageViewMetadata;\n public StaticMetadata: EventStaticMetadata;\n public CoreFields: EventCoreFields;\n public Payload: {\n [name: string]: any;\n };\n constructor(\n type: EventType,\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ) {}\n}\n\nexport class DebuggingConsoleSink implements ILoggingSink {\n public setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string\n ): void {}\n\n public setInstrumentationKey(instrumentationKey: string): void {}\n\n public writeEvent(event: Event): void {}\n}\n\nexport class LoggerBase {\n public static writeEvent(\n name: string,\n eventId: number,\n version: number,\n channel: EventChannel,\n level: EventLevel,\n keywords: string[],\n task: string,\n opCode: string,\n message: string\n ) {\n // console.log(`name: ${name}, eventId: ${eventId}, version: ${version}, channel: ${this.getEnumKeyForValue(EventChannel, channel)}`);\n // console.log(\n // `level: ${this.getEnumKeyForValue(\n // EventLevel,\n // level\n // )}, keywords: ${keywords.toString()}, task: ${task}, opCode: ${opCode}, message: ${message}`\n // );\n }\n\n public static addLoggingSink(loggingSink: ILoggingSink): void {}\n\n public static getEnumKeyForValue(enumType: any, value: number): string {\n for (const key in Object.keys(enumType)) {\n if (enumType[key] === value) {\n return key;\n }\n }\n return '';\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EventChannel, EventLevel, ILoggingSink, LoggerBase } from './ConsoleEventWriter';\n\n/**\n * Attaches the logging sink to the LoggerBase.\n *\n * @method attachLoggingSink\n * @param sink {ILoggingSink} Sink to attach to Retail Logger.\n */\nexport function attachLoggingSink(sink: ILoggingSink) {\n LoggerBase.addLoggingSink(sink);\n}\n\nexport const modelManagersRetailServerRequestStarted = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n};\n\nexport const modelManagersRetailServerRequestError = (requestId: string, requestUrl: string, error: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n};\n\nexport const modelManagersRetailServerRequestFinished = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n};\n\nexport const genericWarning = (message: string): void => {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n};\n\nexport const genericError = (message: string): void => {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n};\n\nexport const genericInfo = (message: string): void => {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n};\n\n/**\n * Class represents proxy events.\n * Event Code Range: 44000 - 44999.\n */\nexport class RetailLogger {\n public static LogEvent(eventName: Function, error?: string): void {\n error ? eventName(error) : eventName();\n }\n\n // Core - Event Range: 44000 - 44099.\n public static genericError(message: string): void {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n }\n\n public static genericWarning(message: string): void {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n }\n\n public static genericInfo(message: string): void {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n }\n\n public static modelManagersRetailServerRequestStarted(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n }\n\n public static modelManagersRetailServerRequestError(requestId: string, requestUrl: string, error: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n }\n\n public static modelManagersRetailServerRequestFinished(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n }\n\n public static initEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetInvalidError',\n 44007,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetMultipleTimesError',\n 44008,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitEntitySetNoMethodNumberError',\n 44009,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n public static initPaymentEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetInvalidError',\n 44010,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitPaymentEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initPaymentEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetMultipleTimesError',\n 44011,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitPaymentEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initPaymentEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetNoMethodNumberError',\n 44012,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitPaymentEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n // Shopping Cart Service - Event Range: 44100 - 44199.\n public static shoppingCartServiceGetShoppingCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartStarted',\n 44100,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart started.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartError',\n 44101,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get shopping cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartFinished',\n 44102,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart finished.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartStarted',\n 44104,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart started.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartError',\n 44105,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing item from cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartFinished',\n 44106,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart finished.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeStarted',\n 44108,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code started.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeError',\n 44109,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Applying promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeFinished',\n 44110,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateQuantityStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityStarted',\n 44112,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity started.'\n );\n }\n\n public static shoppingCartUpdateQuantityError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityError',\n 44113,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating quantity failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateQuantityFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityFinished',\n 44114,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity finished.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeStarted',\n 44116,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code started.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeError',\n 44117,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeFinished',\n 44118,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdStarted',\n 44120,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id started.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdError',\n 44121,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating loyalty card id failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdFinished',\n 44122,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id finished.'\n );\n }\n\n public static shoppingCartCommenceCheckoutStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutStarted',\n 44124,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout started.'\n );\n }\n\n public static shoppingCartCommenceCheckoutError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutError',\n 44125,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Commence checkout failed with error {0}.'\n );\n }\n\n public static shoppingCartCommenceCheckoutFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutFinished',\n 44126,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout finished.'\n );\n }\n\n public static shoppingCartGetPromotionsStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsStarted',\n 44128,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions started.'\n );\n }\n\n public static shoppingCartGetPromotionsError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsError',\n 44129,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting promotions failed with error {0}.'\n );\n }\n\n public static shoppingCartGetPromotionsFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsFinished',\n 44130,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions finished.'\n );\n }\n\n public static getSimpleProductsByIdStarted(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdStarted',\n 44132,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids started.'\n );\n }\n\n public static getSimpleProductsByIdError(error: string): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdError',\n 44133,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting simple products by ids failed with error {0}.'\n );\n }\n\n public static getSimpleProductsByIdFinished(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdFinished',\n 44134,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids finished.'\n );\n }\n\n public static getKitComponentsError(): void {\n LoggerBase.writeEvent(\n 'GetKitComponentsError',\n 44136,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'One of the kit components could not be retrieved.'\n );\n }\n\n public static searchProductsByProductIdsStarted(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsStarted',\n 44140,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids started.'\n );\n }\n\n public static searchProductsByProductIdsError(error: string): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsError',\n 44141,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Searching products by product ids failed with error {0}.'\n );\n }\n\n public static searchProductsByProductIdsFinished(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsFinished',\n 44142,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids finished.'\n );\n }\n\n // Checkout Service - Event Range: 44200 - 44299.\n public static checkoutServiceGetAllDeliveryOptionDescriptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsStarted',\n 44200,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions started.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsError',\n 44201,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get all delivery option descriptions failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsFinished',\n 44202,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions finished.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesStarted',\n 44204,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences started.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesError',\n 44205,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting delivery preferences failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesFinished',\n 44206,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences finished.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsStarted',\n 44208,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options started.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsError',\n 44209,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting order delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsFinished',\n 44210,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options finished.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsStarted',\n 44212,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options started.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsError',\n 44213,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting item delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsFinished',\n 44214,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options finished.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsStarted',\n 44216,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsError',\n 44217,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of order delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsFinished',\n 44218,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications finished.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsStarted',\n 44220,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsError',\n 44221,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of line delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsFinished',\n 44222,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications finished.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesStarted',\n 44224,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types started.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesError',\n 44225,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting payment card types failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesFinished',\n 44226,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types finished.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceStarted',\n 44228,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance started.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceError',\n 44229,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting gift card balance failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceFinished',\n 44230,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance finished.'\n );\n }\n\n public static checkoutServiceSubmitOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderStarted',\n 44232,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order started.'\n );\n }\n\n public static checkoutServiceSubmitOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderError',\n 44233,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Submit order failed with error {0}.'\n );\n }\n\n public static checkoutServiceSubmitOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderFinished',\n 44234,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlStarted',\n 44235,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url started.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlFinished',\n 44236,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlError',\n 44237,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card payment accept url failed with error {0}.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultStarted',\n 44238,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result started.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultFinished',\n 44239,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result finished.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultError',\n 44240,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Retrieve card payment accept result failed with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderStarted',\n 44241,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order started.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderError',\n 44242,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderFinished',\n 44243,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order finished.'\n );\n }\n\n // Channel Service - Event Range: 44300 - 44349.\n public static channelServiceGetChannelConfigurationStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationStarted',\n 44300,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration started.'\n );\n }\n\n public static channelServiceGetChannelConfigurationError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationError',\n 44301,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get channel Configuration failed with error {0}.'\n );\n }\n\n public static channelServiceGetChannelConfigurationFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationFinished',\n 44302,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration finished.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoStarted',\n 44304,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info started.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoError',\n 44305,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get country region info failed with error {0}.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoFinished',\n 44306,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info finished.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoStarted',\n 44308,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info started.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoError',\n 44309,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get state province info error {0}.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoFinished',\n 44310,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info finished.'\n );\n }\n\n public static channelServiceGetTenderTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesStarted',\n 44312,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types started.'\n );\n }\n\n public static channelServiceGetTenderTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesError',\n 44313,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get tender types failed with error {0}.'\n );\n }\n\n public static channelServiceGetTenderTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesFinished',\n 44314,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types finished.'\n );\n }\n\n public static channelServiceGetCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesStarted',\n 44315,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types started.'\n );\n }\n\n public static channelServiceGetCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesError',\n 44316,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card types failed with error {0}.'\n );\n }\n\n public static channelServiceGetCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesFinished',\n 44317,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types finished.'\n );\n }\n\n // Item Availability Service - Event Range: 44350 - 44369.\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted',\n 44350,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityError',\n 44351,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores with availability failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished',\n 44352,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability finished.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresStarted',\n 44354,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresError',\n 44355,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresFinished',\n 44356,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores finished.'\n );\n }\n\n // Loyalty Service - Event Range: 44370 - 44399.\n public static loyaltyServiceGetLoyaltyCardsStarted(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsStarted',\n 44370,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards started.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsError',\n 44371,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get loyalty cards failed with error {0}.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsFinished',\n 44372,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards finished.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'loyaltyServiceUpdateLoyaltyCardIdStarted',\n 44374,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id started.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdError',\n 44375,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update loyalty card id failed with error {0}.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdFinished',\n 44376,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id finished.'\n );\n }\n\n // Customer Service - Event Range: 44400 - 44499.\n public static customerServiceGetCustomerStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerStarted',\n 44400,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer started.'\n );\n }\n\n public static customerServiceGetCustomerError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerError',\n 44401,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get customer failed with error {0}.'\n );\n }\n\n public static customerServiceGetCustomerFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerFinished',\n 44402,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer finished.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionStarted',\n 44403,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session started.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionError',\n 44404,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Is authentication session failed with error {0}.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionFinished',\n 44405,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session finished.'\n );\n }\n\n // Order Service - Event Range: 44500 - 44599.\n public static getOrderHistoryStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryStarted',\n 44500,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history started.'\n );\n }\n\n public static getOrderHistoryError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryError',\n 44501,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order history failed with error {0}.'\n );\n }\n\n public static getOrderHistoryFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryFinished',\n 44502,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history finished.'\n );\n }\n\n public static getOrderDetailsStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsStarted',\n 44504,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details started.'\n );\n }\n\n public static getOrderDetailsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsError',\n 44505,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order details failed with error {0}.'\n );\n }\n\n public static getOrderDetailsFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsFinished',\n 44506,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details finished.'\n );\n }\n\n // Commerce list realtime service - Event Range: 44600 - 44699.\n public static createWishListStarted(): void {\n LoggerBase.writeEvent(\n 'CreateWishListStarted',\n 44600,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list started.'\n );\n }\n\n public static createWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'CreateWishListError',\n 44601,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Create wish list failed with error {0}.'\n );\n }\n\n public static createWishListFinished(): void {\n LoggerBase.writeEvent(\n 'CreateWishListFinished',\n 44602,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list finished.'\n );\n }\n\n public static deleteWishListStarted(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListStarted',\n 44604,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list started.'\n );\n }\n\n public static deleteWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'DeleteWishListError',\n 44605,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Delete wish list failed with error {0}.'\n );\n }\n\n public static deleteWishListFinished(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListFinished',\n 44606,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list finished.'\n );\n }\n\n public static updateWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListStarted',\n 44608,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list started.'\n );\n }\n\n public static updateWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateWishListError',\n 44609,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update wish list failed with error {0}.'\n );\n }\n\n public static updateWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListFinished',\n 44610,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list finished.'\n );\n }\n\n public static getWishListsStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListsStarted',\n 44612,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists started.'\n );\n }\n\n public static getWishListsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListsError',\n 44613,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish lists failed with error {0}.'\n );\n }\n\n public static getWishListsFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListsFinished',\n 44614,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists finished.'\n );\n }\n\n public static getWishListStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListStarted',\n 44616,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list started.'\n );\n }\n\n public static getWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListError',\n 44617,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish list failed with error {0}.'\n );\n }\n\n public static getWishListFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListFinished',\n 44618,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list finished.'\n );\n }\n\n public static addLinesToWishListStarted(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListStarted',\n 44620,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list started.'\n );\n }\n\n public static addLinesToWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListError',\n 44621,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add lines to wish list failed with error {0}.'\n );\n }\n\n public static addLinesToWishListFinished(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListFinished',\n 44622,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list finished.'\n );\n }\n\n public static removeItemsFromWishListStarted(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListStarted',\n 44624,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list started.'\n );\n }\n\n public static removeItemsFromWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListError',\n 44625,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Remove items from wish list failed with error {0}.'\n );\n }\n\n public static removeItemsFromWishListFinished(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListFinished',\n 44626,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list finished.'\n );\n }\n\n public static updateLinesOnWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListStarted',\n 44628,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list started.'\n );\n }\n\n public static updateLinesOnWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListError',\n 44629,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update lines on wish list failed with error {0}.'\n );\n }\n\n public static updateLinesOnWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListFinished',\n 44630,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list finished.'\n );\n }\n\n public static addItemsToCartStarted(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartStarted',\n 44632,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart started.'\n );\n }\n\n public static addItemsToCartError(error: string): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartError',\n 44633,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add items to cart failed with error {0}.'\n );\n }\n\n public static addItemsToCartFinished(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartFinished',\n 44634,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart finished.'\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProxyError } from '../exceptions';\nimport { EMPTY, format } from '../extensions/StringExtensions';\nimport { DebuggingConsoleSink } from './ConsoleEventWriter';\nimport { attachLoggingSink, genericError, genericInfo, genericWarning } from './RetailLogger';\n\n/**\n * The tracer class allows information to be logged on the device for Information, Warning or Error\n * The same method call can be used for each type\n * Example:\n * Commerce.Proxy.Tracer.Information(\"Message {0} {1}\", [\"Arg1\", \"Arg2\"]); // With parameters to be formatted\n * Commerce.Proxy.Tracer.Information(\"Message\"); // Without parameters\n *\n * Example of different tracer logs\n * Dynamics-Information: <> <>\n * Dynamics-Warning: <> <>\n * Dynamics-Error: <> <>\n */\n\nexport class Tracer {\n private static TracerDynamics: string = 'Dynamics-';\n private static TracerDynamicsError: string = 'Error: ';\n\n private static TracingOn: boolean = true;\n\n private static Counters: any[] = new Array();\n private static Timers: any[] = new Array();\n\n public static init(): boolean {\n attachLoggingSink(new DebuggingConsoleSink());\n return true;\n }\n\n public static _initialized: boolean = Tracer.init();\n\n /**\n * Traces an informational message in the specified format.\n */\n public static Information(informationformat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericInfo(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, informationformat, ...args]));\n }\n }\n\n /**\n * Traces a warning message in the specified format.\n */\n public static Warning(warningFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericWarning(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, warningFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Error(errorFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericError(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, errorFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Errors(errors: ProxyError[], formatString: string, ...args: any[]): void {\n if (Tracer.TracingOn && errors !== null && errors.length > 0) {\n let errorMessage: string = '';\n let errorCode: string = '';\n let errorString: string = '';\n\n errors.forEach(error => {\n errorMessage = error.ErrorMessage || EMPTY;\n errorCode = error.ErrorCode || EMPTY;\n errorString = JSON.stringify(error);\n Tracer.Error(\n formatString +\n ' ' +\n format(\" \\n ErrorMessage: {0}; \\n ErrorCode: {1}; \\n ErrorObject: '{2}'\", errorMessage, errorCode, errorString),\n args\n );\n });\n }\n }\n\n public static StartCounter(uniqueFunctionName: string): void {\n let counter;\n if (Tracer.Counters[uniqueFunctionName] === undefined) {\n counter = new PerformanceCounters();\n counter.Name = uniqueFunctionName;\n } else {\n counter = Tracer.Counters[uniqueFunctionName];\n }\n counter.Count += 1;\n Tracer.Counters[uniqueFunctionName] = counter;\n const now = new Date().getTime();\n Tracer.Timers.push(now);\n }\n\n public static EndCounter(uniqueFunctionName: string): void {\n const now = new Date().getTime();\n const startTime = Tracer.Timers.pop();\n const counter = Tracer.Counters[uniqueFunctionName];\n counter.TotalTime += now - startTime;\n }\n\n public static DumpCounters() {\n for (const item in Tracer.Counters) {\n if (Tracer.Counters.hasOwnProperty(item)) {\n Tracer.Information(\n 'Method = {0} Number of calls = {1} TotalTime = {2}mS Avg = {3}mS',\n Tracer.Counters[item].Name,\n Tracer.Counters[item].Count,\n Tracer.Counters[item].TotalTime,\n Tracer.Counters[item].TotalTime / Tracer.Counters[item].Count\n );\n }\n }\n }\n\n private static GetMessage(type: string, formatString: string, ...args: any[]) {\n const now = '' + new Date().getTime() + 'mS';\n if (Tracer.TracingOn) {\n if (!args) {\n return Tracer.TracerDynamics + type + '\\t' + formatString + '\\t' + now;\n } else {\n return (\n Tracer.TracerDynamics + type + '\\t' + format.apply(null, [formatString, Array.prototype.slice.call(args)]) + '\\t' + now\n );\n }\n }\n }\n}\n\nclass PerformanceCounters {\n public Name: string;\n public Count: number = 0;\n public TotalTime: number = 0;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Regular expressions to validate emails.\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class EmailRegex {\n /**\n * Represents a HTML5 Validation Regex.\n *\n * A valid email address is a string that matches the email production of the following ABNF, the character set for which is Unicode.\n * This ABNF implements the extensions described in RFC 1123.\n *\n * For more info: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address.\n */\n public static readonly html5EmailRegex = /^[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z])?)+$/;\n\n /**\n * Returns a default regex which should be used for most email validation cases.\n *\n * As of now, the default regex is HTML5 email regex standard.\n * @see EmailRegex.html5EmailRegex - The regex which is set to be default right now.\n *\n * @returns Regular expression for email validation.\n */\n public static get defaultRegex(): RegExp {\n return EmailRegex.html5EmailRegex;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Regular expressions to validate passwords.\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class PasswordRegex {\n // eslint-disable-next-line max-len\n public static readonly defaultRegex = /^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9]))([A-Za-z\\d@#$%^&*\\-_+=[\\]{}|\\\\:',?/`~'();!]|\\.(?!@)){8,16}$/;\n}\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function recommendationsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Recommendations\", \"Recommendation\", \"RecommendationClass\", key);\n }\n \n export function createCreateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery().create(entity);\n }\n\n export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return recommendationsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return recommendationsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest { \n const query = recommendationsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetElements', true, \n 'RecommendedElementClass'\n , 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\n } \n \n export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult {\n const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\n return executeAction(request, context);\n } \n \n ","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { QueryResultSettings } from '@msdyn365-commerce/retail-proxy';\n\nimport { QueryResultSettingsProxy } from './QueryResultSettingsProxy';\n\nexport interface ISearchData {\n q: string;\n skip: number;\n top: number;\n itemsPerPage: string;\n maxItems: string;\n channelId: number;\n queryResultSettings: QueryResultSettings;\n}\n\nexport const parseSearchData = (inputData: ICreateActionContext>): ISearchData => {\n // Query is of type 'IDictionary | undefined', so that q and skip are not recognized by tsc\n const {\n requestContext: {\n // @ts-expect-error:2339\n query: { q, top, skip },\n apiSettings: { channelId }\n },\n // @ts-expect-error:2339\n config: { maxItems, itemsPerPage }\n } = inputData;\n const queryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n return {\n q,\n skip: (skip && Number(skip)) || 0,\n top: (top && Number(top)) || 50,\n itemsPerPage, // TODO BUGBUG 21667361\n maxItems, // TODO BUGBUG 21667361\n channelId,\n queryResultSettings\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { removeDiscountCodesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { Cart } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ICartActionResultWithCart } from './cart-action-result';\n\nexport default async function removePromoCodes(\n cart: Readonly,\n promoCodes: string[],\n actionContext: IActionContext\n): Promise {\n if (!cart) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n return removeDiscountCodesAsync({ callerContext: actionContext }, cart.Id, promoCodes)\n .then(newCart => {\n return { cart: newCart, status: 'SUCCESS' };\n })\n .catch(error => {\n actionContext.telemetry.warning(error);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\n });\n}\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EXCEPTION_INVALID_ARGUMENT, NAME_CULTURE_INFO_FORMATTER_EXCEPTION } from '@msdyn365-commerce/telemetry-internal';\nimport memoizeFormatConstructor from 'intl-format-cache';\nimport areIntlLocalesSupported from 'intl-locales-supported';\nimport { IDictionary } from '@msdyn365-commerce/retail-proxy';\nimport { ICultureInfoFormatter, IDateFormatOptions, INumberFormatOptions, ITimeFormatOptions } from '../interfaces';\n\nconst numericIdentifier = 'numeric';\n\n/**\n * CultureInfoFormatter provides functions that support the localized formatting\n * of currencies, numbers, dates and times.\n */\nexport class CultureInfoFormatter implements ICultureInfoFormatter {\n private locale: string;\n private numberFormatter: Intl.NumberFormat | undefined;\n private dateFormatter: Intl.DateTimeFormat | undefined;\n private timeFormatter: Intl.DateTimeFormat | undefined;\n private currencyFormatter: Intl.NumberFormat | undefined;\n private numFormatterConstructor: any;\n private dateFormatterConstructor: any;\n private currencyCode: string;\n // Adding a cultureInfoTestFlag to inject intl on client side for culture-intl-formatter test, since now the Intl is injected through script tage in base-page.tsx\n private queryString: IDictionary | undefined;\n\n private static _validateInput(validation: boolean, methodName: string, argName: string): void {\n if (validation) {\n throw new Error(`${NAME_CULTURE_INFO_FORMATTER_EXCEPTION}: ${EXCEPTION_INVALID_ARGUMENT(methodName, argName)}`);\n }\n }\n\n /**\n * Constructs a new instance of this formatter using the given locale.\n * Default value for locale is 'en-US'\n *\n * @param locale A string containing a BCP-47 locale tag e.g. 'en', 'en-us', 'fr-fr'. Default value of 'en-US'\n * For more information see https://tools.ietf.org/html/bcp47\n */\n constructor(locale: string, currencyCode: string, queryString?: IDictionary) {\n CultureInfoFormatter._validateInput(!locale, 'CultureInfoFormatter', 'locale');\n CultureInfoFormatter._validateInput(!currencyCode, 'CultureInfoFormatter', 'currencyCode');\n\n this.locale = locale;\n this.currencyCode = currencyCode;\n this.queryString = queryString;\n // If we are running server side or the browser does not support the locale, use the polyfill for Intl\n\n const loadIntlPollyfillQsp = this.queryString && this.queryString.load_intl_polyfills;\n function loadIntlPollyfills(IntlPolyfill?: any) {\n // @ts-ignore- IntlPolyfill are loaded through script tag\n Intl.NumberFormat = IntlPolyfill.NumberFormat;\n // @ts-ignore- IntlPolyfill are loaded through script tag\n Intl.DateTimeFormat = IntlPolyfill.DateTimeFormat;\n }\n\n if (process.env.CURRENT_ENVIRONMENT === 'node') {\n // eslint-disable-next-line\n const IntlPolyfill = require('intl');\n loadIntlPollyfills(IntlPolyfill);\n } else {\n if (!areIntlLocalesSupported(this.locale) || loadIntlPollyfillQsp) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n // @ts-ignore - IntlPolyfill var is defined only while executing culture-intl-formatter test\n // eslint-disable-next-line\n const IntlPolyfill = require('intl');\n loadIntlPollyfills(IntlPolyfill);\n } else {\n // @ts-ignore - IntlPolyfill is loaded through script tag\n loadIntlPollyfills(IntlPolyfill);\n }\n }\n }\n // Create cached number, date and time formatter for basic formatting\n this.numFormatterConstructor = memoizeFormatConstructor(Intl.NumberFormat);\n this.dateFormatterConstructor = memoizeFormatConstructor(Intl.DateTimeFormat);\n }\n\n /**\n * Returns a localized currency formatted version of a price.\n *\n * @param price Either a string or number representing the price that will be localized and formatted\n * @param currencyCode Optional argument. The three letter currency code that will be used for formatting the currency.\n * If the currency code is not provided the locale will be used to determine the best fit currency code.\n */\n public formatCurrency: (price: string | number, currencyCode?: string) => string = (\n price: string | number,\n currencyCode?: string\n ): string => {\n CultureInfoFormatter._validateInput(price === undefined, 'formatCurrency', 'price');\n price = price || 0;\n\n try {\n if (!this.currencyFormatter) {\n this.currencyFormatter = this.numFormatterConstructor(this.locale, {\n style: 'currency',\n currency: currencyCode || this.currencyCode\n });\n }\n return !currencyCode\n ? this.currencyFormatter.format(+price)\n : this.formatNumber(+price, { style: 'currency', currency: currencyCode });\n } catch (e) {\n console.error('error in creating number formatter', e);\n // return the same unformatted value\n return price.toString();\n }\n };\n\n /**\n * Returns a localized formatted version of a number\n *\n * @param value The number that will be localized and formatted\n * @param options An optional argument that controls the formatting.\n */\n public formatNumber = (value: number, options?: INumberFormatOptions): string => {\n CultureInfoFormatter._validateInput(value === undefined, 'formatNumber', 'value');\n value = value || 0;\n\n try {\n if (!this.numberFormatter) {\n this.numberFormatter = this.numFormatterConstructor(this.locale);\n }\n // If no options are given to us, we can use the basic cached formatter\n return options !== undefined\n ? this.numFormatterConstructor(this.locale, options).format(value)\n : this.numberFormatter.format(value);\n } catch (e) {\n console.error('error creating number formatter', e);\n // return the same unformatted value\n return value.toString();\n }\n };\n\n /**\n * Returns a localized formatted version of a date\n *\n * @param date Date object or valid date string representing the date that will be localized and formatted\n * @param options An optional argument that controls the formatting.\n */\n public formatDate = (date: Date | string, options?: IDateFormatOptions): string => {\n CultureInfoFormatter._validateInput(!date, 'formatDate', 'date');\n\n try {\n if (!this.dateFormatter) {\n this.dateFormatter = this.dateFormatterConstructor(this.locale);\n }\n\n // Convert to date object if valid date string is passed instead\n if (typeof date === 'string') {\n date = new Date(date);\n }\n\n // If no options are given to us, we can use the basic cached formatter\n return options !== undefined\n ? this.dateFormatterConstructor(this.locale, options).format(date)\n : this.dateFormatter.format(date);\n } catch (e) {\n console.error('error creating date formatter', e);\n // return the same unformatted value\n return date.toString();\n }\n };\n\n /**\n * Returns a localized formatted version of a time\n *\n * @param time Date object or valid date string representing the time that will be localized and formatted\n * @param options An optional argument that controls the formatting\n */\n public formatTime = (time: Date | string, options?: ITimeFormatOptions): string => {\n CultureInfoFormatter._validateInput(!time, 'formatTime', 'time');\n\n try {\n if (!this.timeFormatter) {\n this.timeFormatter = (\n this.dateFormatterConstructor(this.locale, { hour: numericIdentifier, minute: numericIdentifier })\n );\n }\n\n // Convert to date object if valid date string is passed instead\n if (typeof time === 'string') {\n time = new Date(time);\n }\n\n // If no options are given to us, we can use the basic cached formatter\n if (options !== undefined) {\n options.hour = 'numeric';\n options.minute = 'numeric';\n return this.dateFormatterConstructor(this.locale, options).format(time);\n }\n return this.timeFormatter.format(time);\n } catch (e) {\n console.error('error creating date formatter', e);\n // return the same unformatted value\n return time.toString();\n }\n };\n}\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { AttributeValue, ProductsDataActions, SimpleProduct, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n getAttributeValuesByConfiguration,\n getSelectedProductIdFromActionInput,\n getSelectedVariant,\n QueryResultSettingsProxy,\n SelectedVariantInput\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Chains getting the SelectedVariant with GetActivePrice.\n */\nexport class AttributesForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n public selectedProduct: SimpleProduct | undefined;\n\n constructor(productId: number, channelId: number, selectedProduct?: SimpleProduct, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.selectedProduct = selectedProduct;\n this.catalogId = catalogId || 0;\n }\n\n public getCacheKey = () => 'AttributesForSelectedVariant';\n\n public getCacheObjectType = () => 'ProductAttributeValue';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createAttributesForSelectedVariantInput = (\n inputData: ICreateActionContext>\n): AttributesForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n const catalogId = getCatalogId(inputData.requestContext);\n\n if (productId) {\n return new AttributesForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, undefined, catalogId);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * Calls the Retail API a get a list of dimension values for a given product.\n * @param input - The input.\n * @param context - The context.\n * @returns The attribute values.\n */\nexport async function getAttributesForSelectedVariantAction(\n input: AttributesForSelectedVariantInput,\n context: IActionContext\n): Promise {\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(\n input.productId,\n input.channelId,\n undefined,\n undefined,\n context.requestContext\n );\n\n return getSelectedVariant(selectedVariantInput, context);\n }\n\n return activeProduct;\n })\n .then((productResult: SimpleProduct | null) => {\n const activeProduct: SimpleProduct | undefined = productResult;\n\n if (activeProduct) {\n return ProductsDataActions.getAttributeValuesAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n activeProduct.RecordId,\n input.channelId,\n input.catalogId\n );\n }\n\n return null;\n })\n .then(async (attributeValues: AttributeValue[] | null) => {\n const channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({\n callerContext: context\n });\n\n return { attributeValues, channelInventoryConfiguration };\n })\n .then(result => {\n return getAttributeValuesByConfiguration(result.attributeValues, result.channelInventoryConfiguration);\n })\n .catch((error: Error) => {\n context.trace(error.message);\n throw new Error('[getPriceForSelectedVariantAction]Error executing action');\n });\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/product-info/get-attributes-for-selected-variant',\n action: >getAttributesForSelectedVariantAction,\n input: createAttributesForSelectedVariantInput\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IActiveTabState } from './tab-state';\n\nexport function createTabStateInput(result: IActiveTabState): GenericInput {\n return new GenericInput('activeTabState', result, 'IActiveTabState');\n}\n\nconst createTabStateInputInternal = (): IActionInput => {\n return createTabStateInput({});\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createTabStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './add-product-to-cart';\nexport * from './add-promo-code';\nexport * from './base-cart-state';\nexport * from './cart-action-result';\nexport * from './clear-cart-line-delivery-mode';\nexport * from './clear-cart-lines-delivery-information';\nexport * from './get-or-create-active-cart';\nexport * from './refresh-cart';\nexport * from './remove-all-promo-codes';\nexport * from './remove-cart-lines';\nexport * from './remove-promo-codes';\nexport * from './set-invoice-line-price';\nexport * from './update-cart';\nexport * from './update-cart-line-delivery-specifications';\nexport * from './update-cart-line-quantity';\nexport * from './update-loyalty-card-id';\nexport * from './update-shipping-address';\nexport * from './update-cart-lines';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync, updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\n\nimport { buildCacheKey } from '.';\nimport { GetCustomerInput } from './get-customer';\n\nexport interface IUpdateCustomerPersonalizationInput extends IActionInput {\n isOptOut: boolean;\n userAccountNumber: string;\n apiSettings: ICommerceApiSettings;\n preferenceType?: string;\n}\n\n/**\n * Input class for the updateCustomerPersonalization.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class updateCustomerPersonalizationInput implements IUpdateCustomerPersonalizationInput {\n public userAccountNumber: string;\n\n public isOptOut: boolean;\n\n public apiSettings: ICommerceApiSettings;\n\n public preferenceType: string | undefined;\n\n constructor(userAccountNumber: string, isOptOut: boolean, apiSettings: ICommerceApiSettings, preferenceType?: string) {\n this.userAccountNumber = userAccountNumber;\n this.apiSettings = apiSettings;\n this.isOptOut = isOptOut;\n this.preferenceType = preferenceType;\n }\n\n public getCacheKey = (): string => buildCacheKey(`${this.userAccountNumber}`, this.apiSettings);\n\n public getCacheObjectType = () => 'Customer';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * The action method for the updateCustomerPersonalization data action.\n * @param input The action input.\n * @param ctx The action context.\n */\nexport async function updateCustomerPersonalizationAction(\n input: IUpdateCustomerPersonalizationInput,\n ctx: IActionContext\n): Promise {\n const { userAccountNumber, isOptOut, preferenceType } = input;\n const customer = await readAsync({ callerContext: ctx, bypassCache: 'get' }, userAccountNumber);\n if (!customer) {\n throw new Error('Unable to find customer');\n }\n\n const newCustomer = { ...customer };\n\n switch (preferenceType) {\n case 'web-tracking':\n newCustomer.OptOutWebActivityTracking = isOptOut;\n break;\n case undefined:\n case 'personalization':\n default:\n newCustomer.OptOutPersonalization = isOptOut;\n }\n\n const updatedCustomer = await updateAsync({ callerContext: ctx }, newCustomer);\n\n if (!updatedCustomer) {\n throw new Error('Unable to update customer');\n }\n\n ctx.update(new GetCustomerInput(ctx.requestContext.apiSettings), updatedCustomer);\n\n return updatedCustomer;\n}\n\n/**\n * The updateCustomerPersonalization data action\n * Returns the updated customer.\n */\nexport const updateCustomerPersonalizationActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/update-customer-personalization',\n action: >updateCustomerPersonalizationAction\n});\n\nexport default updateCustomerPersonalizationActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IHTTPRequestOptions,\n IHTTPResponse,\n sendCommerceRequest\n} from '@msdyn365-commerce/core';\nimport { Address, CartTenderLine, SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Check Out action Input.\n */\nexport class CheckOutInput implements IActionInput {\n public cartId: string;\n\n public cartVersion: number;\n\n public receiptEmail?: string;\n\n public cartTenderLines?: CartTenderLine[];\n\n public billingAddress?: Address;\n\n constructor(cartId: string, cartVersion: number, receiptEmail?: string, cartTenderLines?: CartTenderLine[], billingAddress?: Address) {\n this.cartId = cartId;\n this.cartVersion = cartVersion;\n this.receiptEmail = receiptEmail;\n this.cartTenderLines = cartTenderLines;\n this.billingAddress = billingAddress;\n }\n\n public getCacheKey = () => `${this.cartId}-${this.cartVersion}`;\n\n public getCacheObjectType = () => 'CheckOut';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Calls the Retail API to check out and returns sales order.\n * @param input\n * @param ctx\n */\nexport async function checkOutAction(input: CheckOutInput, ctx: IActionContext): Promise {\n const { apiSettings } = ctx.requestContext;\n const requestUrl = `${apiSettings.baseUrl}Commerce/Carts('${input.cartId}')/Checkout?api-version=7.3`;\n const requestOptions: IHTTPRequestOptions = {\n headers: {\n oun: apiSettings.oun,\n 'Content-Type': 'application/json'\n }\n };\n\n if (requestOptions.headers && ctx.requestContext.user.token) {\n requestOptions.headers.Authorization = `id_token ${ctx.requestContext.user.token}`;\n }\n\n if (input.cartTenderLines && input.cartTenderLines.length > 0) {\n input.cartTenderLines = input.cartTenderLines.map((cartTenderLineItem: CartTenderLine) => {\n cartTenderLineItem['@odata.type'] = '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine';\n\n cartTenderLineItem['Amount@odata.type'] = '#Decimal';\n\n if (cartTenderLineItem.TokenizedPaymentCard) {\n cartTenderLineItem.TokenizedPaymentCard['@odata.type'] =\n '#Microsoft.Dynamics.Commerce.Runtime.DataModel.TokenizedPaymentCard';\n\n // Force the House prop to be set, so that call succeeds\n if (!cartTenderLineItem.TokenizedPaymentCard.House) {\n cartTenderLineItem.TokenizedPaymentCard.House = 'N/A';\n }\n\n if (cartTenderLineItem.TokenizedPaymentCard.CardTokenInfo) {\n cartTenderLineItem.TokenizedPaymentCard.CardTokenInfo['@odata.type'] =\n '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CardTokenInfo';\n }\n\n if (input.billingAddress) {\n const { Phone, ThreeLetterISORegionName = '', Street, City, State, ZipCode } = input.billingAddress;\n cartTenderLineItem.TokenizedPaymentCard = {\n ...cartTenderLineItem.TokenizedPaymentCard,\n Phone,\n Country: ThreeLetterISORegionName.toUpperCase(),\n Address1: Street,\n City,\n State,\n Zip: ZipCode\n };\n }\n }\n\n return cartTenderLineItem;\n });\n }\n\n const requestBody = {\n receiptEmail: input.receiptEmail,\n cartVersion: input.cartVersion || null,\n ...(input.cartTenderLines && { cartTenderLines: input.cartTenderLines })\n };\n\n // Perform check-out operation\n return sendCommerceRequest(requestUrl, 'post', requestBody, requestOptions).then((response: IHTTPResponse) => {\n if (response.status >= 200 && response.status < 300 && response.data) {\n return response.data;\n } else if (response.data) {\n throw response.data;\n }\n throw new Error('[checkOutAction] Invalid response recieved from RetailServer');\n });\n}\n\nexport const checkOutActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/checkout',\n action: >checkOutAction\n});\nexport default checkOutActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { BusinessPartnerUser, NullResult } from '@msdyn365-commerce/retail-proxy';\nimport { deleteAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnerUsersDataActions.g';\n\n/**\n * Input class for DeleteOrganizationUser data action.\n */\nexport class DeleteOrganizationUserInput implements IActionInput {\n public user: BusinessPartnerUser;\n\n constructor(newUser: BusinessPartnerUser) {\n this.user = newUser;\n }\n\n public getCacheKey = () => 'DeleteOrganizationUser';\n\n public getCacheObjectType = () => 'DeleteOrganizationUser';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Input class for DeleteOrganizationUser data action.\n * @param inputData\n * @param newUser\n */\nexport const createDeleteOrganizationUserInput = (\n inputData: ICreateActionContext>,\n newUser: BusinessPartnerUser\n): IActionInput => {\n const { requestContext } = inputData;\n\n // Check if the user is authenticated.\n if (!requestContext.user.isAuthenticated) {\n throw new Error('User is not logged in.');\n }\n\n return new DeleteOrganizationUserInput(newUser);\n};\n\n/**\n * The DeleteOrganizationUser data action\n * Calls getCurrent() to get a businessPartnerId from the user requesting the action.\n * It then maps the newUsers' businessPartnerId to the same as the above user.\n * Calls the createBusinessPartner to then create a new entitiy in the database with the\n * information passed into through newUser.\n * @param input\n * @param ctx\n */\nexport async function deleteOrganizationUser(input: DeleteOrganizationUserInput, ctx: IActionContext): Promise {\n const { user } = input;\n\n return deleteAsync({ callerContext: ctx }, user).catch(error => {\n console.log(error);\n ctx.telemetry.debug('[Delete-organization-user] Unable to delete BusinessPartnerUser account');\n throw new Error('[Delete-organization-user] Unable to delete BusinessPartnerUser account');\n });\n}\n\n/**\n * The DeleteOrganizationUser data action\n * Calls the read RetailServer API to get the BusinessPartnerId from the admin\n * account and Deletes that businessPartner to the recieved input (new User)/\n * We then send this new User through the RetailServer API so that the database\n * is updated.\n */\nexport const deleteOrganizationUserDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/delete-organization-user',\n action: >deleteOrganizationUser,\n input: <(args: ICreateActionContext) => IActionInput>(createDeleteOrganizationUserInput)\n});\n\nexport default deleteOrganizationUserDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, ICreateActionContext, IGeneric, IRequestContext } from '@msdyn365-commerce/core';\nimport { QueryResultSettings, SortColumn } from '@msdyn365-commerce/retail-proxy';\n\nimport { IQueryResultSettingsModuleConfig } from './IQueryResultSettingsModuleConfig';\n\n/**\n * Wrapper for query result settings, which guarantees some properties that are optional in the real subject\n * and includes some common utilities for data actions.\n */\nexport class QueryResultSettingsProxy {\n // Real subject\n private readonly queryResultSettings: QueryResultSettings;\n\n /**\n * Factory method for data actions.\n * @param inputData - Input data.\n * @returns - Returns query result settings proxy.\n */\n public static fromInputData(inputData: ICreateActionContext>): QueryResultSettingsProxy {\n const { requestContext, config } = inputData;\n return QueryResultSettingsProxy.fromModuleData(requestContext, config as IQueryResultSettingsModuleConfig);\n }\n\n /**\n * Factory method for modules.\n * @param requestContext - RequestContext.\n * @param config - Module config from props.\n * @returns - Returns query result settings proxy.\n */\n public static fromModuleData(requestContext: IRequestContext, config: IQueryResultSettingsModuleConfig): QueryResultSettingsProxy {\n const sortingCriteria = (config && config.sortingCriteria) || undefined;\n const query = requestContext && requestContext.query;\n const top = (query && query.top) || undefined;\n const skip = (query && query.skip) || undefined;\n\n const queryResultSettings = {\n Paging: {\n Skip: (skip && Number(skip)) || 0,\n Top: (top && Number(top)) || config?.itemsPerPage || 50\n },\n Sorting: sortingCriteria || {}\n };\n\n return new QueryResultSettingsProxy(queryResultSettings);\n }\n\n /**\n * Return the query result settings with default paging or with the passed value.\n * @param inputData - Input Data.\n * @returns - Query Result settings.\n */\n public static getPagingFromInputDataOrDefaultValue(inputData: ICreateActionContext>): QueryResultSettings {\n const config: IQueryResultSettingsModuleConfig | undefined = inputData.config;\n const defaultPageSize: number = 100;\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n // eslint-disable-next-line max-len -- Disable max length for next line.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unnecessary-condition -- Reading from config.\n Top:\n config?.itemsPerPage ??\n Number.parseInt(inputData.requestContext?.app?.platform?.defaultPageSizeForAPI ?? defaultPageSize, 10)\n }\n };\n return queryResultSettings;\n }\n\n /**\n * Factory method.\n * @returns - Returns query result settings proxy.\n */\n public static getDefault(): QueryResultSettingsProxy {\n return new QueryResultSettingsProxy({ Paging: {}, Sorting: {} });\n }\n\n /**\n * Private constructor, expect instances to be created with the factory method.\n * @param queryResultSettings - Query result setting.\n */\n private constructor(queryResultSettings: QueryResultSettings) {\n this.queryResultSettings = queryResultSettings;\n }\n\n public get QueryResultSettings(): QueryResultSettings {\n return this.queryResultSettings;\n }\n\n /**\n * Gets the hints for the cache key based on query result settings.\n * @returns - Returns cache key hint.\n */\n public get cacheKeyHint(): string {\n // The factory method guarantees values are defined\n const topHint = `top-${this.queryResultSettings.Paging!.Top!}`;\n const skipHint = `skip-${this.queryResultSettings.Paging!.Skip!}`;\n const sortingHintData =\n (this.queryResultSettings.Sorting!.Columns || [])\n .map((column: SortColumn) => {\n return `${column.ColumnName}--${(column.IsDescending && 'desc') || 'asc'}`;\n })\n .join(',') || undefined;\n const sortingHint = `sortBy-${sortingHintData}`;\n return `${topHint}|${skipHint}|${sortingHint}`;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { Category, TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\n\nimport getCategoryAction, { CategoriesInput as RawCategoriesInput } from './get-categories';\nimport { getCategoryUrl } from './utilities/Url-builder';\nimport { generateCacheKey } from './utilities/utils';\n\n/**\n * Input for get-categories data action.\n */\nexport class CategoriesInput implements IActionInput {\n public readonly maxItems: number;\n\n public readonly channelId: number;\n\n public includeRootCategory?: boolean;\n\n private readonly catalogId: number;\n\n private readonly sitePath: string;\n\n private readonly _mappedToHierarchy: boolean;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly locale?: string;\n\n public constructor(context: IRequestContext, mappedToHierarchy: boolean, maxItems?: number, includeRootCategory?: boolean) {\n this._mappedToHierarchy = mappedToHierarchy;\n this.includeRootCategory = includeRootCategory;\n this.maxItems = maxItems || 250;\n this.channelId = context && context.apiSettings && context.apiSettings.channelId ? +context.apiSettings.channelId : 0;\n this.sitePath = (context && context.sitePath) || '';\n this.apiSettings = context.apiSettings;\n this.locale = context.locale || '';\n this.catalogId = getCatalogId(context);\n }\n\n public getCacheKey = () =>\n generateCacheKey(\n this.apiSettings,\n { key: 'SitePath', value: this.sitePath },\n { key: 'IncludeRootCategory', value: this.includeRootCategory },\n { key: 'Top', value: this.maxItems },\n { key: 'CatalogId', value: this.catalogId },\n { key: 'Locale', value: this.locale }\n );\n\n public getCacheObjectType = () => (this._mappedToHierarchy ? 'CategoryHierarchy' : 'Category');\n\n public dataCacheType = (): CacheType => 'request';\n\n public getLocale = (): string => this.locale || '';\n}\n\nconst getFriendlyName = (locale?: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n};\n\nexport interface ICategoryMap {\n [RecordId: number]: CategoryHierarchy;\n}\n\n/**\n * Creates a hierarchy of categories based on the ParentCategory property.\n * @param categoryList Categories that will be converted into a hierarchy.\n * @param ctx\n * @param locale\n * @returns Hierarchy of categories in array.\n */\nexport const mapCategoryToHierarchy = (\n categoryList: Category[],\n ctx: IActionContext,\n locale?: string,\n includeRootCategory?: boolean\n): CategoryHierarchy[] => {\n if (!categoryList || categoryList.length === 0) {\n return [];\n }\n\n const categoryMap: ICategoryMap = {};\n\n for (const category of categoryList) {\n const localName = getFriendlyName(locale, category.NameTranslations);\n const categoryHierarchy = { ...category };\n categoryHierarchy.NeutralizedName = category.Name;\n categoryHierarchy.Name = localName || categoryHierarchy.NeutralizedName;\n categoryMap[category.RecordId] = categoryHierarchy;\n }\n\n let rootCategory: CategoryHierarchy | undefined;\n\n for (const category of Object.values(categoryMap)) {\n const parentId = category.ParentCategory;\n category.Url = getCategoryUrl(category, ctx, categoryMap);\n if (parentId === 0) {\n rootCategory = category;\n continue;\n }\n\n const parent = parentId && categoryMap[parentId];\n if (parent) {\n parent.Children = parent.Children || [];\n parent.Children.push(category);\n }\n }\n\n if (!rootCategory) {\n return [];\n }\n\n if (includeRootCategory) {\n const categoryHierarchy: CategoryHierarchy[] = [];\n categoryHierarchy.push(rootCategory);\n return categoryHierarchy;\n }\n\n return rootCategory.Children ?? [];\n};\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nexport const createCategoriesHierarchyInput = (inputData: ICreateActionContext>): IActionInput => {\n const topItems = inputData.config && inputData.config.topCategories && Number.parseInt(inputData.config.topCategories, 10);\n return new CategoriesInput(inputData.requestContext, true, topItems);\n};\n\n/**\n * Calls the Retail API and returns all the categories as a hierarchy.\n * @param input\n * @param ctx\n */\nexport async function getCategoryHierarchyAction(input: CategoriesInput, ctx: IActionContext): Promise {\n const categories = await getCategoryAction(new RawCategoriesInput(ctx.requestContext, false, input.maxItems), ctx);\n return mapCategoryToHierarchy(categories, ctx, input.getLocale(), input.includeRootCategory);\n}\n\nexport const getCategoryHierarchyActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-categories-hierarchy',\n action: >getCategoryHierarchyAction,\n input: createCategoriesHierarchyInput\n});\n\nexport default getCategoryHierarchyActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IExpLogger } from '@msdyn365-commerce/telemetry-internal';\n\n/**\n * A basic implementation of the ExperimentationProvider interface used for testing\n */\nclass MsDyn365ExpTestConnectorListener implements IExpLogger {\n private userId: string = '';\n public initializeClientSide(config: any, userId: string): boolean {\n this.userId = userId;\n console.log(`Listener initialize called with config ${JSON.stringify(config)} and userId ${userId}`);\n return true;\n }\n public logEvent(eventName: string, payload: any, attributes?: any): void {\n console.log(`tracking events with event type - ${eventName}, payload - ${payload}, user id - ${this.userId}`);\n }\n}\n\nconst connectorListener = new MsDyn365ExpTestConnectorListener();\nexport default connectorListener;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnerUsersDataActions.g';\n\n/**\n * Input class for edit organization user data action.\n */\nexport class EditOrganizationUserInput implements IActionInput {\n public user: BusinessPartnerUser;\n\n constructor(newUser: BusinessPartnerUser) {\n this.user = newUser;\n }\n\n public getCacheKey = () => 'EditOrganizationUser';\n\n public getCacheObjectType = () => 'EditOrganizationUser';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Input class for edit organization user data action.\n * @param inputData\n * @param newUser\n */\nexport const createEditOrganizationUserInput = (\n inputData: ICreateActionContext>,\n newUser: BusinessPartnerUser\n): IActionInput => {\n const { requestContext } = inputData;\n\n // Check if the user is authenticated.\n if (!requestContext.user.isAuthenticated) {\n throw new Error('User is not logged in.');\n }\n\n return new EditOrganizationUserInput(newUser);\n};\n\nexport async function editOrganizationUser(input: EditOrganizationUserInput, ctx: IActionContext): Promise {\n const { user } = input;\n\n return updateAsync({ callerContext: ctx }, user)\n .then(updatedUser => {\n return updatedUser;\n })\n .catch(() => {\n ctx.telemetry.debug('[Edit-organization-user] Unable to update BusinessPartnerUser account');\n throw new Error('[Edit-organization-user] Unable to update BusinessPartnerUser account');\n });\n}\n\n/**\n * The EditOrganizationUser data action\n * Takes in an instance of a BusinessPartnerUser and updates the\n * same user with the new information.\n */\nexport const editOrganizationUserDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/Edit-organization-user',\n action: >editOrganizationUser,\n input: <(args: ICreateActionContext) => IActionInput>(createEditOrganizationUserInput)\n});\n\nexport default editOrganizationUserDataAction;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ProductAvailableQuantity,\n ProductDimensionValueInventoryAvailability,\n ProductInventoryAvailability\n} from '@msdyn365-commerce/retail-proxy';\n\n/**\n * This setting defines the delivery modes supported.\n */\nexport enum DeliveryMode {\n allWareHouses = 0,\n shipping = 1,\n pickup = 2\n}\n\n/**\n * This setting defines the inventory levels supported.\n */\nexport enum InventoryLevels {\n physicalAvailable = 'physicalAvailable',\n totalAvailable = 'totalAvailable',\n threshold = 'inventoryThreshold'\n}\n\n/**\n * Product inventory information class.\n */\nexport interface IProductInventoryInformation {\n ProductAvailableQuantity: ProductAvailableQuantity;\n StockLevelCode?: string;\n StockLevelLabel?: string;\n IsProductAvailable: boolean;\n InventLocationId?: string;\n deliveryType?: DeliveryMode;\n}\n\n/**\n * This setting defines the inventory level values return by the API.\n */\nexport enum InventoryLevelValues {\n outOfStock = 'OOS',\n available = 'AVAIL'\n}\n\n/**\n * Retrieves inventory level code from the dimension based on the app config setting.\n * @param dimensionValuesWithInventory - The dimension info.\n * @param inventoryLevel - App config setting for inventory level.\n * @returns Inventory level code value.\n */\nexport const getInventoryLevelCodeFromDimensionValue = (\n dimensionValuesWithInventory: ProductDimensionValueInventoryAvailability,\n inventoryLevel?: InventoryLevels | undefined\n): InventoryLevelValues | undefined => {\n if (inventoryLevel === InventoryLevels.totalAvailable) {\n return dimensionValuesWithInventory.TotalAvailableInventoryLevelCode as InventoryLevelValues | undefined;\n }\n if (inventoryLevel === InventoryLevels.physicalAvailable) {\n return dimensionValuesWithInventory.PhysicalAvailableInventoryLevelCode as InventoryLevelValues | undefined;\n }\n return undefined;\n};\n\n/**\n * Retrieves inventory level code from the product availability based on the app config setting.\n * @param productAvailability - The product availability info.\n * @param inventoryLevel - App config setting for inventory level.\n * @returns Inventory level code value.\n */\nexport const getInventoryLevelCodeFromProductAvailability = (\n productAvailability: ProductInventoryAvailability,\n inventoryLevel?: InventoryLevels | undefined\n): InventoryLevelValues | undefined => {\n if (inventoryLevel === InventoryLevels.totalAvailable) {\n return productAvailability.TotalAvailableInventoryLevelCode as InventoryLevelValues | undefined;\n }\n if (inventoryLevel === InventoryLevels.physicalAvailable) {\n return productAvailability.PhysicalAvailableInventoryLevelCode as InventoryLevelValues | undefined;\n }\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput } from '@msdyn365-commerce/core';\nimport { IMSDyn365Window } from '@msdyn365-commerce/core-internal';\nimport { Cart, CartLine, IAddCartLinesParam, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\nimport { IProductInfo, TelemetryEvent } from '@msdyn365-commerce/telemetry-internal';\nimport { getProductInfoFromCartLinesAsync } from './telemetry.action.helper';\n\ndeclare let window: IMSDyn365Window;\n\n/**\n * Saves info on cart lines added before calling data action\n * @param inputs Data action inputs\n * @param actionContext Action context\n */\nconst beforeAddToCart = async (inputs: IActionInput | IActionInput[], actionContext: IActionContext) => {\n try {\n const actionInput = Array.isArray(inputs) ? inputs[0] : inputs;\n\n // If cart lines were added\n if (actionInput.queryParams && typeof actionInput.queryParams === 'function') {\n const addCartLinesParams = actionInput.queryParams();\n if (addCartLinesParams && addCartLinesParams.cartLines) {\n // Save info on added cart lines for post data action hook to pick up\n actionContext.requestContext.telemetryData.addedCartLines = addCartLinesParams.cartLines;\n return;\n }\n }\n actionContext.telemetry.debug('AddToCart pre-data action hook failed - No added cart lines found');\n } catch (e) {\n actionContext.telemetry.debug('AddToCart pre-data action hook failed.', e);\n }\n};\n\n/**\n * Fires an AddToCart event after AddCartLines data action completed\n * @param _inputs Data action inputs\n * @param cart New cart object after cart lines have been added\n * @param actionContext Action context\n */\nconst afterAddToCart = async (_inputs: IActionInput | IActionInput[], cart: Cart | Cart[], actionContext: IActionContext) => {\n if (window && window._msdyn365 && window._msdyn365.telemetry) {\n const cartObject = Array.isArray(cart) ? cart[0] : cart;\n const addedCartLines = actionContext.requestContext.telemetryData.addedCartLines;\n let addedProducts: IProductInfo[] = [];\n\n // Collect info on products added to cart\n if (addedCartLines) {\n try {\n addedProducts = await getProductInfoFromCartLinesAsync(addedCartLines, actionContext);\n } catch (error) {\n actionContext.telemetry.error('AddCartLines post-data action hook failed to process cart lines.', error);\n }\n }\n\n // Fire AddToCart event\n window._msdyn365.telemetry.logEvent(TelemetryEvent.AddToCart, {\n cartId: cartObject.Id,\n cartVersion: cartObject.Version ? cartObject.Version.toString() : '',\n products: addedProducts,\n orderId: cartObject.OrderNumber ? cartObject.OrderNumber.toString() : ''\n });\n }\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Carts/AddCartLines',\n postReaderHook: afterAddToCart,\n preReaderHook: beforeAddToCart\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IDictionary,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ArrayExtensions, generateCacheKey } from './utilities';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { generateProductImageUrl } from './utilities/utils';\n\n/**\n * Product Input.\n */\nexport class ProductInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public warehouseId?: string;\n\n public catalogId?: number;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(\n productId: number | string,\n apiSettings: ICommerceApiSettings,\n channelId?: number,\n warehouseId?: string,\n requestContext?: IRequestContext,\n catalogId?: number\n ) {\n this.apiSettings = apiSettings;\n this.productId = +productId;\n this.channelId = channelId || apiSettings.channelId;\n this.warehouseId = warehouseId;\n this.catalogId = catalogId;\n\n if (requestContext && catalogId === undefined) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n public getCacheKey = () =>\n generateCacheKey(\n this.apiSettings,\n { key: 'ProductRecordId', value: this.productId },\n { key: 'ChannelId', value: this.channelId },\n { key: 'WarehouseId', value: this.warehouseId },\n { key: 'CatalogId', value: this.catalogId }\n );\n\n public getCacheObjectType = () => 'SimpleProduct';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nexport const createSimpleProductsInput = (inputData: ICreateActionContext>): IActionInput[] => {\n let productIds = inputData.config && inputData.config.productIds;\n if (!productIds) {\n return [];\n }\n\n productIds = typeof productIds === 'string' ? productIds.split(',') : productIds;\n return !Array.isArray(productIds)\n ? []\n : productIds.map((productId: string) => {\n return new ProductInput(productId, inputData.requestContext.apiSettings, undefined, undefined, inputData.requestContext);\n });\n};\n\n/**\n * Calls the Retail API and returns the product based on the passed ProductInput.\n * @param inputs\n * @param ctx\n */\nexport async function getSimpleProductsAction(inputs: ProductInput[], ctx: IActionContext): Promise {\n if (!ArrayExtensions.hasElements(inputs)) {\n ctx.trace('[getSimpleProductsAction] Invalid or empty inputs passed.');\n return [];\n }\n\n const productIdMapping: IDictionary = {};\n\n for (let index = 0; index < inputs.length; ++index) {\n productIdMapping[inputs[index].productId] = index;\n }\n\n const getProductPromises: Promise[] = [];\n const catalogIds = ArrayExtensions.unique(inputs.map(input => input.catalogId));\n for (const catalogId of catalogIds) {\n const productInputs = inputs.filter(input => input.catalogId === catalogId);\n getProductPromises.push(\n getByIdsAsync(\n { callerContext: ctx, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx) },\n inputs[0].channelId,\n productInputs.map(input => input.productId),\n inputs[0].warehouseId ?? null,\n catalogId ?? 0\n )\n .then(response => {\n return response;\n })\n .catch(error => {\n ctx.telemetry.debug(`[getSimpleProductsAction] Error in getting response from server. ${error}`);\n return {};\n })\n );\n }\n\n const products = ArrayExtensions.flatten(await Promise.all(getProductPromises));\n const mappedProducts = products\n .map(product => {\n try {\n const newImageUrl = generateProductImageUrl(product, ctx.requestContext.apiSettings);\n\n if (newImageUrl) {\n product.PrimaryImageUrl = newImageUrl;\n }\n\n return product;\n } catch {\n ctx.trace('[getSimpleProductsAction] Unable to update ImageURL for Product');\n return undefined;\n }\n })\n .reduce((memo: SimpleProduct[], product: SimpleProduct | undefined) => {\n if (!product) {\n return memo;\n }\n const index = productIdMapping[product.RecordId];\n memo[index] = product;\n return memo;\n }, []);\n\n // NOTE: This is not an ideal fix, but will resolve all current issues\n return inputs.map(input => {\n const foundProduct = mappedProducts.find(product => product && product.RecordId === input.productId);\n return foundProduct || {};\n });\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-simple-products',\n action: >getSimpleProductsAction,\n input: createSimpleProductsInput,\n isBatched: true\n});\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ActionPostHook,\n ActionPostReaderHook,\n ActionPreHook,\n ActionPreReaderHook,\n IAnyAction,\n msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport { LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst DEPRECATED_HOOK_TYPES = ['pre', 'post', 'preRead', 'postRead'];\n\nexport namespace ActionRegistrar {\n type ActionHook = ActionPreHook | ActionPostHook;\n\n export type ActionRegistration = {\n action?: IAnyAction;\n pre?: Set;\n post?: Set>;\n preRead?: Set;\n postRead?: Set>;\n preReader?: Set;\n postReader?: Set>;\n };\n\n interface IActionDictionary {\n [actionKey: string]: ActionRegistration;\n }\n\n const dataActionRegister: IActionDictionary = {};\n\n export const getRegistration = (id?: string): ActionRegistration | undefined => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((msdyn365Commerce).getPartnerOverrideAction && id) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const partnerDataAction = (msdyn365Commerce).getPartnerOverrideAction(id);\n if (partnerDataAction && partnerDataAction.default) {\n dataActionRegister[id].action = partnerDataAction.default;\n } else if (partnerDataAction && partnerDataAction.prototype && partnerDataAction.prototype.Action) {\n dataActionRegister[id].action = partnerDataAction;\n }\n }\n\n if (id) {\n return dataActionRegister[id];\n }\n\n return undefined;\n };\n\n export const unwrapAction = (action: IAnyAction): IAnyAction => {\n if (action && action.prototype && !action.prototype.isAction) {\n // registered action is an action wrapper. Unwrap it.\n return >action.prototype.Action;\n }\n return action;\n };\n /**\n * Gets the action registered with id\n * @param id - ID to look up action\n */\n export const getAction = (id?: string): IAnyAction | undefined => {\n if (!id) {\n return;\n }\n const registeredAction = getRegistration(id);\n if (registeredAction) {\n return >registeredAction.action;\n }\n return;\n };\n\n /**\n * registers action. Does nothing if action is already registered\n * @param id - ID to register action with\n * @param action - action to register\n */\n export const registerAction = (id: string, dataAction: IAnyAction): IAnyAction | undefined => {\n if (!id || !dataAction) {\n // unable to register no id or action\n return;\n }\n\n const actionRegister = dataActionRegister;\n\n if (actionRegister[id]) {\n const registration = actionRegister[id];\n registration.action = dataAction;\n return >actionRegister[id].action;\n } else {\n const registration = { action: dataAction };\n actionRegister[id] = registration;\n return dataAction;\n }\n };\n\n const registerHook = (\n hookType: 'pre' | 'post' | 'preRead' | 'postRead' | 'preReader' | 'postReader'\n ) => (id: string, hook: HookType) => {\n // deprecate read only hook\n if (!msdyn365Commerce.isBrowser && DEPRECATED_HOOK_TYPES.indexOf(hookType) > -1) {\n StaticTelemetry.log(\n LogLevel.Warning,\n `Data action hooks are deprecated and will be removed in later versions. Please use data action overrides to extend data actions. The related action of this ${hookType} hook is - ${id}`\n );\n }\n\n const registration = getRegistration(id);\n // coerce hook into an iterable\n const hooks = Array.isArray(hook) ? hook : [hook];\n if (!registration) {\n // If the registration does not exist init one with just the hooks\n const newRegistration: { [id: string]: unknown } = {};\n newRegistration[hookType] = new Set(hooks);\n dataActionRegister[id] = newRegistration;\n } else {\n // If the registration does exist merge new hooks with existing hooks\n const hookRegistration = registration[hookType] || new Set();\n hooks.forEach(h => {\n hookRegistration.add(h);\n });\n // @ts-ignore\n registration[hookType] = hookRegistration;\n }\n return hook;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostHook = registerHook | ActionPostHook[]>('post');\n export const registerPreHook = registerHook('pre');\n export const registerPreReadOnlyHook = registerHook('preRead');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReadOnlyHook = registerHook | ActionPostHook[]>('postRead');\n export const registerPreReaderHook = registerHook('preReader');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReaderHook = registerHook | ActionPostReaderHook[]>('postReader');\n\n export const getPreHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.pre;\n };\n\n export const getPostHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.post;\n };\n\n export const getPreReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preRead;\n };\n\n export const getPostReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postRead;\n };\n\n export const getPreReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preReader;\n };\n export const getPostReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postReader;\n };\n\n /**\n * Resolves the action and returns first action in action chain. Registers action if not yet registered\n * @param id - Action id to look up or register under\n * @param action - Action function\n */\n export const resolveAction = (id: string, action: IAnyAction): IAnyAction | undefined => {\n return getAction(id) || >registerAction(id, action) || action;\n };\n\n export const resolveRegistration = (\n id: string,\n action: IAnyAction,\n preHooks?: ActionPreHook[],\n postHooks?: ActionPostHook[],\n preReadHooks?: ActionPreHook[],\n postReadHooks?: ActionPostHook[],\n preReaderHooks?: ActionPreReaderHook[],\n postReaderHooks?: ActionPostReaderHook[]\n ) => {\n const resolvedAction = resolveAction(id, action);\n if (!resolvedAction) {\n return;\n }\n preHooks && registerPreHook(id, preHooks);\n postHooks && registerPostHook(id, postHooks);\n preReadHooks && registerPreReadOnlyHook(id, preReadHooks);\n postReadHooks && registerPostReadOnlyHook(id, postReadHooks);\n preReaderHooks && registerPreReaderHook(id, preReaderHooks);\n postReaderHooks && registerPostReaderHook(id, postReaderHooks);\n return getRegistration(id);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAction, IActionInput, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\nexport type dataActionOptions = {\n action: IAction;\n isBatched?: boolean;\n id?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input?: (...args: any[]) => IActionInput | IActionInput[];\n};\n\ntype IActionWrap = IAction | IObservableAction;\n\n/**\n * Wraps a data action with the associated action wrap.\n * @param options\n * @param actionWrap\n */\nexport const wrapDataAction = (options: dataActionOptions, actionWrap: IActionWrap): IActionWrap => {\n if (!options) {\n throw new Error('wrapDataAction called with invalid options. Options should have atleast action defined');\n }\n\n if (!options.action) {\n throw new Error(\n `Received invalid actions when attempting to parse options. Input name: ${options.input ? options.input.name : 'undefined'}`\n );\n }\n\n let inputFunc = options.input!;\n let id = options.id;\n let isBatched = options.isBatched!;\n options.action.prototype = {\n id,\n isBatched,\n isAction: true\n };\n\n actionWrap.prototype = {\n id,\n isAction: false,\n _action: options.action,\n set RegistrationId(registrationId: string) {\n options.action.prototype.RegistrationId = registrationId;\n },\n get RegistrationId(): string {\n return options.action.prototype.RegistrationId || '';\n },\n set inputFunc(func: Function) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (inputFunc) = func;\n },\n get inputFunc(): Function {\n return inputFunc;\n },\n get isBatched(): boolean {\n return isBatched;\n },\n set isBatched(_isBatched: boolean) {\n isBatched = _isBatched;\n },\n get Action(): IAction {\n return options.action;\n },\n set Action(newAction: IAction) {\n // There are no getter/setters on the action function prototype so this behaves as expected.\n inputFunc = newAction.prototype.input || inputFunc;\n id = newAction.prototype.id || id;\n isBatched = newAction.prototype.isBatched || isBatched;\n newAction.prototype = { ...newAction.prototype, ...options.action.prototype };\n options.action = newAction;\n },\n setProperty: (propertyName: string, value: unknown) => {\n options.action.prototype[propertyName] = value;\n actionWrap.prototype[propertyName] = options.action.prototype[propertyName];\n }\n };\n if (actionWrap.prototype.id) {\n ActionRegistrar.registerAction(actionWrap.prototype.id, actionWrap);\n }\n\n return actionWrap;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IActionInput, IActionWrapperPrototype, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { dataActionOptions, wrapDataAction } from './wrap-data-action';\n\n/**\n * Higher order function which exposes the current method as an action\n * @param action The action method\n * @param isBatched If the service call can handle batched requests efficiently\n * @param input Optional parameter of a single instance or an array of IActionInputs that will be passed to the action method.\n */\nexport const createObservableDataAction = (options: dataActionOptions): IObservableAction => {\n const wrappedAction = wrapDataAction(\n options,\n (arg1: IActionInput | IActionInput[], arg2: IActionContext): AsyncResult => {\n return new AsyncResult((resolve, reject) => {\n arg2.chainAction(options.action, arg1)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n );\n (wrappedAction.prototype).setProperty('isObservable', true);\n return >wrappedAction;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ActionPostHook, ActionPostReaderHook, ActionPreHook, ActionPreReaderHook } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\ntype dataActionHook = {\n actionId: string;\n preHook?: ActionPreHook;\n postHook?: ActionPostHook;\n preReadonlyHook?: ActionPreHook;\n postReadonlyHook?: ActionPostHook;\n preReaderHook?: ActionPreReaderHook;\n postReaderHook?: ActionPostReaderHook;\n};\n\nexport const createDataActionHook = (options: dataActionHook): void => {\n options.preHook && ActionRegistrar.registerPreHook(options.actionId, options.preHook);\n options.postHook && ActionRegistrar.registerPostHook(options.actionId, options.postHook);\n options.preReadonlyHook && ActionRegistrar.registerPreReadOnlyHook(options.actionId, options.preReadonlyHook);\n options.postReadonlyHook && ActionRegistrar.registerPostReadOnlyHook(options.actionId, options.postReadonlyHook);\n options.preReaderHook && ActionRegistrar.registerPreReaderHook(options.actionId, options.preReaderHook);\n options.postReaderHook && ActionRegistrar.registerPostReaderHook(options.actionId, options.postReaderHook);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n Timeout = 'Timeout',\n HookTimeout = 'Hook Timeout',\n ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * Action Error Wrapper\n */\nexport class ActionError extends Error {\n public static readonly Name: string = 'ActionError';\n\n public error?: unknown;\n public status?: ActionErrorStatus;\n\n /**\n * Checks if an object is an action error\n */\n public static isActionError(error: unknown): boolean {\n return error instanceof Error && (error).name === ActionError.Name;\n }\n\n public static isTimeoutError(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.Timeout;\n }\n\n public static isServiceUnavailable(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.ServiceUnavailable;\n }\n\n /**\n * Action Errors\n * @param error Original Error\n */\n constructor(error: ActionErrorStatus | Error);\n constructor(error: Error) {\n super();\n this.name = ActionError.Name;\n if (error instanceof Error) {\n this.message = error.message;\n this.error = error;\n } else {\n if (error === ActionErrorStatus.Timeout) {\n this.status = error;\n this.message = 'Action Timeout';\n } else if (error === ActionErrorStatus.HookTimeout) {\n this.status = error;\n this.message = 'Action hook Timeout';\n } else if (error === ActionErrorStatus.ServiceUnavailable) {\n this.status = error;\n this.message = 'Action failed due to service unavailable';\n } else if (typeof error === 'string') {\n this.message = error;\n } else {\n this.error = error;\n }\n }\n\n // As of Typescript 2.1 if we extend the Error object the prototype must be set explicitly\n // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, ActionError.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AppCache, ICache } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput } from '@msdyn365-commerce/core-internal';\n\n/**\n * Method to indicate if the action should look in app cache for data\n * @param input ActionInput\n */\nexport const shouldReadFromAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return !!appCache && input && input.dataCacheType !== undefined && input.dataCacheType() !== 'none';\n};\n\n/**\n * Method to indicate if the action should write in app cache\n * @param input ActionInput\n */\nexport const shouldWriteToAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return isAppCacheData(input, appCache);\n};\n\n/**\n * Method to indicate if the action's cache type is application\n * @param input ActionInput\n */\nexport const isAppCacheData = (input: IActionInput, appCache: ICache | null): boolean => {\n if (!appCache) {\n return false;\n }\n\n if (input) {\n if (input.dataCacheType !== undefined && input.dataCacheType() === 'application') {\n return true;\n }\n\n // if an entity has a cache setting defined, we cache that entity - caching retail proxy actions\n return (appCache).hasCacheSetting(input.getCacheObjectType());\n }\n\n return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheSource } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput, IRequestContext, msdyn365Commerce, verboseLogger } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { IInternalTelemetry, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\n\nexport const addLocaleInformation = (inputs: IActionInput | IActionInput[], locale: string): void => {\n const isArray = Array.isArray(inputs);\n if (isArray) {\n const actionInputs = (inputs || []) as IActionInput[];\n actionInputs.forEach(input => {\n if (input instanceof DataServiceRequest && !input.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = input._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n input._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n });\n } else {\n if (inputs instanceof DataServiceRequest && !inputs.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = inputs._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n inputs._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n }\n};\n\nconst _resolveCacheEntryReference = (\n dataServiceRequest: DataServiceRequest,\n item: any,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache?: boolean,\n isWrappingPromise?: boolean,\n isObservable: boolean = true\n) => {\n const cacheValueAsArray = (item.key as string[])\n .map(key => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n const value = requestCache.get({ typeName: cacheObjectType, key });\n if (!value && shouldReadFromAppCache && appCache) {\n appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!value || !value.item) {\n return undefined;\n }\n\n const valueItem: any = value.item;\n\n if (isAsyncResult(valueItem)) {\n return valueItem.result;\n }\n\n return valueItem;\n })\n .filter(data => data !== undefined && data !== null);\n\n if ((item.key as string[]).length > cacheValueAsArray.length) {\n return;\n }\n\n // If we are returning a Promise that represents a future collection, we need to unwrap it\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n\n return cacheValueAsArray && cacheValueAsArray.length > 0\n ? isReturnTypeACollection && !isWrappingPromise\n ? cacheValueAsArray\n : cacheValueAsArray[0]\n : undefined;\n};\n\nconst logTelemetrySource = (\n cacheValue: ICacheItem,\n dataServiceRequest: DataServiceRequest,\n cacheKey: string,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry\n) => {\n if (!telemetry) {\n return;\n }\n if (!msdyn365Commerce.isBrowser) {\n switch (cacheValue.s!) {\n case ICacheSource.AppCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'AppCache']\n });\n break;\n }\n case ICacheSource.RequestCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'RequestCache']\n });\n break;\n }\n default: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'Default']\n });\n break;\n }\n }\n }\n};\n\nconst readCacheEntriesBasedOnCacheKeyFromReturnType = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (cacheKeyFromReturnType.length === 0) {\n return { entry: null, shouldRefresh: false };\n }\n let shouldRefreshAll = true;\n const cacheEntries = cacheKeyFromReturnType\n .map((entry: any) => {\n const key = `${cacheKeyIdentifierFromReturnType}-${entry}`;\n\n let cacheValue = requestCache.get({ typeName: cacheObjectType, key });\n\n if (!cacheValue && shouldReadFromAppCache && appCache) {\n cacheValue = appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!cacheValue || !cacheValue.item) {\n return null;\n }\n // according to the logic, will treat the entries to shouldRefresh when all entries have shouldRefresh.\n if (!cacheValue.shouldRefresh) {\n shouldRefreshAll = false;\n }\n logTelemetrySource(cacheValue, dataServiceRequest, key, context, telemetry);\n\n return cacheValue.item;\n })\n .filter(Boolean);\n\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n const cacheEntriesReturn = cacheEntries && cacheEntries.length > 0 ? (isReturnTypeACollection ? cacheEntries : cacheEntries[0]) : null;\n return { entry: cacheEntriesReturn, shouldRefresh: shouldRefreshAll };\n};\n\nexport const readCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean = false,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!requestCache || (!dataServiceRequest.getCacheKey() && cacheKeyFromReturnType.length === 0) || !cacheObjectType) {\n return { entry: null, shouldRefresh: false };\n }\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n if (cacheKeyFromInput === GET_FROM_RETURNIDENTIFIER || (cacheKeyIdentifierFromReturnType && cacheKeyFromReturnType.length !== 0)) {\n const entries = readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n if (entries && entries.entry) {\n return entries;\n }\n }\n const cacheKey = { typeName: cacheObjectType, key: cacheKeyFromInput };\n\n let cachedValueBasedOnInput = requestCache.get(cacheKey);\n if (cachedValueBasedOnInput) {\n cachedValueBasedOnInput = { ...cachedValueBasedOnInput };\n } else if (shouldReadFromAppCache && appCache) {\n cachedValueBasedOnInput = appCache.copyTo(cacheKey, requestCache, isObservable);\n }\n\n if (!cachedValueBasedOnInput) {\n return readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n }\n logTelemetrySource(cachedValueBasedOnInput, dataServiceRequest, cacheKeyFromInput, context, telemetry);\n\n if (cachedValueBasedOnInput.item instanceof AsyncResult) {\n if (cachedValueBasedOnInput.item.status !== 'LOADING') {\n cachedValueBasedOnInput.item = cachedValueBasedOnInput.item.result || cachedValueBasedOnInput.item.error;\n } else {\n const asyncResult = cachedValueBasedOnInput.item.then(result => {\n if (typeof result !== 'object' || result.$ref !== true) {\n return result;\n }\n\n return _resolveCacheEntryReference(\n dataServiceRequest,\n result,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isObservable\n );\n });\n return { entry: asyncResult, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n }\n\n if (\n typeof cachedValueBasedOnInput.item !== 'object' ||\n (cachedValueBasedOnInput.item &&\n // @ts-ignore -- $ref property does not exists in type object\n cachedValueBasedOnInput.item.$ref !== true)\n ) {\n return { entry: cachedValueBasedOnInput.item, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n\n const cachedValueBasedOnInputItem: any = cachedValueBasedOnInput.item;\n\n const resolvedRef = _resolveCacheEntryReference(\n dataServiceRequest,\n cachedValueBasedOnInput.item,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isAsyncResult(cachedValueBasedOnInputItem),\n isObservable\n );\n return { entry: resolvedRef, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n};\n\nconst _saveEntityToCache = (\n dataServiceRequest: DataServiceRequest,\n data: any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const dataServiceRequestQuery = dataServiceRequest._query;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType)) {\n return;\n }\n\n const cacheEntries: any = {};\n const results = data;\n\n // using Object.prototype instead of Array.isArray because results can be Observable Array which can't be detected with Array.isArray\n if (!dataServiceRequestQuery.isReturnTypeACollection || Object.prototype.toString.call(results) !== '[object Array]') {\n if (cacheKeyIdentifierFromReturnType) {\n const key = `${cacheKeyIdentifierFromReturnType}-${results[cacheKeyIdentifierFromReturnType]}`;\n cacheEntries[key] = results;\n if (cacheKeyFromInput) {\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem?.item?.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: cacheObjectType,\n identifier: cacheKeyIdentifierFromReturnType,\n key: [key],\n // @ts-ignore -- accessing a private class variable which is a valid JS\n count: dataServiceRequest._totalCount\n };\n }\n }\n } else {\n cacheEntries[cacheKeyFromInput] = results;\n }\n } else if (!cacheKeyIdentifierFromReturnType) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n const cacheValue = results\n .map((result: { [x: string]: any }) => {\n const identifierValue = result[cacheKeyIdentifierFromReturnType];\n if (identifierValue) {\n const key = `${cacheKeyIdentifierFromReturnType}-${identifierValue}`;\n cacheEntries[key] = result;\n return key;\n }\n })\n .filter(Boolean);\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem.item.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n if (existingCacheItem) {\n // @ts-ignore - _cacheObjectType does not exist in type ICacheItem\n const existingCacheObjectType = existingCacheItem._cacheObjectType;\n // @ts-ignore - _cacheKeyIdentifierFromReturnType does not exist in type ICacheItem\n const existingCacheKeyIdentifierFromReturnType = existingCacheItem._cacheKeyIdentifierFromReturnType;\n // @ts-ignore - _query does not exist in type ICacheItem\n const existingCacheIsReturnTypeACollection = existingCacheItem._query.isReturnTypeACollection;\n // @ts-ignore - _totalCount does not exist in type ICacheItem\n const existingCacheTotalCount = existingCacheItem._totalCount;\n\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: existingCacheObjectType,\n identifier: existingCacheKeyIdentifierFromReturnType,\n isCollection: existingCacheIsReturnTypeACollection,\n key: cacheValue,\n count: existingCacheTotalCount\n };\n }\n }\n }\n\n if (cacheEntries) {\n Object.keys(cacheEntries).map(entryKey => {\n requestCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n }\n });\n }\n\n return cacheEntries;\n};\n\nexport const saveCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n data: AsyncResult | any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n // if return Entity is collection\n // if entity type has identifier/primary key\n // 1. cache array of primay key value of returned entity collection on input cache key\n // 2. cache individual entity on primary key\n // else\n // 1. cache output on input cache key\n //\n // else if entity type has identifier/primary key\n // 2. cache output entity on primary key\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType) || !cacheObjectType) {\n return;\n }\n\n if (data instanceof AsyncResult) {\n // For a loading Promise, cache based on input cachekey, and then cache output again once complete\n if (data.status === 'LOADING') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n data.then((result: any) => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n\n _saveEntityToCache(dataServiceRequest, result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return result;\n });\n requestCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n }\n // For a completed promise, save the action results to the cache\n } else {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n _saveEntityToCache(dataServiceRequest, data.result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return data.result;\n }\n } else {\n return _saveEntityToCache(dataServiceRequest, data, requestCache, appCache, isCacheTypeApplication, isInstance);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventEmitter } from 'events';\n\n/** EventEmitter is available in node, but not on the browser,\n * this class attempts to polyfill that so the action context can remain Isomorphic\n */\n/* @internal*/\n\n/**\n * Type for event emitter listener callback\n */\nexport type ListenerCallback = (...args0: T) => void;\n\n/**\n * Generic cast type\n */\nexport type GenericCallback = (...args: any) => void;\n\n/**\n * Custom isomorphic event emitter implementation\n *\n * @export\n * @class CustomEventEmitter\n */\nclass CustomEventEmitter {\n private listeners: Map = new Map();\n private eventEmitter: EventEmitter | null = typeof window !== undefined ? null : new EventEmitter();\n\n public on(event: string, callback: ListenerCallback): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.on(event, callback);\n } else {\n let listeners = this.listeners.get(event);\n if (!!!listeners) {\n listeners = [];\n this.listeners.set(event, listeners);\n }\n\n listeners.push(callback);\n }\n }\n\n public emit(event: string, ...args: T): boolean {\n if (!!this.eventEmitter) {\n return this.eventEmitter.emit(event, args);\n }\n\n const listeners = this.listeners.get(event);\n\n if (listeners && listeners.length) {\n listeners.forEach(listener => {\n listener(...args);\n });\n return true;\n }\n\n return false;\n }\n\n public removeAllListeners(event: string): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.removeAllListeners(event);\n } else {\n this.listeners.delete(event);\n }\n }\n}\n\nexport default new CustomEventEmitter();\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport {\n CacheType,\n IActionContext,\n IActionInput,\n IAnyAction,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger,\n checkVersionForFeature,\n getPerformanceUtils\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, ErrorTypeEnum, isAsyncResult, ProxyError } from '@msdyn365-commerce/retail-proxy';\nimport { asSystemMetadata, ITelemetry, LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { get as _get, uniqWith } from 'lodash';\nimport { toJS } from 'mobx';\nimport uuidv1 from 'uuid/v1';\n\nimport { ActionError, ActionErrorStatus } from './action-error';\nimport { ActionRegistrar } from './action-registrar';\nimport { isAppCacheData, shouldReadFromAppCache, shouldWriteToAppCache } from './action-runtime-utils';\nimport { readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\nconst defaultTimeoutInMS: number = 4000;\nconst defaultHookTimeoutInMS: number = 1000;\nexport const CLIENT_HYDRATE_KEY = 'clientHydrateKey';\nexport const CLIENT_HYDRATE_TYPE = 'clientHydrate';\n\nconst Timer = (timeoutInMS: number, message: unknown) => new Promise(resolve => setTimeout(resolve.bind(resolve, message), timeoutInMS));\n\nconst ActionTimer = (timeoutInMS: number) =>\n new Promise((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\nconst ObservableActionTimer = (timeoutInMS: number) =>\n new AsyncResult((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\n/* @internal */\n/**\n * This class contains the logic to batch and de-dupe the actions that can be executed.\n * This class is also responsible for checking and saving the action response to cache.\n */\nexport default class ActionExecutor {\n public readonly action: Function;\n public readonly cacheType: CacheType;\n private readonly isBatched: boolean;\n private readonly eventId: string;\n private readonly isObservable: boolean;\n\n private inputs: IActionInput[];\n /**\n * @param action the action to execute\n * @param inputs the action input\n */\n constructor(action: Function, inputs: IActionInput[], telemetry: ITelemetry, dataActionOption?: IDataActionOptions) {\n this.action = action;\n this.eventId = uuidv1();\n this.inputs = [...inputs]; // Cloning it DO NOT use the reference\n this.isBatched = action.prototype.isBatched;\n\n this.isObservable = action.prototype.isObservable;\n\n // Cache all the calls on browser\n const masterInput = inputs[0];\n\n if (masterInput && masterInput.dataCacheType) {\n this.cacheType = masterInput.dataCacheType();\n } else if (masterInput && masterInput.shouldCacheOutput) {\n this.cacheType = masterInput.shouldCacheOutput() ? 'request' : 'none';\n telemetry.trace('shouldCacheOutput property has been deprecated. Please update the IActionInput to use dataCacheType');\n } else {\n this.cacheType = (dataActionOption && dataActionOption.cacheType) || 'none';\n // for data actions who do not have dataCacheType function, we add customer defined cachtype to the action.\n // this is used for later check if the data acton should be read from app cache.\n inputs.forEach(input => {\n input.dataCacheType = () => this.cacheType;\n });\n telemetry.trace('Neither dataCacheType nor shouldCacheOutput are set. Caching strategy will fall back to \"none\"');\n }\n }\n\n /**\n *\n * @param inputs add more inputs\n */\n public addInputs(inputs: IActionInput[]): void {\n this.inputs.push(...inputs);\n }\n\n /** Execute the action */\n public async execute(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache?: boolean,\n refreshingInputs: IActionInput[] = []\n ): Promise {\n const unique: IActionInput[] =\n refreshingInputs && refreshingInputs.length > 0\n ? this._removeDuplicates(refreshingInputs)\n : this._removeDuplicates(this.inputs);\n if (!unique.length) {\n return [];\n }\n\n const actionId = this._getActionIdFromInputs(unique);\n\n const performanceUtils = getPerformanceUtils(msdyn365Commerce, context);\n const executionId = performanceUtils?.performanceUtilsPackage.Random.Guid.generateGuid();\n\n performanceUtils?.performanceUtilsPackage.runPreReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n const result = await this._executeDataAction(context, requestCache, appCache, bypassAppCache, refreshingInputs, unique, actionId);\n\n performanceUtils?.performanceUtilsPackage.runPostReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n return result;\n }\n\n private async _executeDataAction(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache: boolean | undefined,\n refreshingInputs: IActionInput[],\n unique: IActionInput[],\n actionId: string\n ): Promise {\n const isRefreshingAction = refreshingInputs && refreshingInputs.length > 0;\n\n this._runPreReadHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n\n // execte preReaderHook\n this._runPreReaderHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n const [uncached, needsRefresh]: IActionInput[][] = this._checkForCachedData(\n unique,\n context,\n requestCache,\n appCache,\n bypassAppCache,\n isRefreshingAction\n );\n\n if (!uncached.length) {\n // excute readOnly post hook with all cached actions ouptput\n await this._fetchOutputsAndRunPostReadHook(actionId, unique, requestCache, context);\n return needsRefresh;\n } else {\n const cachedActions = unique.filter(value => !uncached.includes(value));\n if (cachedActions.length) {\n // fetch the output for all cached data action, and run readOnly hooks. The uncached actions will be excuted later.\n await this._fetchOutputsAndRunPostReadHook(actionId, cachedActions, requestCache, context);\n }\n }\n\n let outputs: any[] = [];\n\n // VNext observable promise based flow\n // Create the AsyncResult and immediately return it\n if (this.isObservable) {\n if (this.isBatched) {\n this._executeBatchedObservableActions(uncached, requestCache, appCache, context, isRefreshingAction);\n } else {\n this._executeObservableAction(uncached[0], requestCache, appCache, context, isRefreshingAction);\n }\n return needsRefresh;\n }\n\n if (this.isBatched) {\n // TODO: Have a max batch count on the action\n outputs = await this._actionWrapper(uncached, context, isRefreshingAction);\n\n if (outputs && outputs.length !== uncached.length) {\n // TODO Throw\n context.telemetry.log(\n LogLevel.Trace,\n 'Length of input array {uncached_length} does not meet the output array {outputs_length}',\n { values: [uncached.length, outputs.length] }\n );\n }\n } else {\n outputs[0] = await this._actionWrapper(uncached[0], context, isRefreshingAction);\n }\n\n if (!outputs || outputs.length === 0) {\n return needsRefresh;\n }\n\n this._saveResponseToCache(uncached, outputs, context, requestCache, appCache);\n return needsRefresh;\n }\n\n // the retail proxy data actions who do not have return type should not interact with cache.\n private _checkShouldInteractWithCache(input: IActionInput, typeName: string | undefined): boolean {\n return !(input instanceof DataServiceRequest) || !!typeName;\n }\n\n private async _fetchOutputsAndRunPostReadHook(\n actionId: string,\n inputs: IActionInput[],\n requestCache: ICache,\n context: IActionContext\n ): Promise {\n const outputs = inputs.map(i => {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail data action does not have return type, we do not read the output from cache.\n let cacheItem;\n if (this._checkShouldInteractWithCache(i, cacheKey.typeName)) {\n cacheItem = requestCache.get>(cacheKey);\n }\n return !!cacheItem ? requestCache.getValue(cacheKey) : null;\n });\n this._runPostReadHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n }\n private _removeDuplicates(inputs: IActionInput[]): IActionInput[] {\n if (!this.isBatched) {\n return inputs;\n }\n\n return uniqWith(\n inputs,\n (inputA: IActionInput, inputB: IActionInput) =>\n inputA.getCacheKey() === inputB.getCacheKey() && inputA.getCacheObjectType() === inputB.getCacheObjectType()\n );\n }\n\n private _getActionIdFromInputs(inputs: IActionInput | IActionInput[]): string {\n let inputsActionId;\n for (const input of Array.isArray(inputs) ? inputs : [inputs]) {\n if (typeof input.getActionId === 'function') {\n inputsActionId = input.getActionId();\n }\n }\n return inputsActionId || (>this.action).prototype.id;\n }\n\n private _getActionFromId(actionId?: string): Function {\n let { action } = this;\n if (actionId) {\n const registration = ActionRegistrar.resolveRegistration(actionId, >action);\n if (registration) {\n action = >registration.action;\n return ActionRegistrar.unwrapAction(>action);\n }\n }\n return action;\n }\n\n private async _runPreReadHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReadHooks = ActionRegistrar.getPreReadHooks(id);\n if (!preReadHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReadHooksArray = Array.from(preReadHooks);\n return preReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostReaderHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postReaderHooks = ActionRegistrar.getPostReaderHooks(id);\n if (!postReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReaderHooksArray = Array.from(postReaderHooks);\n return postReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreReaderHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReaderHooks = ActionRegistrar.getPreReaderHooks(id);\n if (!preReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReaderHooksArray = Array.from(preReaderHooks);\n return preReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n context: IActionContext\n ): Promise {\n const preHooks = ActionRegistrar.getPreHooks(id);\n if (!preHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preHooksArray = Array.from(preHooks);\n return preHooksArray.reduce(async (previousTask, currentTask) => {\n const prevInput = await previousTask;\n let tmpNextInput: unknown;\n try {\n tmpNextInput = await Promise.race([timer, currentTask(prevInput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextInput: IActionInput | IActionInput[] =\n tmpNextInput === ActionErrorStatus.HookTimeout || !tmpNextInput ? prevInput : tmpNextInput;\n return Promise.resolve(finalNextInput);\n }, Promise.resolve(inputs));\n }\n\n private async _runPostReadHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostReadHooks(id);\n\n if (!postHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReadHooksArray = Array.from(postHooks);\n return postReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostHooks(id);\n if (!postHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postHooksArray = Array.from(postHooks);\n return postHooksArray.reduce(async (previousTask, currentTask) => {\n const prevOutput = await previousTask;\n let tmpNextOutput: unknown;\n try {\n tmpNextOutput = await Promise.race([timer, currentTask(inputs, prevOutput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextOutput = tmpNextOutput === ActionErrorStatus.HookTimeout || !tmpNextOutput ? prevOutput : tmpNextOutput;\n return Promise.resolve(finalNextOutput);\n }, Promise.resolve(actionResult));\n }\n\n /**\n * Add performance logging before and after calling the action?\n */\n // eslint-disable-next-line complexity\n private async _actionWrapper(inputs: IActionInput | IActionInput[], context: IActionContext, isRefreshing?: boolean): Promise {\n const actionId = this._getActionIdFromInputs(inputs);\n const action = this._getActionFromId(actionId);\n\n try {\n // Run pre data action hooks\n const _inputs = await this._runPreHooks(actionId, inputs, context);\n if (_inputs) {\n inputs = _inputs;\n }\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing pre-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n return new ActionError(e);\n }\n let actionResult;\n try {\n const timeOut = Number(_get(context, 'requestContext.query.actionTimeout'));\n const features = _get(context, 'requestContext.features', {});\n const serverSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.serverSideDataActionTimeoutInMs;\n const clientSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.clientSideDataActionTimeoutInMs;\n let promises;\n if (process.env.CURRENT_ENVIRONMENT === 'node' && (features.action_timeout || serverSideCustomerTimeout)) {\n const timeOutValue = (features.action_timeout && timeOut ? timeOut : serverSideCustomerTimeout) || defaultTimeoutInMS;\n promises = [this.isObservable ? ObservableActionTimer(timeOutValue) : ActionTimer(timeOutValue), action(inputs, context)];\n } else if (typeof window !== 'undefined' && msdyn365Commerce.isBrowser && clientSideCustomerTimeout) {\n promises = [\n this.isObservable ? ObservableActionTimer(clientSideCustomerTimeout) : ActionTimer(clientSideCustomerTimeout),\n action(inputs, context)\n ];\n } else {\n promises = [action(inputs, context)];\n }\n // run the data action\n actionResult = await Promise.race(promises);\n } catch (e) {\n if (e.message && e.message.length > 0 && !e.message.includes('Action id')) {\n e.message = `Action id: ${actionId}, Error message: ${e.message}`;\n }\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n let error = new ActionError(e);\n // For AsyncResult, we need to signal that this was a rejection by throwing\n if (this.isObservable) {\n // Proxy Errors come wrapped as an array\n if (Array.isArray(e)) {\n error =\n e[0]._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : ProxyError.toError(e[0]);\n } else {\n error =\n e._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : new ActionError(e);\n }\n }\n\n throw error;\n }\n\n try {\n // Run post data action hooks\n const result = await this._runPostHooks(actionId, inputs, actionResult, context);\n if (result) {\n actionResult = result;\n }\n this._runPostReadHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing post-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n }\n return actionResult;\n }\n\n private _shouldUseInstanceCache = () => {\n return checkVersionForFeature('instance_cache') || msdyn365Commerce.platformSettings?.shouldUseInstanceCache;\n };\n\n private _saveResponseToCache(\n uncached: IActionInput[],\n outputs: any[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null\n ): void {\n uncached.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n if (i instanceof DataServiceRequest && !!i.getCacheObjectType()) {\n try {\n const appCacheData = appCache;\n const disableUsingInstanceCache =\n context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n saveCacheEntries(i, outputs[idx], requestCache, appCacheData, shouldWriteToAppCache(i, appCache), usingInstanceCache);\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n\n return null;\n }\n } else {\n const entityId = i.getCacheKey();\n const entityType = i.getCacheObjectType();\n\n if (!!entityId && !!entityType) {\n const entry = outputs[idx];\n const cacheKey = { typeName: entityType, key: entityId };\n if (ActionError.isActionError(entry)) {\n if (!ActionError.isTimeoutError(entry)) {\n requestCache.put(cacheKey, { item: ((entry)).error, error: true });\n }\n // else do nothing\n } else {\n if (appCache && shouldWriteToAppCache(i, appCache)) {\n appCache.put(cacheKey, { item: entry });\n }\n const cacheEntry = { item: entry };\n if (i.dataCacheType && i.dataCacheType() === 'instance') {\n Object.assign(cacheEntry, { instance: 'instance' });\n }\n requestCache.put(cacheKey, cacheEntry);\n }\n }\n }\n });\n }\n\n /**\n * Method that executes a set of batchable observable data actions\n * @param uncached The uncached action inputs\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeBatchedObservableActions(\n uncached: IActionInput[],\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const unresolvedSet = new Set();\n const uncachedInputs: IActionInput[] = [];\n // Create an OP for each input in the batch that does not yet exist in cache\n const asyncOutputs = uncached\n .map((input, index) => {\n unresolvedSet.add(index);\n const executor = (resolve: any, reject: any) => {\n // When the side promise completes, update each individual OP to have it's piece of the entire batched result\n new Promise((innerResolve, innerReject) => {\n const onEventIdCompletion = (value: any) => {\n innerResolve(<{}>value);\n };\n\n const onEventIdFinalCompletion = () => {\n innerResolve();\n };\n\n const onEventIdFailure = (error: any) => {\n innerReject(error);\n };\n\n // Standard success event\n EventHelper.on(`${this.eventId}-complete-${index}-${input.getCacheKey()}`, onEventIdCompletion);\n\n // No response closing event\n EventHelper.on(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`, onEventIdFinalCompletion);\n\n // Failure event\n EventHelper.on(`${this.eventId}-failure`, onEventIdFailure);\n })\n .then(result => {\n EventHelper.removeAllListeners(`${this.eventId}-complete-${index}-${input.getCacheKey()}`);\n EventHelper.removeAllListeners(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`);\n resolve(result);\n })\n .catch(error => {\n EventHelper.removeAllListeners(`${this.eventId}-failure`);\n reject(error);\n });\n };\n\n // Already cached OP logic (rerun)\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Not yet cached OP logic (initialize, run)\n uncachedInputs.push(input);\n return new AsyncResult(executor);\n })\n .filter(Boolean);\n\n // Save never before cached OPs to cache\n this._saveResponseToCache(uncachedInputs, asyncOutputs, context, requestCache, appCache);\n\n // Run the actual action\n this._actionWrapper(uncached, context, isRefreshing)\n .then((actionResults: unknown[]) => {\n // Emit events with the associated result so that each individual OP in the cache\n // can be updated appropriately\n actionResults.forEach((actionResult, index) => {\n unresolvedSet.delete(index);\n EventHelper.emit(`${this.eventId}-complete-${index}-${uncached[index].getCacheKey()}`, actionResult);\n });\n })\n .catch(error => {\n EventHelper.emit(`${this.eventId}-failure`, error);\n })\n .finally(() => {\n // In the event some inputs do not have results, we need to resolve the promises anyhow\n unresolvedSet.forEach(unresolvedIndex => {\n const index = unresolvedIndex;\n EventHelper.emit(`${this.eventId}-final-complete-${index}-${uncached[index].getCacheKey()}`);\n });\n });\n }\n\n /**\n * Executes a standard (non-batched) observable data action\n * @param input The action input\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeObservableAction(\n input: IActionInput,\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const cacheKey = { key: input.getCacheKey(), typeName: input.getCacheObjectType() };\n const executor = (resolve: any, reject: any) => {\n this._actionWrapper(input, context, isRefreshing)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n // If error is timeout error, lookup app-cache if there\n // is a valid entity for the given cacheKey in app-cache\n if (ActionError.isServiceUnavailable(error) && isAppCacheData(input, appCache)) {\n const cachedItem = appCache?.getValue(cacheKey);\n if (cachedItem) {\n return resolve(cachedItem);\n }\n }\n return reject(error);\n });\n };\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n // If OP is already in cache, just rerun it\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Uncached promises need to be saved to cache\n const asyncOutput = new AsyncResult(executor);\n this._saveResponseToCache([input], [asyncOutput], context, requestCache, appCache);\n }\n\n private _checkForCachedData(\n inputs: IActionInput[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassCache?: boolean,\n refreshing?: boolean\n ): IActionInput[][] {\n const mock = _get(context, 'requestContext.query.actionMock');\n\n if (mock) {\n inputs = this._interceptCacheForMocks(inputs, context, requestCache);\n }\n\n const clientHydrateCacheKey: ICacheKey = {\n key: CLIENT_HYDRATE_KEY,\n typeName: CLIENT_HYDRATE_TYPE\n };\n const isClientHydrate = requestCache.getValue(clientHydrateCacheKey);\n const disableUsingInstanceCache = context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n // if the cache type is set a none don't check cache for data and return inputs for execution\n // lazyresponse == true means it has been called from load-data on browser. In this case, data is already present in request-cache due to run on server side\n if (this.cacheType === 'none' || refreshing) {\n // we should keep read from cache when a dataAction\n // 1. run on server\n // 2. none cache type\n // 3. action running as part of initial page load (client hydration).\n // This is important to stay consistent with what we render on server.\n // 4. when instance cache feature is on.\n if (!(this.cacheType === 'none' && inputs[0].runOn === 'server' && isClientHydrate && usingInstanceCache) || refreshing) {\n return [inputs, []];\n }\n }\n\n const uncached: IActionInput[] = [];\n const refresh: IActionInput[] = [];\n // eslint-disable-next-line complexity\n inputs.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail proxy action does not have return type, we do not check if its in the cache\n if (i instanceof DataServiceRequest && !cacheKey.typeName) {\n uncached.push(i);\n return;\n }\n let cacheItem: ICacheItem | undefined = requestCache.get(cacheKey);\n if (cacheItem && isAsyncResult(cacheItem.item) && (>cacheItem.item).status === 'FAILED') {\n if (!i.runOn || i.runOn !== 'serverOnly') {\n uncached.push(i);\n }\n } else if (cacheItem && cacheItem.item && cacheItem.item.status === 'LOADING' && cacheItem.item.runOn === 'client') {\n // Ideally, an action configured to runOn client should never interfere with actions running on server.\n // However, it is possible that parent action with runon 'server' could be dependent on an action that is configured\n // by partner to be runOn 'client'. In this case, the child action implicitly becomes a server action. Therefore, lets\n // include such actions in the uncached list so that it gets picked and executed later.\n uncached.push(i);\n } else if (i instanceof DataServiceRequest) {\n try {\n if (bypassCache && context.requestContext.features && !!!context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n const appCacheData = appCache;\n const cacheEntries = readCacheEntries(\n i,\n requestCache,\n appCacheData,\n !!!bypassCache && shouldReadFromAppCache(i, appCache),\n context.requestContext,\n undefined,\n !!this.isObservable\n );\n if (!cacheEntries.entry) {\n uncached.push(i);\n }\n if (cacheEntries && cacheEntries.shouldRefresh) {\n refresh.push(i);\n }\n }\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n uncached.push(i);\n }\n } else {\n if (bypassCache && context.requestContext.features && !context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n if (!cacheItem && !!!bypassCache && appCache && shouldReadFromAppCache(i, appCache)) {\n cacheItem = appCache.copyTo(cacheKey, requestCache, !!this.isObservable);\n if (cacheItem && cacheItem.shouldRefresh) {\n refresh.push(i);\n }\n }\n\n if (!cacheItem || !cacheItem.item) {\n uncached.push(i);\n return;\n }\n }\n }\n });\n return [uncached, refresh];\n }\n\n /**\n * Searches cache for mocks matching the inputs\n * @param inputs Current action inputs\n * @param context Current action context\n * @param requestCache Current request cache\n */\n private _interceptCacheForMocks(inputs: IActionInput[], context: IActionContext, requestCache: ICache): IActionInput[] {\n const uncached: IActionInput[] = [];\n const actionId: string = this.action.prototype.id;\n inputs.forEach(i => {\n let mockItem = this._getMockItem(i.getCacheObjectType(), i.getCacheKey(), requestCache);\n if (!mockItem && actionId) {\n mockItem = this._getMockItem(actionId, i.getCacheKey(), requestCache);\n }\n let existingItem;\n if (this._checkShouldInteractWithCache(i, i.getCacheObjectType())) {\n existingItem = requestCache.get({ typeName: i.getCacheObjectType(), key: i.getCacheKey() });\n }\n\n if (!!mockItem && !!mockItem.item && !existingItem) {\n const mockItemJSObject = toJS(mockItem.item);\n if (this.isObservable) {\n requestCache.put(\n { typeName: i.getCacheObjectType(), key: i.getCacheKey() },\n { item: AsyncResult.resolve(mockItemJSObject) }\n );\n } else {\n requestCache.put({ typeName: i.getCacheObjectType(), key: i.getCacheKey() }, { item: toJS(mockItemJSObject) });\n }\n } else {\n uncached.push(i);\n }\n });\n return uncached;\n }\n\n private _getMockItem(cacheNamespace: string, cacheKey: string, requestCache: ICache): ICacheItem | undefined {\n return (\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:${cacheKey}` }) ||\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:*` })\n );\n }\n\n private _convertToJSError(e: any): Error {\n // Proxy Error usually comes wrapped in an array\n // If it is, unbox it and conver to regular Error\n if (Array.isArray(e)) {\n const proxyError: ProxyError = e[0];\n if (proxyError.ErrorCode) {\n return ProxyError.toError(proxyError);\n }\n } else if (e.ErrorCode) {\n return ProxyError.toError(e);\n }\n // Return regular Error if not ProxyError\n return new Error(e.message || '');\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core-internal';\nimport { getCatalogsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CatalogsDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Input for get-catalogs data action.\n */\nexport class CatalogsInput implements IActionInput {\n public readonly channelId: number;\n\n public readonly customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly locale?: string;\n\n public constructor(context: IRequestContext, customerAccountNumber?: string) {\n this.channelId = context.apiSettings.channelId ? Number(context.apiSettings.channelId) : 0;\n this.customerAccountNumber = customerAccountNumber ? customerAccountNumber : context.user.customerAccountNumber;\n this.apiSettings = context.apiSettings;\n this.locale = context.locale || '';\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- customer account number can be undefined.\n // Removing customer account number dependency as API does not need customer account number and cache is of request type.\n // Keeping the contract same not to break backward compatibility.\n public getCacheKey = (): string => buildCacheKey(`${this.channelId}`, this.apiSettings, this.locale);\n\n /**\n * Get Cache object type.\n * @returns - Cache object type.\n */\n public getCacheObjectType = (): string => 'productCatalogs';\n\n /**\n * Get data cache type.\n * @returns - Cache type enum.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - The input data passed to the createInput method.\n * @param customerAccountNumber - Customer account number.\n * @returns - Catalogs input.\n */\nexport const createCatalogsInput = (inputData: ICreateActionContext>, customerAccountNumber?: string): IActionInput => {\n if (!inputData.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get product catalog. User is not authenticated.');\n }\n return new CatalogsInput(inputData.requestContext, customerAccountNumber);\n};\n\n/**\n * Calls the Retail API and returns the product catalog for an user.\n * @param input - Catalogs Input.\n * @param context - Current context.\n * @returns - Product catalog for the user.\n */\nexport async function getCatalogAction(input: CatalogsInput, context: IActionContext): Promise {\n const productCatalogs = await getCatalogsAsync({ callerContext: context }, input.channelId, true);\n return productCatalogs;\n}\n\n/**\n * The GetProductCatalogs Data Action\n * Returns product catalogs.\n */\nexport const getCatalogActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-catalogs',\n action: getCatalogAction as IAction,\n input: createCatalogsInput\n});\n\nexport default getCatalogActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IRequestContext, IRequestContextParams } from '@msdyn365-commerce/core-internal';\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { CatalogsInput, getCatalogActionDataAction } from './actions/get-catalogs';\n\n/**\n * Returns catalog name for a given catalog id\n * @param context Action Context\n * @param context Catalog Id\n */\nexport const getCatalogName = async (context: IActionContext, catalogId: number): Promise => {\n if (!context || !context.requestContext || !context.requestContext.apiSettings) {\n return '';\n }\n\n const customerAccountNumber = context.requestContext.user.customerAccountNumber;\n const productCatalogs = await getCatalogActionDataAction(new CatalogsInput(context.requestContext, customerAccountNumber), context);\n\n return findCatalogName(productCatalogs, catalogId);\n};\n\n/**\n * Returns true if data action cache needs to be bypassed\n * @param requestContext rendering context\n * @returns cachebypass status\n */\nexport const shouldByPassCache = (requestContext: IRequestContext) => {\n return (requestContext.query && !!requestContext.query.cachebypass) || isPageInsightsEnabled(requestContext.params);\n};\n\nconst isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\n/**\n * Matches the catalog if with the productCatalogs response and returns catalog name\n * @param productCatalogs Product catalogs response\n * @param catalogId Catalog id to search in Product catalogs response\n * @returns Catalog name\n */\nexport const findCatalogName = (productCatalogs: ProductCatalog[], catalogId: number): string => {\n let catalogName = '';\n productCatalogs &&\n productCatalogs.forEach((catalog: ProductCatalog) => {\n if (catalog.RecordId === catalogId && catalog.Name) {\n catalogName = catalog.Name;\n }\n });\n return catalogName;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey, ICacheSource, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n IAction,\n IActionContext,\n IActionInput,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n asSystemMetadata,\n GenericConsoleLogger,\n ITelemetry,\n LogLevel,\n StaticTelemetry,\n Telemetry\n} from '@msdyn365-commerce/telemetry-internal';\nimport uuidv1 from 'uuid/v1';\nimport ActionExecutor from './action-executor';\nimport { ActionRegistrar } from './action-registrar';\nimport { shouldWriteToAppCache } from './action-runtime-utils';\nimport { addLocaleInformation, readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\nimport { shouldByPassCache } from './helpers';\n\n/**\n * Cache key for actions which needs to be refreshed after page render\n */\nexport const REFRESH_ACTIONS_CACHE_KEY: ICacheKey = {\n typeName: '__REFRESH_CONFIGS_TYPE__',\n key: '__refresh_cache_key'\n};\n\n/**\n * This interface is used in ActionContext only, for saving information needed to refresh data actions.\n *\n */\nexport interface IRefreshConfigs {\n actionInputs: IActionInput[];\n paramExecutor: ActionExecutor;\n}\n/**\n * This class contains the primary logic which controls the execution flow of the action runtime\n *\n */\n/* @internal*/\n/**\n *\n */\nexport class ActionContext implements IActionContext {\n public static maxDepth: number = 200;\n\n public readonly executionParams: ActionExecutor[] = [];\n public readonly requestContext: any;\n\n /**\n * Telemetry object to log information\n */\n public telemetry: ITelemetry;\n\n private readonly requestCache: ICache;\n private readonly appCache: ICache | null = null;\n private readonly cacheKeyMap: string[] = [];\n private readonly refreshConfigs: IRefreshConfigs[] = [];\n\n /**\n * Action context creates a new instance for every tier of execution,\n * This number specifies the depth/current tier in the execution flow\n */\n private readonly currentExecutionTier: number;\n\n /**\n * Thread ID\n */\n private readonly threadId: string;\n\n /**\n * Event ID\n * Unique ID for each action context, automatically generated\n */\n private readonly eventId: string;\n\n /**\n * Whether the current context as executed\n */\n private hasRun: boolean = false;\n\n /**\n * When this number is > 0, the current context will wait for all the actions to\n * be queued before kicking off execution.\n * This number is decremented for every action that is successful in current tier.\n */\n private expectedActionsInCurrentTier: number;\n\n /**\n * variable tracking the current number of actions that are in queue, context will wait for this to match the expected count\n */\n private currentActionsInQueue: number = 0;\n\n /**\n * Object to track the next tier number.\n */\n private nextTierCounter: { next: number } = { next: 0 };\n\n /**\n * When true will span a new independent action context when an action is executed resetting depth limits\n * Otherwise will invoke the action in the current context.\n */\n private spawnChildOnExecute: boolean = false;\n\n /**\n * @param currentExecutionTier: Current execution tier in the data fetch pipeline, max is currently 7\n * @param expectedActionCount: This value specifies the expected number of actions to be queued before\n * we kick off execution in the current tier\n */\n constructor(args: {\n id: string;\n requestContext: any;\n requestCache: ICache;\n appCache: ICache | null;\n currentExecutionTier?: number;\n expectedActionCount?: number;\n spawnChildOnExecute?: boolean;\n telemetry?: ITelemetry;\n }) {\n const {\n id,\n requestContext,\n requestCache,\n appCache,\n currentExecutionTier,\n expectedActionCount,\n spawnChildOnExecute,\n telemetry\n } = args;\n this.threadId = id;\n this.eventId = uuidv1();\n\n this.currentExecutionTier = currentExecutionTier || 0;\n if (this.currentExecutionTier === 0) {\n this.nextTierCounter = { next: 0 };\n }\n\n this.expectedActionsInCurrentTier = expectedActionCount || 0;\n this.requestCache = requestCache;\n this.requestContext = requestContext || {};\n this.spawnChildOnExecute = Boolean(spawnChildOnExecute);\n\n // If a telemetry object has been passed in use that telemetry object, otherwise create a new Telemetry object\n if (telemetry) {\n this.telemetry = telemetry;\n } else {\n // register default console logger\n const moduleTelemetry = new Telemetry();\n const isDebug = requestContext.params && requestContext.params.isDebug;\n\n // register tracelogger only in development environment or debug is true.\n (process.env.NODE_ENV === 'development' || isDebug) &&\n moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: isDebug } });\n\n this.telemetry = moduleTelemetry;\n }\n\n /**\n * @deprecated\n * Trace is an alias for telemetry.log(LogLevel.Trace, message)\n * Use the telemetry object directly.\n */\n this.trace = (message: string) => {\n this.telemetry.log(LogLevel.Debug, message);\n };\n\n // enable app cache only if the disable_app_cache feature switch is false\n if (requestContext.features && !!!requestContext.features.disable_app_cache) {\n this.appCache = appCache;\n }\n }\n\n public getRefreshActions(): IRefreshConfigs[] {\n return this.refreshConfigs;\n }\n\n /**\n * Chains an action method to the current context for execution\n * @param action - action method\n * @param inputs - action input\n */\n public chainAction(\n _action: IAction,\n inputs: IActionInput | IActionInput[],\n actionOption?: IDataActionOptions\n ): Promise {\n const action = ActionRegistrar.unwrapAction(_action);\n addLocaleInformation(inputs, this.requestContext.locale);\n if (!action || !inputs) {\n // Decrement the expected actions on this tier since this action was incorrectly configured\n this.expectedActionsInCurrentTier--;\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n return Promise.resolve(null);\n }\n\n if (!this.hasRun) {\n return this.runAllActionsInQueue().then(() => null);\n }\n\n return Promise.resolve(null);\n }\n\n if (this.isMaxDepthExceeded()) {\n this.debug('Max depth exceeded - not running further.');\n return Promise.resolve(null);\n }\n\n if (this.hasRun) {\n // If the parent action decides to queue another action after the current tier completes execution\n // then set the hasRun to false, so the action can fire right away\n this.hasRun = false;\n this.executionParams.length = 0;\n this.currentActionsInQueue = 0;\n }\n\n this.currentActionsInQueue++;\n const isBatched = action.prototype.isBatched;\n const inputsArray = (isBatched ? inputs : [inputs]);\n\n let current = this.executionParams.find(a => a.action === action);\n if (current && isBatched) {\n current.addInputs(inputsArray);\n } else {\n const inputIdentifier = `${inputsArray[0].getCacheObjectType()}||${inputsArray[0].getCacheKey()}`;\n if (!this.cacheKeyMap.find(key => key === inputIdentifier)) {\n current = new ActionExecutor(action, inputsArray, this.telemetry, actionOption);\n this.executionParams.push(current);\n this.cacheKeyMap.push(inputIdentifier);\n }\n }\n\n const asyncResult = new AsyncResult(async (resolve, reject) => {\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n // Hold the thread until the entire tier is populated\n await new Promise((innerResolve: Function) => {\n const onEventIdCompletion = (tierNum: number) => {\n if (tierNum === this.currentExecutionTier) {\n innerResolve();\n }\n };\n EventHelper.on<[number]>(`${this.eventId}:completed`, onEventIdCompletion);\n });\n EventHelper.removeAllListeners(`${this.eventId}:completed`);\n }\n\n if (!this.hasRun) {\n await this.runAllActionsInQueue();\n }\n\n const outputs = inputsArray.map(i => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n const entry = readCacheEntries(i, this.requestCache, appCacheData, false, this.requestContext, StaticTelemetry);\n return entry.entry;\n } catch (e) {\n this.debug(\n `Error execution action type '[${i && i.getCacheObjectType()}' and cache key '[{${i &&\n i.getCacheKey()}}]', returning null`\n );\n return null;\n }\n } else {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n const cacheItem = this.requestCache.get>(cacheKey);\n const cacheValue = !!cacheItem ? this.requestCache.getValue(cacheKey) : null;\n\n if (cacheItem && !!cacheItem.error) {\n throw cacheValue;\n } else {\n if (cacheItem && !msdyn365Commerce.isBrowser) {\n if (cacheItem.refreshStartTimeInMS) {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. last refresh time {lastRefresh}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata(cacheItem.refreshStartTimeInMS)\n ]\n }\n );\n }\n switch (cacheItem.s!) {\n case ICacheSource.AppCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('AppCache')\n ]\n }\n );\n break;\n }\n case ICacheSource.RequestCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('RequestCache')\n ]\n }\n );\n break;\n }\n default: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('Undefined')\n ]\n }\n );\n }\n }\n }\n return cacheValue;\n }\n }\n });\n\n this.cacheKeyMap.splice(0, this.cacheKeyMap.length);\n\n // Batched observable actions need to be merged into a single AsyncResult\n if (isBatched && action.prototype.isObservable) {\n resolve(\n Promise.all(outputs).then(results => {\n // Because AsyncResult sometimes get mangled by MobX, we need to ensure mangled ones are still unwrapped\n return results.map(result => {\n return result && result._type === 'AsyncResult' ? result.result : result;\n });\n })\n );\n } else {\n // We need to pass along the metadata explicitly to the outer AsyncResult\n if (isAsyncResult(outputs[0]) && !isBatched) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n outputs[0].then(() => {\n asyncResult.metadata = outputs[0].metadata;\n });\n }\n\n resolve(isBatched ? outputs : (outputs.length && outputs[0]) || null);\n }\n });\n\n return asyncResult;\n }\n\n /**\n * Helper method to update cache\n * @param input The input\n * @param data The data\n */\n public update(inputs: IActionInput | IActionInput[], data: T): T {\n if (inputs && data) {\n // If an array of actionInputs has been passed, an equal amount of data items must be present\n const dataArray = (Array.isArray(inputs) ? data : [data]);\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (inputArray.length !== dataArray.length) {\n throw new Error('Array of action inputs was passed to actionContext Update, and did not match length of input data array.');\n }\n addLocaleInformation(inputArray, this.requestContext.locale);\n inputArray.map((i, idx) => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n saveCacheEntries(i, dataArray[idx], this.requestCache, appCacheData, shouldWriteToAppCache(i, this.appCache));\n } catch (e) {\n this.debug(\n `Error in updating cache with input '[${i.getCacheObjectType()}]' - '[${i.getCacheKey()}]', returning null`\n );\n this.error(e);\n }\n } else {\n // When updating OPs, only result can be updated, passed OPs will also be unwrapped.\n if (isAsyncResult(dataArray[idx])) {\n dataArray[idx] = (>dataArray[idx]).result;\n }\n\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n this.requestCache.put(cacheKey, { item: dataArray[idx] });\n if (this.appCache && shouldWriteToAppCache(i, this.appCache)) {\n this.appCache.put(cacheKey, { item: dataArray[idx] });\n }\n }\n });\n\n if (Array.isArray(inputs)) {\n return (inputs.map(input => {\n return this.requestCache.getValue({ typeName: input.getCacheObjectType(), key: input.getCacheKey() });\n }));\n } else {\n return this.requestCache.getValue({ typeName: inputs.getCacheObjectType(), key: inputs.getCacheKey() });\n }\n }\n\n // For scenarios where data/input was bad, we just return original data\n return data;\n }\n\n /**\n * Helper method to log trace using telemetry\n * @param message message to log to console\n */\n public trace = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log error using telemetry\n * @param message message to log to console\n */\n public error = (message: string): void => {\n this.telemetry.log(LogLevel.Error, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log debug using telemetry\n * @param message message to log to console\n */\n public debug = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param cacheObjectType entity type that was cached\n * @param cacheKey cache key against which the object is cached\n * @throws if cacheObjecttype is null or empty\n */\n public get(cacheObjectType: string, cacheKey: string): T | T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n if (!cacheKey) {\n throw new Error('Cannot have null or empty cacheKey');\n }\n\n const preparedCacheKey = { typeName: cacheObjectType, key: cacheKey };\n let cachedItem = this.requestCache.get(preparedCacheKey);\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && !cachedItem && this.appCache) {\n cachedItem = this.appCache.get(preparedCacheKey);\n }\n\n if (!cachedItem) {\n return null;\n }\n\n if (typeof cachedItem.item !== 'object' || cachedItem.item.$ref !== true) {\n return cachedItem.item;\n }\n\n return Array.isArray(cachedItem.item.key) ? (cachedItem.item.key)\n .map(key => this.getItemFromCache({ typeName: cacheObjectType, key }))\n .filter(Boolean) : null;\n }\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param input The input\n * @param data The data\n * @throws if cacheObjecttype is null or empty\n */\n public getAll(cacheObjectType: string): T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n let cachedEntries = this.requestCache.getAllItems(cacheObjectType);\n if (!cachedEntries) {\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedEntries = this.appCache && this.appCache.getAllItems(cacheObjectType);\n }\n\n if (!cachedEntries) {\n return null;\n }\n }\n\n return Object.keys(cachedEntries)\n .filter(key => typeof cachedEntries![key].item !== 'object' || cachedEntries![key].item.$ref !== true)\n .map(key => cachedEntries![key].item);\n }\n\n /**\n * Executes all the actions in the current context in parallel\n */\n public async runAllActionsInQueue(): Promise {\n const { threadId, requestContext, requestCache, appCache, nextTierCounter, executionParams } = this;\n if (!executionParams.length) {\n this.trace('No actions to execute - not running further.');\n return;\n }\n // Increment the tier each pass through run all actions\n if (this.isMaxDepthExceeded()) {\n this.trace('Max depth exceeded - not running further.');\n return;\n }\n\n // When kicking off the next tier,\n // set the max number of chain actions the can be expected from child actions\n // equal to the number of actions that are executing in current tier\n const expectedNumberOfChildThreads = executionParams.length;\n\n let nextTierStartingDepth;\n if (this.spawnChildOnExecute) {\n nextTierStartingDepth = nextTierCounter.next + 1;\n } else {\n nextTierStartingDepth = ++nextTierCounter.next;\n }\n\n const nextTier = new ActionContext({\n id: threadId,\n requestContext: requestContext,\n requestCache: requestCache,\n appCache: appCache,\n currentExecutionTier: nextTierStartingDepth,\n expectedActionCount: expectedNumberOfChildThreads,\n telemetry: this.telemetry\n });\n\n const refreshconfigslocal: Set = new Set();\n\n nextTier.nextTierCounter = { next: nextTierStartingDepth };\n // DO NOT Trace using current action context, use only secondaryContext to remain consistent with actions\n const promises: Promise[] = executionParams.map(param => {\n // TODO: should we read from input about the cacheability?\n return param.execute(nextTier, requestCache, appCache, shouldByPassCache(this.requestContext), []).then(refreshActions => {\n // refresh the data actions which need to be refreshed.\n if (refreshActions.length) {\n refreshconfigslocal.add({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n this.refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n const cacheValue = requestCache.get(REFRESH_ACTIONS_CACHE_KEY);\n const refreshConfigs = cacheValue ? cacheValue.item : [];\n refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n requestCache.put(REFRESH_ACTIONS_CACHE_KEY, {\n item: refreshConfigs\n });\n }\n\n // If the current chain action completes execution\n // decrement the max number of threads that we expect\n // from the next tier\n nextTier.expectedActionsInCurrentTier--;\n\n if (!nextTier.hasRun) {\n // First check if the next tier has any actions\n // then check if the number of thread match expected\n if (nextTier.currentActionsInQueue > 0 && nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier) {\n return nextTier.runAllActionsInQueue();\n }\n }\n });\n });\n\n // Wait until all the actions in current tier are run to completion\n return Promise.all(promises)\n .then(() => {\n if (refreshconfigslocal.size > 0 && requestContext.features && !!requestContext.features.disable_appcache_refresh_await) {\n refreshconfigslocal.forEach(rf => {\n const refreshRequestCache = new RequestCache();\n const refreshContext = new ActionContext({\n id: 'Refresh Context',\n requestContext: requestContext,\n requestCache: new RequestCache(),\n telemetry: this.telemetry,\n appCache: appCache,\n spawnChildOnExecute: true\n });\n\n rf.paramExecutor\n .execute(\n refreshContext,\n refreshRequestCache,\n this.appCache,\n shouldByPassCache(this.requestContext),\n rf.actionInputs\n )\n .then(() =>\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n `BackgroundRefresh - Executed refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n )\n )\n .catch(error => {\n StaticTelemetry.log(\n LogLevel.Warning,\n `BackgroundRefresh - Error execution refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n );\n });\n });\n }\n this._endCurrentTier();\n })\n .catch(error => {\n this._endCurrentTier();\n throw error;\n });\n }\n\n /**\n * Returns true if current tier has exceeded max depth\n */\n private isMaxDepthExceeded = (): boolean => {\n const maxDepth =\n (this.requestContext &&\n this.requestContext.app &&\n this.requestContext.app.platform &&\n this.requestContext.app.platform.maxDepth) ||\n ActionContext.maxDepth;\n return this.nextTierCounter.next > maxDepth;\n };\n\n /**\n * Retrieves item from request cache and fallsback to app cache if not found\n */\n private getItemFromCache = (cacheKey: ICacheKey): T | undefined => {\n let cachedItem = this.requestCache.get(cacheKey);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedItem = this.appCache.get(cacheKey);\n }\n\n return cachedItem ? cachedItem.item : undefined;\n };\n\n /**\n * Signals the end of current tier so actions can return the response\n */\n private _endCurrentTier = (): void => {\n this.hasRun = true;\n EventHelper.emit(`${this.eventId}:completed`, this.currentExecutionTier);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RequestCache } from '@msdyn365-commerce/cache-internal';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ActionContext } from './action-context';\n\n/**\n * Creates a mock but usable ActionContext.\n * @param context The partial context to add to the return action context.\n *\n * DEPRECATED: Please use buildMockActionContext and pass in a constructed\n * ActionContext to build a hydrated mock action context\n * Example:\n * const actionContext = buildMockActionContext(new ActionContext({\n * id: 'mock-context',\n * requestCache: new RequestCache(),\n * requestContext: {},\n * appCache: null\n * }));\n *\n */\nexport const buildHydratedMockActionContext = (context?: Partial): IActionContext => {\n return new ActionContext({\n id: 'mock-context',\n requestCache: new RequestCache(),\n requestContext: (context && context.requestContext) || {},\n appCache: null\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\nimport { getMediaLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * The action input class for the getMediaLocationsForSelectedVariant data action.\n */\nexport class MediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}`;\n\n public getCacheObjectType = () => 'ProductMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getMediaLocationsForProductAction(input: MediaLocationsInput, ctx: IActionContext): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelMediaFeatureVersion = versionGte(rsVersion, '9.43');\n if (!OmniChannelMediaFeatureVersion) {\n return [];\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await getMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n input.productId,\n input.channelId,\n input.catalogId\n );\n } catch (error) {\n ctx.telemetry.error(`Error running getMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Filtering product images and videos only\n let productImagesAndVideos = productMediaLocations.filter(\n // @ts-ignore\n media => media.MediaTypeValue === types.MediaType.Image || media.MediaTypeValue === types.MediaType.Video\n );\n if (productImagesAndVideos.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n productImagesAndVideos = productImagesAndVideos.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = productImagesAndVideos.map((mediaLocation: MediaLocation) => {\n const mediaLoc = { ...mediaLocation };\n // @ts-ignore\n if (mediaLoc.MediaTypeValue === types.MediaType.Image) {\n mediaLoc.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n }\n return mediaLoc;\n });\n\n return productMedia;\n}\n\n/**\n * The getMediaLocationsForSelectedVariant data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-mediaLocations',\n action: >getMediaLocationsForProductAction\n});\n\nexport default getMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nexport enum MediaLocationType {\n All,\n Image,\n Video,\n File\n}\n\n/**\n * The action input class for the getAdditionalMediaLocationsForSelectedVariant data action.\n */\nexport class AdditionalMediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n // defaulting to image for backwards compatibility, old version filters Image by default.\n public typeFilter: MediaLocationType;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number, typeFilter = MediaLocationType.All) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.typeFilter = typeFilter;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}-${this.typeFilter}`;\n\n public getCacheObjectType = () => 'ProductAdditionalMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getAdditionalMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getAdditionalMediaLocationsForProductAction(\n input: AdditionalMediaLocationsInput,\n ctx: IActionContext\n): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelAdditionalMediaFeatureVersion = versionGte(rsVersion, '9.46');\n if (!OmniChannelAdditionalMediaFeatureVersion) {\n return [];\n }\n // the types and productActions are not available in all versions of retail-proxy, so they are imported by direct reference after comparing the version to the minimum required(9.46)\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const productActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await productActions.searchMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n {\n ProductId: input.productId,\n ChannelId: input.channelId,\n CatalogId: input.catalogId,\n MediaUsageTypeValue: 1\n }\n );\n } catch (error) {\n ctx.telemetry.error(`Error running searchMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Need to add a second enum for MediaTypeValue because the RetailServer API returns a different enum for the MediaTypeValue property,\n // where default is \"None\" instead of \"All\"\n let filteredMedia: MediaLocation[] = [];\n switch (input.typeFilter) {\n case MediaLocationType.Image:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Image);\n break;\n case MediaLocationType.Video:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Video);\n break;\n case MediaLocationType.File:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.File);\n break;\n default:\n filteredMedia = productMediaLocations;\n }\n if (filteredMedia.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n filteredMedia = filteredMedia.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = filteredMedia.map((mediaLocation: MediaLocation) => {\n mediaLocation.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n mediaLocation.AltText = mediaLocation.AltText;\n return mediaLocation;\n });\n return productMedia;\n}\n\n/**\n * The getAdditionalMediaLocationsForSelectedVariantActionDataAction data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getAdditionalMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-additional-mediaLocations',\n action: >getAdditionalMediaLocationsForProductAction\n});\n\nexport default getAdditionalMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core-internal';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetCustomerInput implements IActionInput {\n public customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly cacheType?: CacheType;\n\n public constructor(apiSettings: ICommerceApiSettings, accountNumber?: string, cacheType?: CacheType) {\n this.customerAccountNumber = accountNumber;\n this.apiSettings = apiSettings;\n this.cacheType = cacheType;\n }\n\n /**\n * GetCacheKey.\n * @returns - Returns string.\n */\n public getCacheKey = (): string => `Customer-${this.customerAccountNumber}-chanId:${this.apiSettings.channelId}`;\n\n /**\n * GetCacheObjectType.\n * @returns - Cache Object Type string.\n */\n public getCacheObjectType = (): string => 'Customer';\n\n /**\n * DataCacheType.\n * @returns - CacheType string.\n */\n public dataCacheType = (): CacheType => {\n return this.cacheType ? this.cacheType : 'request';\n };\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - GetCustomer input.\n */\nexport const createGetCustomerInput = (inputData: ICreateActionContext>): GetCustomerInput => {\n const { user, apiSettings } = inputData.requestContext;\n if (!user.token || !user.isAuthenticated) {\n throw new Error('[getCustomer][createInput]: User is not Authenticated.');\n }\n\n return new GetCustomerInput(apiSettings);\n};\n\n/**\n * GetCustomerAction.\n * @param input - GetCustomerInput.\n * @param ctx - Action Context.\n * @returns - Customer information.\n */\nconst getCustomerAction = async (input: GetCustomerInput, ctx: IActionContext): Promise => {\n if (input && ctx.requestContext.user.isAuthenticated) {\n try {\n return readAsync({ callerContext: ctx, bypassCache: 'get' }, '').then(response => {\n return Array.isArray(response) ? response[0] : response;\n });\n } catch (error) {\n ctx.telemetry.error(`Error running getCustomer action: ${error}`);\n return {};\n }\n }\n\n ctx.telemetry.warning('[getCustomer]Invalid input passed to action');\n return {};\n};\n\n/**\n * The customer data action.\n */\nexport const getCustomerActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-customer',\n action: >getCustomerAction,\n input: createGetCustomerInput\n});\n\nexport default getCustomerActionDataAction;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { Cart } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ICartActionResultWithCart } from './cart-action-result';\n\nexport default async function updateLoyaltyCardId(\n cart: Readonly,\n newLoyaltyCardId: string,\n actionContext: IActionContext\n): Promise {\n if (!cart) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n return updateAsync(\n { callerContext: actionContext },\n {\n Id: cart.Id,\n LoyaltyCardId: newLoyaltyCardId\n }\n )\n .then(newCart => {\n return { cart: newCart, status: 'SUCCESS' };\n })\n .catch(error => {\n actionContext.telemetry.warning(error);\n actionContext.telemetry.debug('Unable to update loyalty card id');\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\n });\n}\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\n\nimport { OrderTemplate } from '../utilities/order-templates';\nimport { QueryResultSettingsProxy } from '../utilities/QueryResultSettingsProxy';\nimport getFullOrderTemplates, { GetFullOrderTemplatesInput } from './get-full-order-templates';\n\n/**\n * Input class for the GetOrderTemplates data action.\n */\nexport class GetOrderTemplatesPreviewInput implements IActionInput {\n public queryResultSettings: IQueryResultSettings;\n\n constructor(queryResultSettings: IQueryResultSettings) {\n this.queryResultSettings = queryResultSettings;\n this.queryResultSettings.count = true;\n this.queryResultSettings.Paging!.Top = 4;\n }\n\n public getCacheKey = () => 'GetOrderTemplatesPreview';\n\n public getCacheObjectType = () => 'GetOrderTemplatesPreview';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the GetOrderTemplate method.\n * @param inputData The input data passed to the createInput method.\n */\nexport const createGetOrderTemplatesPreviewInput = (inputData: ICreateActionContext): GetOrderTemplatesPreviewInput => {\n const queryResultSettings: IQueryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n return new GetOrderTemplatesPreviewInput(queryResultSettings);\n};\n\n/**\n * The action method for the GetOrderTemplatesPreview data action.\n * @param input The action input.\n * @param context The action context.\n */\nexport async function getOrderTemplatesPreview(input: GetOrderTemplatesPreviewInput, context: IActionContext): Promise {\n const response: OrderTemplate[] = [];\n if (!context.requestContext.user.isAuthenticated) {\n context.trace('Unable to get order templates preview. User is not authenticated.');\n return Promise.resolve(response);\n }\n return getFullOrderTemplates(new GetFullOrderTemplatesInput(input.queryResultSettings, false, false), context);\n}\n\n/**\n * The GetOrderTemplatesPreview Data Action\n * Returns order templates.\n */\nexport const getOrderTemplatesPreviewDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/get-order-templates-preview',\n action: >getOrderTemplatesPreview,\n input: createGetOrderTemplatesPreviewInput\n});\n\nexport default getOrderTemplatesPreviewDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ChannelDeliveryOptionConfiguration } from '@msdyn365-commerce/retail-proxy';\nimport { getChannelDeliveryOptionConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\n\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for get channel delivery option configuration data action.\n */\nexport class GetChannelDeliveryConfigurationInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings, accountNumber?: string) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('ChannelDeliveryConfiguration', this.apiSettings);\n\n public getCacheObjectType = () => 'ChannelDeliveryConfiguration';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): GetChannelDeliveryConfigurationInput => {\n const { apiSettings } = inputData.requestContext;\n if (!apiSettings) {\n throw new Error('[getChannelDeliveryOptionConfiguration][createInput]: API setting not available.');\n }\n\n return new GetChannelDeliveryConfigurationInput(apiSettings);\n};\n\nconst getChannelDeliveryOptionConfigurationAction = async (\n input: GetChannelDeliveryConfigurationInput,\n ctx: IActionContext\n): Promise => {\n if (input) {\n return getChannelDeliveryOptionConfigurationAsync({ callerContext: ctx }).then(response => {\n return response;\n });\n }\n\n ctx.trace('[get-channel-delivery-option-configuration]Invalid input passed to action');\n return {};\n};\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-channel-delivery-option-configuration',\n action: >getChannelDeliveryOptionConfigurationAction,\n input: createInput\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport interface ITTLCacheOptions {\n removalThresholdInMs?: number;\n intervalForRemovalInMs?: number;\n}\n\nexport type TOnRemoveCallback = (removedKey: string) => void;\n/**\n * Cache with TTL and polling to remove items from it, default implementaiton is to only poll on server\n */\nexport class TTLCache {\n // threshold for removal, 5mins\n public readonly removalThresholdInMs: number;\n\n // frequency of cleaning, 2mins -- this is the period it'll look for keys older than removalThresholdInMs\n public readonly intervalForRemovalInMs: number;\n\n // internal cache\n private _cache: Map;\n\n constructor(options?: ITTLCacheOptions) {\n this.removalThresholdInMs = (options && options.removalThresholdInMs) || 300000;\n this.intervalForRemovalInMs = (options && options.intervalForRemovalInMs) || 120000;\n this._cache = new Map();\n\n if (process.env.CURRENT_ENVIRONMENT === 'node') {\n // interval trigger to clear the map -- only on server\n setInterval(() => this._cleanCache(), this.intervalForRemovalInMs);\n }\n }\n\n /**\n * Gets a value from cache\n *\n * @param {string} key the key\n * @returns {(TValue | undefined)} the value, if it exists\n */\n public get(key: string): TValue | undefined {\n const value = this._cache.get(key);\n if (value) {\n return value[0];\n }\n }\n\n /**\n * Set a value\n *\n * @param {string} key the key\n * @param {TValue} value the value\n */\n public set(key: string, value: TValue, onRemoveCallback?: TOnRemoveCallback): void {\n const now = Date.now();\n this._cache.set(key, [value, now, onRemoveCallback]);\n }\n\n public clear(): void {\n this._cache.clear();\n }\n\n // cleans up the map implementation\n private _cleanCache(): void {\n const now = Date.now();\n const keys = this._cache.keys();\n for (const key of keys) {\n const value = this._cache.get(key);\n if (value && value.length > 1 && now - value[1] > this.removalThresholdInMs) {\n this._cache.delete(key);\n if (typeof value[2] === 'function') {\n value[2](key);\n }\n }\n }\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { TTLCache } from './ttl-cache';\n\nexport interface IRequestVectorizerOptions {\n removalThresholdInMs?: number;\n intervalForRemovalInMs?: number;\n}\n\n/**\n * Class which handles vectorizing requests\n */\nclass RequestVectorizer {\n // differentiate vectors generated client/server side\n public static SEP: string = process.env.CURRENT_ENVIRONMENT === 'node' ? '.' : '/';\n private _cache: TTLCache;\n\n constructor(options?: IRequestVectorizerOptions) {\n this._cache = new TTLCache(options);\n // binds\n this.next = this.next.bind(this);\n }\n\n /**\n * The next request in the sequence\n *\n * @param {string} requestId\n * @returns {string} the next vectorized request\n */\n public next(requestId: string): string {\n const value = this._cache.get(requestId);\n const nextValue = value === undefined ? 0 : value + 1;\n this._cache.set(requestId, nextValue);\n return `${requestId}${RequestVectorizer.SEP}${nextValue}`;\n }\n}\nconst RequestVectorizerInstance = new RequestVectorizer();\nexport { RequestVectorizerInstance, RequestVectorizer };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IEventRetailServerRequestProperties, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { isEmpty as _isEmpty } from 'lodash';\nimport url from 'url';\nimport { TelemetryClient } from 'applicationinsights';\nimport { RequestVectorizerInstance } from './request-vectorizer';\nimport { TTLCache } from './ttl-cache';\n\n/**\n * Regular expression to match content inside round braces\n */\nconst regexGetRoundBraces = /\\(.+?\\)/gm;\n\n/**\n * Default client error\n */\nconst DEFAULT_ERROR_STATUS_CODE = 418;\n\n/**\n * Formats commerce URL parts used in retail server calls with odata formatting\n *\n * @param inputString The input string to replace\n * @param replaceString The replacement value, default of `(~)`.\n */\nexport const replaceIdentifiers = (inputString: string | undefined, replaceString?: string) => {\n return (inputString || '').replace(regexGetRoundBraces, replaceString || `(~)`);\n};\n\n/**\n * Helper mapping lowercase keys to real keys in an object. Note this returns the keys only, mapping\n * lower case key to the actual cased key name in the dictionary\n *\n * e.g.\n *\n * HelloWorld will be returned as 'helloworld' allowing you to look up 'helloworld' to get HelloWorld to index into the real dictionary\n * @param objectDictionary the object dictionary\n */\nexport const toLowerCaseDict = (objectDictionary): { [lowerCaseKeyName: string]: string } => {\n return Object.keys(objectDictionary || {}).reduce(\n (prevValue, current) => ({ ...prevValue, [current.toLocaleLowerCase()]: current }),\n {}\n );\n};\n\nconst ttlRequestCache = new TTLCache();\n\n/**\n * Error retail se interceptor for axios\n *\n * @param config The request cofiguration\n * @param status The response status code\n * @param requestCache The optional request cache to use (mostly for testing)\n */\n\nexport const RSErrorResponseHandler = (\n config: AxiosRequestConfig,\n status: number,\n requestCache?: TTLCache\n) => {\n if (!requestCache) {\n requestCache = ttlRequestCache;\n }\n const headers = config && config.headers;\n let requestId;\n let activityId;\n if (headers) {\n const lowercaseHeaders = toLowerCaseDict(headers);\n requestId = lowercaseHeaders.requestid && headers[lowercaseHeaders.requestid];\n activityId = lowercaseHeaders.activityid && headers[lowercaseHeaders.activityid];\n }\n const statusCode = status ? status : DEFAULT_ERROR_STATUS_CODE;\n const properties = requestCache.get(requestId);\n if (properties) {\n const elapsedTime = StaticTelemetry.stopTimer(requestId);\n const parsedUrl = url.parse((config && (config.url || config.baseURL)) || '');\n StaticTelemetry.trackDependency({\n duration: elapsedTime,\n method: (properties.m || 'unknown').toUpperCase(),\n name: properties.e,\n resultCode: statusCode,\n success: status < 400,\n url: parsedUrl,\n target: parsedUrl.hostname,\n properties: {\n requestId,\n activityId,\n empty: false\n },\n dependencyName: 'RetailServer'\n });\n }\n};\n\n/**\n * Response interceptor for axios\n *\n * @param response The resposne\n * @param requestCache The optional request cache to use (mostly for testing)\n */\nexport const RSResponseInterceptor = (response: AxiosResponse, requestCache?: TTLCache) => {\n if (!requestCache) {\n requestCache = ttlRequestCache;\n }\n // try get properties from request based on requestid header\n let requestId;\n let activityId;\n if (process.env.CURRENT_ENVIRONMENT !== 'node') {\n // on web we need to check config\n const headers = response && response.config && response.config.headers;\n if (headers) {\n const lowercaseHeaders = toLowerCaseDict(headers);\n requestId = lowercaseHeaders.requestid && headers[lowercaseHeaders.requestid];\n activityId = lowercaseHeaders.activityid && headers[lowercaseHeaders.activityid];\n }\n } else {\n requestId = response && response.headers && response.headers.requestid;\n activityId = response && response.headers && response.headers.activityid;\n }\n const properties = requestCache.get(requestId);\n if (properties) {\n const elapsedTime = StaticTelemetry.stopTimer(requestId);\n const { config, status, request } = response;\n const parsedUrl = url.parse((config && (config.url || config.baseURL)) || '');\n StaticTelemetry.trackDependency({\n duration: elapsedTime,\n method: (properties.m || (request && request.method) || 'unknown').toUpperCase(),\n name: properties.e,\n resultCode: status,\n success: status < 400,\n url: parsedUrl,\n target: parsedUrl.hostname,\n properties: {\n requestId,\n activityId,\n empty: _isEmpty(response.data),\n ...(properties.ahs && { authTokenSize: properties.ahs })\n },\n dependencyName: 'RetailServer'\n });\n }\n\n return response;\n};\n\n/**\n * Captures outgoing calls to retail server\n */\nexport const RSRequestInterceptor = (request: AxiosRequestConfig) => {\n if (!request || !request.headers) {\n return request;\n }\n const requestHeaders = request.headers;\n const caseInsensitiveHeaderMap = toLowerCaseDict(requestHeaders);\n\n // check if it's an outgoing request to retail server\n\n if (caseInsensitiveHeaderMap.oun && request.url) {\n // get the API endpoint\n const parsedUrl = url.parse(request.url, false);\n const apiEndPoint = replaceIdentifiers(parsedUrl.pathname);\n\n // associate with the request-id vector\n const requestIdVector = requestHeaders[caseInsensitiveHeaderMap['request-id']] || '';\n\n const authorizationHeader: string = (requestHeaders[caseInsensitiveHeaderMap['authorization']] || '').toString();\n let authorizationHeaderLength = 0;\n\n if (authorizationHeader && authorizationHeader.toLowerCase().indexOf('bearer') > -1) {\n const authArray = authorizationHeader.split(' ');\n if (authArray.length > 1) {\n authorizationHeaderLength = authArray[1].length;\n }\n }\n\n // associate with the requestid (non-vectored)\n const caseInsensitiveRequestIdHeaderName = caseInsensitiveHeaderMap.requestid || 'requestid';\n const currentRequestId = requestHeaders[caseInsensitiveRequestIdHeaderName] || 'undefined';\n const requestId = RequestVectorizerInstance.next(currentRequestId.toString());\n\n StaticTelemetry.startTimer(requestId);\n\n const properties: IEventRetailServerRequestProperties = {\n // method\n m: request.method!,\n // endpoint\n e: apiEndPoint,\n // request vector\n rv: requestIdVector.toString(),\n // request id\n r: requestId\n };\n\n if (authorizationHeader) {\n // Authorization header size\n properties.ahs = authorizationHeaderLength.toString();\n }\n\n // add to cache\n ttlRequestCache.set(requestId, properties, () => {\n StaticTelemetry.stopTimer(requestId);\n });\n\n request.headers[caseInsensitiveRequestIdHeaderName] = requestId;\n }\n\n return request;\n};\n\nexport const RSRequestInterceptorErrorHandler = (error: AxiosError) => {\n if (error.request) {\n RSRequestInterceptor(error.request);\n }\n\n throw error;\n};\n\nexport const RSResponseInterceptorErrorHandler = (error: AxiosError) => {\n if (error.response) {\n RSResponseInterceptor(error.response);\n } else if (error.config) {\n RSErrorResponseHandler(error.config, DEFAULT_ERROR_STATUS_CODE);\n }\n\n throw error;\n};\nexport const DataBaseType = {\n RequestData: 'RequestData',\n RemoteDependencyData: 'RemoteDependencyData',\n ExceptionData: 'ExceptionData'\n};\n\nexport const copyEventsToSecondaryInstance = (secondaryTelemetryInstance: TelemetryClient) => (envelope, context) => {\n const { data } = envelope;\n if (data.baseType === DataBaseType.RequestData) {\n secondaryTelemetryInstance.trackRequest({\n name: data.baseData.name,\n url: data.baseData.url,\n source: data.baseData.source,\n duration: data.baseData.duration,\n resultCode: data.baseData.duration,\n success: data.baseData.success\n });\n }\n if (data.baseType === DataBaseType.RemoteDependencyData) {\n secondaryTelemetryInstance.trackDependency({\n dependencyTypeName: data.baseData.dependencyTypeName,\n target: data.baseData.target,\n name: data.baseData.name,\n data: data.baseData.data,\n duration: data.baseData.duration,\n resultCode: data.baseData.resultCode,\n success: data.baseData.success\n });\n }\n if (data.baseType === DataBaseType.ExceptionData) {\n secondaryTelemetryInstance.trackException({\n exception: JSON.parse(JSON.stringify(data.baseData)).exceptions[0]\n });\n }\n return true;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport msdyn365Commerce, {\n getFriendlyName,\n getParameterizeFeatureFlagsWithRequestContext,\n IAction,\n IActionContext,\n IParameterizeFeatureFlags,\n parameterize,\n checkVersionForFeature,\n getCatalogIdForSdk\n} from '@msdyn365-commerce/core-internal';\nimport { getCategoriesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CategoriesDataActions.g';\nimport { getByIdAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { Category, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { CategoryLinkInput, IPageTypeContext, ProductLinkInput } from '../hydrator-action-inputs';\n\ntype CategoryWithNeutralizedName = Category & { NeutralizedName?: string };\n/**\n * Computes a root category's SLUG\n *\n * @param rootCategory The category for which you want to determine the slug\n * @param ctx Action context\n */\nexport const getCategorySlug = (\n rootCategory: CategoryWithNeutralizedName,\n categories: CategoryWithNeutralizedName[],\n parameterizeFeatureFlags?: IParameterizeFeatureFlags,\n context?: IActionContext\n): string => {\n let slug: string = parameterize(rootCategory.Name, undefined, parameterizeFeatureFlags, rootCategory.NeutralizedName);\n let currentCategory: Category = rootCategory;\n while (currentCategory.ParentCategory) {\n const parentId = currentCategory.ParentCategory;\n const parentCategory: CategoryWithNeutralizedName | undefined = categories.find((category: Category) => {\n if (category.RecordId) {\n return category.RecordId === parentId;\n }\n return false;\n });\n if (!parentCategory) {\n break;\n }\n\n let parentCategoryWithLocalizedName = parentCategory;\n if (context && isUrlLocalizationEnabled(parameterizeFeatureFlags)) {\n const localName = getFriendlyName(context.requestContext.locale, parentCategory.NameTranslations);\n parentCategoryWithLocalizedName = { ...parentCategory };\n parentCategoryWithLocalizedName.NeutralizedName = parentCategory.Name;\n parentCategoryWithLocalizedName.Name = localName || parentCategoryWithLocalizedName.NeutralizedName;\n }\n\n slug = `${parameterize(\n parentCategoryWithLocalizedName.Name,\n undefined,\n parameterizeFeatureFlags,\n parentCategoryWithLocalizedName.NeutralizedName\n )}/${slug}`;\n currentCategory = parentCategoryWithLocalizedName;\n }\n return slug.length > 0 ? `/${slug}` : '';\n};\n\nconst isUrlLocalizationEnabled = (parameterizeFeatureFlags?: IParameterizeFeatureFlags) => {\n return (\n (msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.enableUrlLocalization) ||\n (parameterizeFeatureFlags && parameterizeFeatureFlags.enableUrlLocalization)\n );\n};\n\n/**\n * Returns an object containing information used to by the URL builder to build\n * the formatted product or category URL\n * =\n * @param input Action input\n * @param context Action context\n */\nconst getPageTypeContextById = async (input: ProductLinkInput | CategoryLinkInput, context: IActionContext): Promise => {\n // If product ID exits get the product details for that product\n const pageTypeContext: IPageTypeContext = {};\n if (input instanceof ProductLinkInput && input.productId) {\n try {\n const product: SimpleProduct = await getByIdAsync({ callerContext: context }, input.productId, input.channelId);\n if (!(product && product.Name)) {\n throw new Error(`Unable to retrieve product details for product id: ${input.productId}`);\n }\n pageTypeContext.product = { Name: product.Name || '', RecordId: product.RecordId };\n } catch (err) {\n context.telemetry.error(err);\n throw new Error(`Unable run getById action. Error: ${err}`);\n }\n }\n const catalogFeature = checkVersionForFeature('catalogFeature');\n const catalogid = (catalogFeature && getCatalogIdForSdk(context.requestContext, 0)) || undefined;\n\n // Get the category details for the passed category id\n // @ts-ignore old retail proxy contract does not have catalogid.\n return getCategoriesAsync({ callerContext: context }, input.channelId, catalogid)\n .then((categories: Category[]) => {\n // Find the category by id from the list of returned categories\n const rootCategory: Category | undefined = categories.find((category: Category) => {\n if (category.RecordId) {\n return category.RecordId === input.categoryId;\n }\n return false;\n });\n if (!rootCategory) {\n throw new Error(`Unable to retrieve category details for category id: ${input.categoryId}`);\n }\n const localName = getFriendlyName(context.requestContext.locale, rootCategory.NameTranslations);\n const rootCategoryWithNeutralizedName = { ...rootCategory };\n rootCategoryWithNeutralizedName.NeutralizedName = rootCategory.Name;\n rootCategoryWithNeutralizedName.Name = localName || rootCategoryWithNeutralizedName.NeutralizedName;\n // Compute the found category's slug\n const parameterizeFeatureFlags: IParameterizeFeatureFlags = getParameterizeFeatureFlagsWithRequestContext(\n context.requestContext\n );\n const slug = getCategorySlug(rootCategoryWithNeutralizedName, categories, parameterizeFeatureFlags, context);\n pageTypeContext.category = { Slug: slug, RecordId: rootCategoryWithNeutralizedName.RecordId };\n return Promise.resolve(pageTypeContext);\n })\n .catch(err => {\n // In the event of an error return just the category id\n context.telemetry.error(err);\n throw new Error(`Unable to run getCategories action. Error: ${err}`);\n });\n};\n\nexport const getPageTypeContextByIdAction = createObservableDataAction({\n action: >getPageTypeContextById\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IModuleContract } from '@msdyn365-commerce/core-internal';\nimport { PROCESS_TYPE } from '../consts';\nimport { IProductListMetaData, IServerLink } from './hydrator-action-inputs';\nimport { hydrateLink } from './link-hydrator';\nimport { hydrateProductList } from './product-list-hydrator';\n\nconst TYPE_KEY = 'type';\nconst LIST_TYPE_KEY = 'listType';\n\n/**\n * Recusrively traverses a module's config properties to find link/list types to transform\n *\n * @param obj The current object\n * @param context The current action context\n */\nconst searchForComplexType = (\n obj: unknown,\n context: IActionContext,\n moduleId?: string,\n propertyToMapInConfig?: string\n): Promise[] => {\n const promisesArray: Promise[] = [];\n if (!obj) {\n return promisesArray;\n }\n if (Array.isArray(obj)) {\n for (let i = 0; i < obj.length; i++) {\n promisesArray.push(...searchForComplexType(obj[i], context, moduleId, propertyToMapInConfig));\n }\n } else if (typeof obj === 'object' && obj) {\n const children = Object.keys(obj);\n\n // Link scenario ('type' is defined)\n if (obj[TYPE_KEY]) {\n promisesArray.push(hydrateLink(obj, context));\n // ProductList scenario ('list_type') is defined\n } else if (obj[LIST_TYPE_KEY]) {\n promisesArray.push(hydrateProductList(obj, context, moduleId, propertyToMapInConfig));\n } else if (children.length > 0) {\n for (let i = 0; i < children.length; i++) {\n promisesArray.push(...searchForComplexType(obj[children[i]], context, moduleId, children[i]));\n }\n }\n }\n\n return promisesArray;\n};\n\n/**\n * Entry point, processes a page response and looks for link and list types\n * to transform\n *\n * @param pageResponse The inital page response\n * @param context The current action context\n */\nexport const processComplexDataTypes = async (\n lazyloadAllDataActions: boolean,\n processType: string,\n pageSlots: IModuleContract[],\n context: IActionContext\n) => {\n const promisesArray = processComplexDataTypesAsync(lazyloadAllDataActions, processType, pageSlots, context);\n if (promisesArray) {\n await Promise.all(promisesArray);\n }\n};\n\nexport const processComplexDataTypesAsync = (\n lazyLoadAllDataActions: boolean,\n processType: string,\n pageSlots: IModuleContract[],\n context: IActionContext\n) => {\n if (pageSlots && pageSlots.length) {\n const promisesArray: Promise[] = [];\n let lazyLoadAllModuleQueryString; // Query string switch to lazyLoad all modules\n const requestContext = context.requestContext;\n const requestContextFeatures = requestContext.features;\n const clientRenderModules = 'clientRender_modules';\n const clientRenderAllModuleQueryString = 'client_render_all_modules';\n\n // Feature switch for lazyLoading render and data action currenlty for product collection module\n let lazyLoadModuleFeature = requestContextFeatures[clientRenderModules];\n\n // Query param to lazyLoad all modules\n if (requestContext.query && requestContext.query.clientRenderAllModuleQueryString) {\n lazyLoadAllModuleQueryString = requestContext.query[clientRenderAllModuleQueryString];\n }\n\n // If request is coming from the editor then, turn off all lazyloading feature\n if (requestContext.params && requestContext.params.isEditor && requestContext.params.isEditor === true) {\n lazyLoadModuleFeature = false;\n lazyLoadAllModuleQueryString = 'false';\n lazyLoadAllDataActions = false;\n }\n\n for (let i = 0; i < pageSlots.length; i++) {\n const currModule = pageSlots[i];\n const currModuleConfig = currModule.config;\n let clientRenderConfigSwitch; // Module config switch for lazyLoading render and data action for product collection module\n\n if (typeof currModuleConfig === 'object' && currModuleConfig) {\n lazyLoadAllModuleQueryString === 'true' ? (currModuleConfig[`clientRender`] = true) : clientRenderConfigSwitch;\n if (currModuleConfig.hasOwnProperty('clientRender')) {\n // When the lazyLoading feature switch is false, turn the lazyloading config switch to false\n if (lazyLoadModuleFeature === false) {\n currModuleConfig[`clientRender`] = false;\n }\n clientRenderConfigSwitch = currModuleConfig[`clientRender`];\n }\n }\n\n if ((lazyLoadAllDataActions || clientRenderConfigSwitch) && processType === PROCESS_TYPE.client) {\n // When lazyLoad_all feature switch is true or lazyload Module config switch is true and processComplexDataType call is from client, do hydration\n promisesArray.push(...searchForComplexType(currModuleConfig, context, currModule.id));\n } else if (!lazyLoadAllDataActions && !clientRenderConfigSwitch && processType === PROCESS_TYPE.server) {\n // When lazyLoad_all feature switch is OFF, lazyload Module config switch is OFF and processComplexDataType call is from server, do hydration\n promisesArray.push(...searchForComplexType(currModuleConfig, context, currModule.id));\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n context.runAllActionsInQueue();\n return promisesArray;\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { appendQueryParams, getCatalogIdForSdk, getUrlSync, IActionContext } from '@msdyn365-commerce/core-internal';\nimport { EXCEPTION_LINK_ACTION } from '@msdyn365-commerce/telemetry-internal';\nimport { CategoryLinkInput, IPageTypeContext, IServerLink, ProductLinkInput } from './hydrator-action-inputs';\nimport { getPageTypeContextByIdAction } from './link-actions/page-type-context-by-id';\n\n/**\n * Takes a Link object from the Page Response and uses URL Builder to construct a destination url and transform the\n * existing link structure to expose two porperties type and destinationUrl\n *\n * @param linkObject The current link object being modified\n * @param context The current action context\n */\nexport const hydrateLink = async (linkObject: IServerLink, context: IActionContext) => {\n let destinationUrl: string | undefined;\n let hostname: string | undefined = context?.requestContext?.url?.requestUrl?.hostname;\n const locale = !context.requestContext.features.disable_hydrator_link_locale ? context.requestContext.locale : '';\n // In each switch case if the required information is not present to construct the URL\n // The object will be return unmodified\n switch (linkObject.type) {\n // In the case of internal and external links, no transform is needed\n // If destination url is present set the destination url and break\n case 'internalLink':\n case 'externalLink':\n if (linkObject.destinationUrl) {\n // Append the pass through query parameters\n const queryParams = (context.requestContext && context.requestContext.query) || {};\n const featureContext = context?.requestContext?.features;\n // If add_external_link_domain switch is set to true, we pass hostname as empty string which will add domain qsp to all external and internal link\n hostname = featureContext?.add_external_link_domain ? '' : hostname;\n if (featureContext?.skip_external_link_catalogid) {\n destinationUrl = appendQueryParams(linkObject.destinationUrl, queryParams, hostname, true);\n } else {\n destinationUrl = appendQueryParams(linkObject.destinationUrl, queryParams, hostname);\n }\n\n break;\n }\n return;\n case 'productLink':\n // To build the url for a productLink we need the product and category ids\n if (linkObject.productId && linkObject.categoryId) {\n // Grab the route context using the action\n let routeContext: IPageTypeContext;\n try {\n const catalogId = getCatalogIdForSdk(context.requestContext, 0);\n routeContext = await getPageTypeContextByIdAction(\n new ProductLinkInput(\n context.requestContext.apiSettings,\n linkObject.categoryId,\n linkObject.productId,\n catalogId,\n locale\n ),\n context\n );\n // Create the URL and break\n destinationUrl = getUrlSync('product', context, routeContext);\n } catch (err) {\n context.telemetry.error(EXCEPTION_LINK_ACTION);\n context.telemetry.exception(err);\n linkObject.destinationUrl = '';\n linkObject.error = EXCEPTION_LINK_ACTION;\n return;\n }\n break;\n }\n return;\n case 'categoryLink':\n // To build the url for the categoryLink we need the category id\n if (linkObject.categoryId) {\n // Grab the route context using the action\n let routeContext: IPageTypeContext;\n try {\n routeContext = await getPageTypeContextByIdAction(\n new CategoryLinkInput(context.requestContext.apiSettings, linkObject.categoryId, null, locale),\n context\n );\n // Create the URL and break\n destinationUrl = getUrlSync('category', context, routeContext);\n } catch (err) {\n context.telemetry.error(EXCEPTION_LINK_ACTION);\n context.telemetry.exception(err);\n linkObject.destinationUrl = '';\n linkObject.error = EXCEPTION_LINK_ACTION;\n return;\n }\n break;\n }\n return;\n default:\n // If it is not one of these types or does not contain the information required for the link\n // building do not modify the data\n return;\n }\n\n // Set the computed destinationUrl and delete the other properties\n linkObject.destinationUrl = destinationUrl;\n delete linkObject.categoryId;\n delete linkObject.productId;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICache } from '@msdyn365-commerce/cache-internal';\nimport msdyn365Commerce, {\n IDictionary,\n IFeatureVersions,\n IModule,\n IModuleContract,\n IPageResponse,\n IPlatformSettings,\n IRequestContext,\n IResourceManager,\n isAuthoringEditEnabled,\n isEmptyOrNullObject\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { EXCEPTION_BADPAGECONTEXT, EXCEPTION_INITIALDATAFAIL, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { isObservableArray, toJS, transaction } from 'mobx';\nimport { IModuleBinder } from '../app-initialization/models';\nimport {\n CACHE_SETTING,\n MODULE_ACTION_KEY,\n MODULE_CACHE_KEY,\n MODULE_CONFIG_ERRORS_KEY,\n MODULE_CONFIG_KEY,\n MODULE_DATA_KEY,\n MODULE_DEFERRED_KEY,\n MODULE_RESOURCES_KEY,\n MSDYN365_WYSIWYG_CANADDMODULE,\n MSDYN365_WYSIWYG_DISABLED_PROPS\n} from '../consts';\nimport { getParentModuleName, isModuleEntryPointsEnabled } from '../utils/helpers';\nimport { getWrappedProxyObject } from './authoring-edit-helper';\n\n/**\n * Interface containing module metadata that pageContext holds\n *\n * Any change to this interface should result an accompanying change to the moduleList\n * Fast JSON stringify constructor in base-page-utils.ts\n */\ninterface IModuleMetaData {\n id: string;\n typeName: string;\n dataActions: unknown;\n}\n\ninterface IActionMetaData {\n name: string;\n entity: string;\n inputs: string[];\n}\n\n/**\n * Class to hold the page view model, areas and regions\n */\nexport class PageContext {\n public requestContext: IRequestContext;\n public pageRoot: IModuleContract & { theme: string };\n public requestCache: ICache;\n private _moduleList: IModuleMetaData[] = [];\n private _themeModulesList: string[] = [];\n private _clientPlatformSetting: IPlatformSettings = {};\n private _environmentVariable: IDictionary = {};\n private _versionDependentFeatureInfo: IFeatureVersions = {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(pageData: IPageResponse | any, requestContext: IRequestContext, requestCache: ICache, resourceManager?: IResourceManager) {\n if (isEmptyOrNullObject(pageData)) {\n throw new Error(EXCEPTION_BADPAGECONTEXT);\n }\n this.requestContext = requestContext;\n // set c1AccessToken to null so that its not sent down to client\n this.requestContext.user.c1AccessToken = undefined;\n this.requestCache = requestCache;\n this.pageRoot = pageData.pageRoot;\n this._versionDependentFeatureInfo = msdyn365Commerce.getVersionDependentFeatureInfo;\n\n if (typeof window === 'undefined') {\n this._putRequestedModulesInCacheOnServer(pageData, resourceManager);\n }\n\n this._initThemeModulesList();\n this.setEnvironmentVariableForCLient();\n }\n\n public moduleList(): IModule[][] {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = this._moduleList.reduce((resultArray: any[], item, index) => {\n const chunkIndex = Math.floor(index / Number(5));\n if (!resultArray[chunkIndex]) {\n resultArray[chunkIndex] = []; // start a new chunk\n }\n resultArray[chunkIndex].push(item);\n\n return resultArray;\n }, []);\n return result;\n }\n\n /**\n * Returns callback function that returns module rendering metadata for a given module asynchronously\n */\n get modules(): (name: string) => IModule {\n return (name: string) => {\n return this._constructModuleMetaData(name);\n };\n }\n\n /**\n * Get all the modules listed in the PageContext from the cache\n */\n\n public async allModules(requestContext: IRequestContext, moduleList: IModule[]): Promise {\n if (requestContext?.features?.loadData_optimization) {\n return moduleList.map(moduleMetaData => {\n return this.modules(moduleMetaData.id);\n });\n } else {\n return this._moduleList.map(moduleMetaData => {\n return this.modules(moduleMetaData.id);\n });\n }\n }\n\n public setAppCacheEntries(appCacheEntries: string[]): void {\n this.requestCache.put({ typeName: CACHE_SETTING, key: 'APP_CACHE_ENTRIES' }, { item: appCacheEntries });\n }\n\n public setPlatformSettingsForClient(platformSettings: IPlatformSettings): void {\n this._clientPlatformSetting.clientSideDataActionTimeoutInMs = platformSettings?.clientSideDataActionTimeoutInMs || undefined;\n this._clientPlatformSetting.shouldUseInstanceCache = !!platformSettings?.clientSideDataActionTimeoutInMs;\n this._clientPlatformSetting.disableActionRegOptimization = true;\n this._clientPlatformSetting.imageFallbackOptimize = platformSettings?.imageFallbackOptimize || false;\n this._clientPlatformSetting.enableModuleEntryPoints = isModuleEntryPointsEnabled(platformSettings);\n this._clientPlatformSetting.enableImageOptimizeEvents = !!platformSettings?.enableImageOptimizeEvents;\n this._clientPlatformSetting.enableModuleCssOptimization = platformSettings?.enableModuleCssOptimization || false;\n this._clientPlatformSetting.clientTimeoutMapInMs = platformSettings?.clientTimeoutMapInMs || {};\n this._clientPlatformSetting.secondaryInstrumentationKey = platformSettings?.secondaryInstrumentationKey;\n /* if (platformSettings?.disableActionRegOptimization === true) {\n this._clientPlatformSetting.disableActionRegOptimization = true;\n }*/\n }\n\n public setEnvironmentVariableForCLient = () => {\n const environment = msdyn365Commerce.getAllEnvironmentVariable();\n this._environmentVariable = environment;\n };\n\n public getPlatformSettingsForClient(): IPlatformSettings {\n return this._clientPlatformSetting;\n }\n\n public getVersionDependentFeatureInfo(): IFeatureVersions {\n return this._versionDependentFeatureInfo;\n }\n\n /**\n * Checkis if the given module is deferred module\n * @param name name of the module\n */\n public deferred(name: string): Boolean {\n return !!this.requestCache.getValue({ typeName: MODULE_DEFERRED_KEY, key: name });\n }\n\n public getResourceTextForPlaceholderPreview(): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const resourceItem = this.requestCache.get({ typeName: MODULE_RESOURCES_KEY, key: 'PLACE-HOLDER-FOR-CONTAINER-PREVIEW' });\n if (resourceItem && resourceItem.item && resourceItem.item.clickToConfigure) {\n return resourceItem.item.clickToConfigure;\n } else {\n return 'Click here to configure';\n }\n }\n\n /**\n * Marks module as deferred\n * @param name name of the module\n */\n public markModuleAsDeferred(name: string): void {\n this.requestCache.put(\n { typeName: MODULE_DEFERRED_KEY, key: name },\n {\n item: true\n }\n );\n }\n\n /**\n * Inserts requested modules into cache on client side\n * @param pageData page data object\n * @param telemetry telemetry object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async putRequestedModulesInCacheOnClient(pageData: any, telemetry: ITelemetry): Promise {\n if (isEmptyOrNullObject(pageData.requestCache) || isEmptyOrNullObject(pageData.requestCache.internalCache)) {\n throw new Error(EXCEPTION_INITIALDATAFAIL);\n }\n\n for (const cacheType of Object.keys(pageData.requestCache.internalCache)) {\n const cacheBasedOnType = pageData.requestCache.internalCache[cacheType];\n if (!isEmptyOrNullObject(cacheBasedOnType)) {\n for (const cachekey of Object.keys(cacheBasedOnType)) {\n const cacheItem = cacheBasedOnType[cachekey];\n\n if (pageData?.requestContext?.features?.loadData_optimization) {\n setTimeout(() => {\n this._rehydrateAsyncResults(cacheItem, cacheType, cachekey);\n }, 0);\n } else {\n this._rehydrateAsyncResults(cacheItem, cacheType, cachekey);\n }\n\n // Awaiting a rejected promise will throw, so we need to catch those errors.\n try {\n await cacheItem.item;\n } catch (e) {\n telemetry.debug(`Error while hyrdating cache item, Type: ${cacheBasedOnType}, Key: ${cachekey}`);\n }\n\n if (cacheType === MODULE_CACHE_KEY) {\n const moduleItem = cacheItem.item;\n this._moduleList.push({\n id: moduleItem.id,\n typeName: moduleItem.typeName,\n dataActions: moduleItem.dataActions || []\n });\n }\n }\n }\n }\n }\n\n /**\n * Populates data actions results from cache\n * @param cacheObjectType entity type\n * @param cacheKey cache key\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _populateDataActionResultFromCache(cacheObjectType: string, cacheKey: string): any {\n const cachedValueBasedOnInput = this.requestCache.getValue({ typeName: cacheObjectType, key: cacheKey });\n if (!cachedValueBasedOnInput) {\n return;\n }\n\n // Ref resolution for promises needs to be delayed until the value is available\n if (isAsyncResult(cachedValueBasedOnInput)) {\n return transaction(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n cachedValueBasedOnInput.then(promiseResult => {\n // Directly set the result because we want a synchronous change\n cachedValueBasedOnInput.result = this._resolveCacheRef(cacheObjectType, promiseResult);\n });\n return cachedValueBasedOnInput;\n });\n }\n\n return this._resolveCacheRef(cacheObjectType, cachedValueBasedOnInput);\n }\n\n /**\n * Resolves cache reference for the given entity type\n * @param cacheObjectType entity type that is cached\n * @param cacheRefInfo cache ref key\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _resolveCacheRef(cacheObjectType: string, cacheRefInfo: object): any {\n if (typeof cacheRefInfo !== 'object' || cacheRefInfo['$ref'] !== true) {\n return cacheRefInfo;\n }\n const result = cacheRefInfo['key']\n .map(key => {\n const value = this.requestCache.getValue({ typeName: cacheObjectType, key });\n if (value) {\n return value;\n }\n })\n .filter(Boolean);\n return result && result.length > 0 ? (cacheRefInfo['isCollection'] ? result : result[0]) : null;\n }\n\n /**\n * Inserts requested modules in cache to prepare the initialData that will be sent to client\n * @param pageData pageData object with list of modules\n * @param resourceManager resourceManager that contains the localized strings\n */\n private _putRequestedModulesInCacheOnServer(pageData: IPageResponse, resourceManager?: IResourceManager): void {\n const isEditor = (this.requestContext.params && this.requestContext.params.isEditor) || false;\n const themeName = this.requestContext.params?.theme;\n for (let i = 0; i < pageData.slots.length; ++i) {\n const moduleInstance = pageData.slots[i];\n const moduleId = moduleInstance.id;\n this._moduleList.push({\n id: moduleInstance.id,\n typeName: moduleInstance.typeName,\n dataActions: moduleInstance.dataActions\n });\n\n this.requestCache.put(\n { typeName: MODULE_CACHE_KEY, key: moduleId },\n {\n item: { id: moduleInstance.id, typeName: moduleInstance.typeName }\n }\n );\n this.requestCache.put({ typeName: MODULE_CONFIG_KEY, key: moduleId }, { item: moduleInstance.config });\n this.requestCache.put({ typeName: MODULE_CONFIG_ERRORS_KEY, key: moduleId }, { item: moduleInstance.configErrors });\n this.requestCache.put({ typeName: MODULE_DATA_KEY, key: moduleId }, { item: moduleInstance.data });\n this.requestCache.put({ typeName: MODULE_ACTION_KEY, key: moduleId }, { item: moduleInstance.dataActions });\n this.requestCache.put({ typeName: MSDYN365_WYSIWYG_DISABLED_PROPS, key: moduleId }, { item: [] });\n this.requestCache.put({ typeName: MSDYN365_WYSIWYG_CANADDMODULE, key: moduleId }, { item: [] });\n\n if (resourceManager && !isEditor) {\n this.requestCache.put(\n { typeName: MODULE_RESOURCES_KEY, key: moduleInstance.typeName },\n { item: resourceManager.getModuleResources(moduleInstance.typeName, themeName, this.requestContext.locale) }\n );\n }\n }\n // In editor mode, put the resources for all modules for the current locale into the cache\n if (isEditor && resourceManager && this.requestContext.features.enableAuthoringRemoveAndAddModule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bindings = (msdyn365Commerce).getAllModuleBinder();\n bindings.forEach((moduleBinder: IModuleBinder) => {\n this.requestCache.put(\n { typeName: MODULE_RESOURCES_KEY, key: moduleBinder.name },\n { item: resourceManager.getModuleResources(moduleBinder.name, themeName, this.requestContext.locale) }\n );\n });\n }\n }\n\n /**\n * Initializes theme modules list that need to be loaded on the client\n */\n private _initThemeModulesList(): void {\n this._themeModulesList = [];\n\n if (this.requestContext.params.theme) {\n this._themeModulesList.push(this.requestContext.params.theme);\n this._themeModulesList.push(getParentModuleName(this.requestContext.params.theme));\n }\n }\n\n /**\n * Function which rehydrate Async Results.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _rehydrateAsyncResults(cacheItem: any, cacheType: string, cachekey: string): void {\n // AsyncResults sent from server to client get serialized into basic JS objects,\n // They need to be \"rehydrated\" into actual AsyncResults to enable full functionality\n if (cacheItem.item && cacheItem.item._type && cacheItem.item._type === 'AsyncResult') {\n const metadata = cacheItem.item.metadata || {};\n if (cacheItem.item.status && cacheItem.item.status === 'SUCCESS') {\n cacheItem.item = AsyncResult.resolve(cacheItem.item.result);\n } else {\n cacheItem.item = AsyncResult.reject(cacheItem.item.error || 'Unable to parse data action');\n }\n cacheItem.item.metadata = metadata;\n }\n\n this.requestCache.put({ typeName: cacheType, key: cachekey }, { item: cacheItem.item });\n }\n\n /**\n * Construct module MetaData\n * @param name moduleName\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _constructModuleMetaData(name: string): any {\n const cacheItem = this.requestCache.getValue({ typeName: MODULE_CACHE_KEY, key: name });\n if (!cacheItem) {\n throw new Error(`requested module id [${name}] is not found in module dictionary of pageconfig`);\n }\n\n const data = { ...(this.requestCache.getValue({ typeName: MODULE_DATA_KEY, key: name }) || {}) };\n const actions = this.requestCache.getValue({ typeName: MODULE_ACTION_KEY, key: name });\n const resources = this.requestCache.getValue>({ typeName: MODULE_RESOURCES_KEY, key: cacheItem.typeName });\n\n // toJS method\n if (actions) {\n // ToJS converts observable object to JS object.\n const actionMetaDataList = toJS(actions);\n if (actionMetaDataList) {\n for (const action of actionMetaDataList) {\n if (action.entity && action.inputs) {\n data[action.name] =\n Array.isArray(action.inputs) || isObservableArray(action.inputs)\n ? action.inputs.map((cacheKey: string) => this._populateDataActionResultFromCache(action.entity, cacheKey))\n : this._populateDataActionResultFromCache(action.entity, action.inputs);\n } else {\n data[action.name] = AsyncResult.reject('Action Input Creation Failure');\n }\n }\n }\n }\n\n const config = this.requestCache.getValue>({ typeName: MODULE_CONFIG_KEY, key: name }) || {};\n return {\n ...cacheItem,\n data: data,\n config:\n !(typeof window === 'undefined') && isAuthoringEditEnabled(this.requestContext)\n ? getWrappedProxyObject(config, name, cacheItem.typeName)\n : config,\n configErrors: this.requestCache.getValue({ typeName: MODULE_CONFIG_ERRORS_KEY, key: name }),\n resources: resources || {},\n disabledProperties: this.requestCache.getValue({ typeName: MSDYN365_WYSIWYG_DISABLED_PROPS, key: name }) || [],\n slotsForAddModule: this.requestCache.getValue({ typeName: MSDYN365_WYSIWYG_CANADDMODULE, key: name }) || []\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { ISessionStorageContext, ISessionStorageValue } from '@msdyn365-commerce/core-internal';\nimport { CookieContext } from './cookie-utils';\n\n/**\n * Context for session storage handling\n *\n * @export\n * @class CookieContext\n */\nexport class SessionStorageContext implements ISessionStorageContext {\n private _cookieContext: CookieContext;\n\n constructor(_cookieContext: CookieContext) {\n this._cookieContext = _cookieContext;\n }\n\n /**\n * Gets the value stored in the session storage.\n * Returns an empty object if no such value exists.\n *\n * @param {string} key - The key string.\n */\n public getDataFromStorage = (key: string): object => {\n if (key) {\n return this.get(key).value || {};\n }\n return {};\n };\n\n /**\n * Sets a new key pair value in the session storage.\n *\n * @param {string} key - The key string.\n * @param {object} value - The data object.\n */\n public setDataInStorage = (key: string, value: object): void => {\n if (key && value) {\n this.set(key, value);\n }\n };\n\n /**\n * Gets the checkout cart stored in the session storage.\n * Returns an empty object if no such value exists.\n *\n * @param {string} key - The key string.\n */\n public getCheckoutCartData = (key: string): object => {\n if (key) {\n return key ? this.getDataFromStorage(this.getCheckoutCartKey(key)) : {};\n }\n return {};\n };\n\n /**\n * Sets checkout cart value in the session storage.\n *\n * @param {string} key - The key string.\n * @param {object} value - The cart data object.\n */\n public setCheckoutCartData = (key: string, value: object): void => {\n if (key && value) {\n this.setDataInStorage(this.getCheckoutCartKey(key), value);\n }\n };\n\n /**\n * Remove session storage by giving key\n *\n * @param {string} key - The key string.\n */\n public removeDataFromStorage = (key: string): void => {\n if (key) {\n this.remove(key);\n }\n };\n\n /**\n * Remove checkout cart data from the session storage by giving key\n *\n * @param {string} key - The key string. If key is not provided clear all data from session storage that contais the checkout cart key prefix.\n */\n public removeCheckoutCartData = (key?: string): void => {\n if (key) {\n this.removeDataFromStorage(this.getCheckoutCartKey(key));\n } else {\n const keyList = Object.keys(sessionStorage);\n keyList.map(k => {\n if (k.startsWith(`${msdyn365Commerce.checkoutCartKeyPrefix}-`)) {\n this.removeDataFromStorage(k);\n }\n });\n }\n };\n\n /**\n * Get session storage value.\n * If server side, no-op.\n *\n * @param {string} key - The key string\n * @return {ISessionStorageValue} value with status\n */\n private get = (key: string): ISessionStorageValue => {\n if (key && msdyn365Commerce.isBrowser) {\n const objString = sessionStorage.getItem(key);\n if (objString) {\n const obj = JSON.parse(objString);\n return { name: key, value: obj, status: obj ? 'FOUND' : 'NOT_FOUND' };\n }\n }\n return { name: key, value: undefined, status: 'NOT_FOUND' };\n };\n\n /**\n * Set session storage data.\n * If server side, no-op.\n *\n * @param {string} key - The key string\n * @param {T} value - The session storage value\n */\n private set = (key: string, value: T): void => {\n if (key && msdyn365Commerce.isBrowser) {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n };\n\n /**\n * Remove session storage data by giving key\n * If server side, no-op.\n *\n * @param {string} key - The key string\n */\n private remove = (key: string): void => {\n if (key && msdyn365Commerce.isBrowser) {\n sessionStorage.removeItem(key);\n }\n };\n\n /**\n * Build the checkout cart key for the session storage\n */\n private getCheckoutCartKey = (key: string): string => {\n const checkoutCartCookie = this._cookieContext.getCheckoutCartCookie();\n if (checkoutCartCookie) {\n return `${msdyn365Commerce.checkoutCartKeyPrefix}-${checkoutCartCookie}-${key}`;\n }\n return '';\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport axios from 'axios';\nimport { IRequestContext, msdyn365Commerce, IRequestContextForSegment } from '@msdyn365-commerce/core-internal';\nimport { IInternalTelemetry, LogLevel } from '@msdyn365-commerce/telemetry-internal';\n\ninterface ISegmentProvider {\n providerId: string;\n segmentIds: string[];\n}\n\nconst REQUEST_CONTEXT_PROPERTIES_FOR_SEG = ['clientIPAddress', 'cookieString', 'cookie', 'query', 'params', 'apiSettings', 'features'];\n\nexport const resolveMissingSegmentsOnClient = (requestContext: IRequestContext, userId: string, telemetry: IInternalTelemetry) => {\n if (!requestContext || !requestContext.missingSegments || requestContext.missingSegments.length) {\n return;\n }\n let domain = requestContext.canonicalDomain || '';\n if (msdyn365Commerce.isBrowser) {\n domain = window.location.hostname;\n }\n const missingSegments: ISegmentProvider[] = [];\n const neededMissingSegments = requestContext.missingSegments;\n Object.keys(neededMissingSegments).forEach((providerId: string) => {\n const segmentProvider: ISegmentProvider = {\n providerId: providerId,\n segmentIds: neededMissingSegments[providerId]\n };\n missingSegments.push(segmentProvider);\n });\n // if there is no misisng segments. return.\n if (missingSegments.length === 0) {\n return;\n }\n // add cookie string. So we are able to re-construct cookie obj when oneRf call Node to resolve segments.\n requestContext.cookieString = (document && document.cookie) || '';\n const segmentRequestId = requestContext.segmentRequestId;\n const missingSegmentResolvingUrl = `https://${domain}/_msdyn365/getsegment`;\n\n // only maintain selected properties of requestContext.\n const segRequestContext: IRequestContextForSegment = {};\n REQUEST_CONTEXT_PROPERTIES_FOR_SEG.forEach((property: string) => {\n if (property in requestContext && !!requestContext[property]) {\n segRequestContext[property] = requestContext[property];\n }\n });\n\n const requestContextObject = requestContext?.features?.disable_segment_requestContext ? requestContext : segRequestContext;\n\n axios({\n method: 'post',\n url: missingSegmentResolvingUrl,\n data: {\n segmentProviderList: missingSegments,\n userId: userId,\n requestContext: requestContextObject,\n ...(segmentRequestId && { segmentRequestId: segmentRequestId })\n }\n })\n // after post request, oneRf will process the request. Node will not receive any response.\n .then()\n .catch(err => telemetry.log(LogLevel.Error, `Error in resolving segments from AJAX call for ${domain}`, { exception: err }));\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ActionContext, CLIENT_HYDRATE_KEY, CLIENT_HYDRATE_TYPE } from '@msdyn365-commerce/action-internal';\nimport { RequestCache, ICacheKey, ICache } from '@msdyn365-commerce/cache-internal';\nimport {\n CoreContext,\n CultureInfoFormatter,\n IActionContext,\n IAny,\n ICoreContext,\n IDictionary,\n IGeneric,\n IModule,\n IModuleContract,\n IMSDyn365Window,\n IPartnerThemeSettings,\n IRequestContext,\n IRequestContextUrl,\n IVariants,\n msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport {\n ClientAppInsightsJSLogger,\n LoggerType,\n EVENT_CLIENT_RENDER_START,\n EVENT_CLIENT_RENDER_STOP,\n CONTENT_SECURITY_POLICY_ERROR,\n EVENT_WEB_VITALS_CLS,\n EVENT_WEB_VITALS_FCP,\n EVENT_WEB_VITALS_FID,\n EVENT_WEB_VITALS_LCP,\n EVENT_WEB_VITALS_TTFB,\n EXCEPTION_CLIENT_CACHE_HYDRATE,\n EXCEPTION_LOAD_DATA_EXCEPTION,\n EXCEPTION_PRODUCT_LIST_CLIENTSIDE_HYDRATION,\n expAttributeRenderer,\n GenericConsoleLogger,\n IEventClientRenderMetrics,\n IEventClientRenderProperties,\n IEventClientWebVitalsCLSMetrics,\n IEventId,\n IEventTime,\n ITelemetry,\n LogLevel,\n MESSAGE_CLIENT_RENDER_ERROR,\n StaticTelemetry,\n Telemetry,\n TelemetryEvent,\n InternalTelemetry,\n TSuccessNumber\n} from '@msdyn365-commerce/telemetry-internal';\nimport axios from 'axios';\nimport 'lazysizes';\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\n// eslint-disable-next-line import/no-unassigned-import\nimport 'lazysizes/plugins/bgset/ls.bgset';\nimport { partition as _partition } from 'lodash';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getCLS, getFCP, getFID, getLCP, getTTFB } from 'web-vitals';\nimport {\n RSRequestInterceptor,\n RSRequestInterceptorErrorHandler,\n RSResponseInterceptor,\n RSResponseInterceptorErrorHandler\n} from '../_server/inteceptors/rs-logging-interceptor';\nimport SafeRenderModule from '../components/safe-render-module';\nimport {\n CLIENT_RENDER_COMPLETE_EVENT,\n CLIENT_RENDER_START_EVENT,\n DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT,\n LAYOUT_MOUNT_POINT,\n PROCESS_TYPE,\n MODULE_CONFIG_KEY,\n CLIENT_ENTRY_POINTS_TYPE\n} from '../consts';\nimport { loadData } from '../data/load-data';\nimport { processComplexDataTypes } from '../hydrators/process-page-response';\nimport { IDisabledProperties } from '../store/authoring-edit-helper';\nimport { PageContext } from '../store/page-context';\nimport {\n getCurrencyCodeFromContext,\n isLazyRenderModuleEnabled,\n optimizedGetAllModules,\n shouldOptimizeHydrate,\n timeSliceLongJSTask\n} from '../utils/helpers';\nimport { SessionStorageContext } from '../utils/session-storage-utils';\nimport { CookieContext } from './../utils/cookie-utils';\nimport { resolveMissingSegmentsOnClient } from './../utils/resolve-segments-utils';\n\ntype windowinitialData = IGeneric;\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n interface ClientWindow extends IMSDyn365Window {\n ___initialData___: windowinitialData;\n cache: RequestCache;\n }\n}\n\ndeclare let window: ClientWindow;\n\naxios.interceptors.request.use(RSRequestInterceptor, RSRequestInterceptorErrorHandler);\naxios.interceptors.response.use(RSResponseInterceptor, RSResponseInterceptorErrorHandler);\n\nconst CLIENT_HYDRATE_CACHE_KEY: ICacheKey = {\n key: CLIENT_HYDRATE_KEY,\n typeName: CLIENT_HYDRATE_TYPE\n};\n\nexport const getRequestContext = (storeData: windowinitialData): IRequestContext => {\n const requestContext: IRequestContext = storeData.requestContext;\n\n // See if cookie compliance is disabled at the site level\n const disableCookieCompliance =\n (requestContext.app && requestContext.app.platform && requestContext.app.platform.disableCookieCompliance) || false;\n const cartSessionExpiration =\n (requestContext.app && requestContext.app.platform && requestContext.app.platform.cartSessionExpiration) || 0;\n const cookies = new CookieContext({\n isConsentRequired: !disableCookieCompliance,\n cartExpirationInDays: cartSessionExpiration,\n sameSiteRequired: requestContext.sameSiteRequired\n });\n\n try {\n // merge the query params from url back to request context in case if the page response is cached\n const urlSearchParams = new URLSearchParams(window.location.search);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entries = Object.fromEntries((urlSearchParams as any).entries());\n Object.keys(entries || {}).map(param => {\n if (requestContext.query && !requestContext.query[param]) {\n requestContext.query[param] = entries[param] || '';\n }\n });\n } catch (e) {\n console.error('merging query parameters from url failed');\n }\n\n if (requestContext.telemetrySettings && storeData['_clientPlatformSetting']) {\n requestContext.telemetrySettings.operationalInsightsInstrumentationKey =\n storeData['_clientPlatformSetting'].secondaryInstrumentationKey;\n }\n requestContext.cookies = cookies;\n requestContext.sessionStorage = new SessionStorageContext(cookies);\n requestContext.headers = Object.freeze({});\n requestContext.url.requestUrl =\n typeof requestContext.url.requestUrl === 'string' ? new URL(requestContext.url.requestUrl) : requestContext.url.requestUrl;\n return requestContext;\n};\n\nconst setClientHydrateContext = (requestCache: ICache) => {\n requestCache.put(CLIENT_HYDRATE_CACHE_KEY, { item: true });\n};\n\nconst resetClientHydrateContext = (requestCache: ICache) => {\n requestCache.del(CLIENT_HYDRATE_CACHE_KEY);\n};\n\nconst getPathName = (requestContextUrl: IRequestContextUrl): string => {\n if (requestContextUrl && requestContextUrl.requestUrl && requestContextUrl.requestUrl.pathname) {\n return requestContextUrl.requestUrl.pathname;\n }\n return '';\n};\n\nconst isPaymentVerification = (requestContext: IRequestContext): boolean => {\n return requestContext.query?.pv === '1';\n};\n\nconst isCheckoutRoute = (requestContext: IRequestContext): boolean => {\n return (\n requestContext.app &&\n requestContext.app.routes &&\n requestContext.app.routes.checkout &&\n requestContext.app.routes.checkout.destinationUrl &&\n getPathName(requestContext.url) === requestContext.app.routes.checkout.destinationUrl\n );\n};\n\nconst activateExperiments = (requestContext: IRequestContext): void => {\n // Activate experiment if an experimentation connector has been registered and active experiments are provided\n // In a preview scenario, OneRF will not send a user ID and which we will not active the experiment\n if (\n msdyn365Commerce.experimentationConnector &&\n requestContext.features.experimentation &&\n requestContext.experiments &&\n requestContext.experiments.userId &&\n requestContext.experiments.activeExperiments &&\n requestContext.experiments.activeExperiments.length > 0\n ) {\n const experimentInfo = requestContext.experiments;\n // Split the experiment list into two lists, one whose experiments are coupled with a module and one whose experiments are not\n const [experimentsWithoutModuleId, experimentsWithModuleId] = _partition(experimentInfo.activeExperiments, (value: IVariants) => {\n return !value.moduleId;\n });\n // Activate experiments not tied to a module id\n msdyn365Commerce.experimentationConnector.provider.activateExperiment(experimentInfo.userId, experimentsWithoutModuleId, {\n Type: requestContext.device.Type\n });\n\n // Activate experiments once 30% of the module is visible\n const options: IntersectionObserverInit = {\n threshold: 0.3\n };\n const experimentMap: IDictionary = {};\n const experimentObserver = new IntersectionObserver((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n entries.forEach((entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting && entry.intersectionRatio >= 0.3) {\n const activatedExpId = entry.target.getAttribute(`data-exp`);\n if (activatedExpId) {\n // Find the experiment/variant combo associated with the experiment to activate\n msdyn365Commerce.experimentationConnector?.provider.activateExperiment(\n experimentInfo.userId,\n [experimentMap[activatedExpId]],\n {\n Type: requestContext.device.Type\n }\n );\n }\n // Once we the element has come into the view for the first time, we can stop observing it\n observer.unobserve(entry.target);\n }\n });\n }, options);\n for (let i = 0; i < experimentsWithModuleId.length; i++) {\n const currentExperiment = experimentsWithModuleId[i];\n const target = document.querySelector(`[data-exp=\"id:${currentExperiment.experimentId}\"]`);\n if (target) {\n experimentMap[`id:${currentExperiment.experimentId}`] = currentExperiment;\n experimentObserver.observe(target);\n }\n }\n }\n};\n\n/**\n * Method to hydrate the markup returned by server on the client.\n * @param requestContext request context object\n * @param pageContext page context object\n * @param coreContext core context object\n */\nconst hydrateClient = (requestContext: IRequestContext, pageContext: PageContext, coreContext: ICoreContext) => {\n const pageRoot = pageContext.pageRoot;\n const body = pageRoot.modules && pageRoot.modules.body;\n const props = body && body.length > 0 ? body[0] : pageRoot;\n const defaultPageConfig =\n (!!!requestContext?.features?.disable_moduleConfig_optimize &&\n pageContext.requestCache.getValue({ typeName: MODULE_CONFIG_KEY, key: props.id })) ||\n props.config;\n try {\n ReactDOM.hydrate(\n \n \n ,\n document.getElementById(LAYOUT_MOUNT_POINT)\n );\n } catch (err) {\n // If in dev mode or debug mode, throw the error so it's visible on the page.\n if ((process.env.NODE_ENV === 'development' || requestContext.params.isDebug) && !requestContext.params.isEditor) {\n throw err;\n // In editor mode, catch the error but don't throw so that the page doesn't freeze up\n } else if (requestContext.params.isEditor) {\n console.log(`Error running editor (client) render: ${err}`);\n }\n }\n};\n\n/**\n * Method to initialize authoring helper and register event to receive list of disabled properties when rendered in the context of site builder\n * @param requestContext request context object\n * @param pageContext page context object\n * @param coreContext core context object\n * @param actionContext action context object\n * @param moduleTelemetry module telemetry object\n */\nconst initAuthoringHelper = (\n requestContext: IRequestContext,\n pageContext: PageContext,\n coreContext: ICoreContext,\n actionContext: IActionContext,\n moduleTelemetry\n) => {\n const themeSettings: IPartnerThemeSettings = window.___initialData___.themeSettings ? window.___initialData___.themeSettings : {};\n\n return import('../utils/authoring-tools-helper').then(m => {\n const AuthoringToolsHelper = m.AuthoringToolsHelper;\n const authoringHelper = new AuthoringToolsHelper(actionContext, themeSettings, coreContext, pageContext, moduleTelemetry);\n window._msdyn365.authoringHelper = authoringHelper;\n\n const _msdyn365Data = window._msdyn365;\n _msdyn365Data.authoringHelper = authoringHelper;\n\n if (requestContext.params.isEditor) {\n // @ts-ignore\n document.addEventListener('_msdyn365_client_disabled_properties', (dpEvent: { detail: IDisabledProperties }) => {\n if (dpEvent && dpEvent.detail && dpEvent.detail) {\n Object.keys(dpEvent.detail.modules).map(key => {\n authoringHelper.updateDisabledProperties(key, dpEvent.detail.modules[key]);\n });\n }\n });\n }\n });\n};\n\nexport function clientRender(): void {\n const storeData = window.___initialData___;\n if (!storeData || typeof storeData !== 'object') {\n console.error(MESSAGE_CLIENT_RENDER_ERROR);\n return;\n }\n const removePlaceholderModules = (modulesDictionary: { [slot: string]: IModuleContract[] }) => {\n Object.keys(modulesDictionary || {}).forEach(slot => {\n modulesDictionary[slot] = modulesDictionary[slot].filter(a => a.typeName !== 'place-holder-for-container-preview');\n modulesDictionary[slot].forEach(module => module.modules && removePlaceholderModules(module.modules));\n });\n };\n const requestContext = getRequestContext(storeData);\n if (requestContext.params.isEditor) {\n removePlaceholderModules(storeData.pageRoot.modules);\n }\n\n // if request is not POST or is not a checkout route or is not a payment verification, clear all checkout session storage data.\n // TODO: Explore a way to move this logic to SSK\n if (!requestContext.requestFormData || !isCheckoutRoute(requestContext) || !isPaymentVerification(requestContext)) {\n requestContext.sessionStorage.removeCheckoutCartData();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const appCache = (msdyn365Commerce as any).getAppCache(requestContext);\n const pageContext = new PageContext(storeData, requestContext, appCache);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).__msdyn365__ = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).__msdyn365__.pageContext = pageContext;\n\n // Get the 1DS instance from the browser client. Initialized as part of base-page\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const oneDSWeb: any = window['oneDSWeb'];\n\n // Get the registered experiment listener\n const expListener = msdyn365Commerce.experimentationConnector?.listener;\n\n // Get application insights instrumentation key\n const appInsightsInstrumentationKey = requestContext.telemetrySettings.instrumentationKey || '';\n let msftClientAppInsightsJSLogger;\n if (appInsightsInstrumentationKey !== '') {\n msftClientAppInsightsJSLogger = new ClientAppInsightsJSLogger(\n LoggerType.MSFTApplicationInsightsLogger,\n appInsightsInstrumentationKey\n );\n }\n\n // Get operational insights instrumentation key\n const operationalInsightsInstrumentationKey = requestContext.telemetrySettings.operationalInsightsInstrumentationKey || '';\n let operationalClientAppInsightsJSLogger;\n if (operationalInsightsInstrumentationKey !== '') {\n operationalClientAppInsightsJSLogger = new ClientAppInsightsJSLogger(\n LoggerType.OperationalApplicationInsightsLogger,\n operationalInsightsInstrumentationKey\n );\n }\n\n // Set up internal SDK telemetry\n const internalTelemetry = StaticTelemetry;\n internalTelemetry.enableDataAnalytics(requestContext.features.enableDataAnalytics);\n internalTelemetry.registerWebAnalyticsPlugin(oneDSWeb);\n internalTelemetry.registerAttributeRenderer(expAttributeRenderer);\n if (appInsightsInstrumentationKey !== '') {\n internalTelemetry.registerTraceLogger({\n traceLogger: msftClientAppInsightsJSLogger\n });\n }\n\n internalTelemetry.setTelemetryRequestContext({\n siteId: '[[Placeholder]]',\n channelId: requestContext.channel?.RecordId ? requestContext.channel.RecordId.toString() : 'Unavailable',\n pageType: requestContext.urlTokens.pageType,\n pageId: pageContext.pageRoot.id\n });\n\n const correlationId = Telemetry.generateGuid();\n logWebVitals(internalTelemetry, correlationId);\n\n const targetId = requestContext?.tuid;\n if (targetId) {\n resolveMissingSegmentsOnClient(requestContext, targetId, internalTelemetry);\n }\n\n // Set up external module telemetry\n const moduleTelemetry = new Telemetry();\n moduleTelemetry.enableDataAnalytics(requestContext.features.enableDataAnalytics);\n moduleTelemetry.registerWebAnalyticsPlugin(oneDSWeb);\n moduleTelemetry.registerAttributeRenderer(expAttributeRenderer);\n if (operationalInsightsInstrumentationKey) {\n moduleTelemetry.registerTraceLogger({\n traceLogger: operationalClientAppInsightsJSLogger\n });\n }\n\n // If experimentaiton listener set up, add to event logging framework\n if (expListener && requestContext.features.experimentation) {\n internalTelemetry.registerExpLogger(expListener);\n\n moduleTelemetry.registerExpLogger(expListener);\n }\n\n // If in debug mode, add console loggers\n if (requestContext.params.isDebug) {\n internalTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: requestContext.params.isDebug } });\n moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: requestContext.params.isDebug } });\n }\n\n const contentSecurityPolicy = requestContext.app && requestContext.app?.contentSecurityPolicy;\n\n // Logging CSP error only when CSP is enabled and enableReportOnlyMode is false\n if (contentSecurityPolicy && !contentSecurityPolicy?.disableContentSecurityPolicy && !contentSecurityPolicy?.enableReportOnlyMode) {\n const randomNumberGenerator = Math.floor(Math.random() * 100);\n\n document.addEventListener('securitypolicyviolation', e => {\n const cspReport = JSON.stringify({\n 'blocked-uri': e.blockedURI,\n 'document-uri': e.documentURI,\n 'original-policy': e.originalPolicy,\n 'violated-directive': e.violatedDirective\n });\n\n // Only logging all CSP errors for 25% of page request\n if (randomNumberGenerator < 25) {\n internalTelemetry.log(LogLevel.Error, CONTENT_SECURITY_POLICY_ERROR, { customTags: [cspReport] });\n }\n });\n }\n\n pageContext\n .putRequestedModulesInCacheOnClient(storeData, moduleTelemetry)\n .catch(error => {\n internalTelemetry.log(LogLevel.Error, EXCEPTION_CLIENT_CACHE_HYDRATE, { exception: error });\n })\n .finally(async () => {\n await timeSliceLongJSTask(requestContext);\n\n window._msdyn365 = {\n requestContext: requestContext,\n telemetry: internalTelemetry\n };\n\n const actionContext = new ActionContext({\n id: 'Client Action Context',\n requestContext: requestContext,\n requestCache: pageContext.requestCache,\n telemetry: moduleTelemetry,\n appCache: null,\n spawnChildOnExecute: true\n });\n\n if (requestContext.params.isDebug) {\n window._msdyn365.cache = pageContext.requestCache;\n }\n const coreContext: ICoreContext = {\n actionContext: actionContext,\n app: requestContext.app,\n // @ts-ignore -- we don't actually have this prop defined on the interface\n internalTelemetry: internalTelemetry,\n telemetry: moduleTelemetry,\n request: requestContext,\n cultureFormatter: new CultureInfoFormatter(\n requestContext.locale,\n getCurrencyCodeFromContext(requestContext),\n requestContext.query\n )\n };\n let allModules: IModule[] = [];\n await timeSliceLongJSTask(requestContext);\n if (requestContext?.features?.loadData_optimization) {\n allModules = await optimizedGetAllModules(pageContext, requestContext);\n } else {\n allModules = await pageContext.allModules(requestContext, []);\n }\n\n const allowDispatchEvent = requestContext?.params?.isEditor || requestContext?.features?.enable_verbose_logs ? true : false;\n if (shouldOptimizeHydrate(requestContext)) {\n await optimizeClientHydrate(\n requestContext,\n pageContext,\n coreContext,\n actionContext,\n allModules,\n moduleTelemetry,\n internalTelemetry,\n correlationId\n );\n } else {\n if (requestContext.params.isEditor) {\n await initAuthoringHelper(requestContext, pageContext, coreContext, actionContext, moduleTelemetry);\n }\n\n // Fire event to let tooling know render starts. Tools on receiving this event, calls\n // initialziation and passes the rendering helper class instance that can be used by SDK to\n // get any information/context w.r.t tools\n if (allowDispatchEvent) {\n const event = new Event(CLIENT_RENDER_START_EVENT);\n document.dispatchEvent(event);\n }\n\n if (allowDispatchEvent) {\n internalTelemetry.trackEvent(EVENT_CLIENT_RENDER_START, {\n id: correlationId\n });\n internalTelemetry.startTimer(correlationId);\n }\n\n let initialPromise: Promise = Promise.resolve();\n const LAZYLOAD_ALL_SWITCH: boolean = requestContext.features.lazyload_all;\n\n initialPromise = initialPromise.then(async () => {\n try {\n return processComplexDataTypes(LAZYLOAD_ALL_SWITCH, PROCESS_TYPE.client, allModules, actionContext);\n } catch (error) {\n internalTelemetry.log(LogLevel.Error, EXCEPTION_PRODUCT_LIST_CLIENTSIDE_HYDRATION, { exception: error });\n }\n });\n\n initialPromise.finally(() => {\n // put client hydrate flag into request cache.\n setupClientHydrateFlag(pageContext.requestCache);\n loadData(allModules, requestContext, internalTelemetry, moduleTelemetry, pageContext.requestCache, null)\n .then(() => {\n if (allowDispatchEvent) {\n internalTelemetry.trackEvent(\n EVENT_CLIENT_RENDER_STOP,\n {\n id: correlationId\n },\n {\n success: 1,\n time: internalTelemetry.stopTimer(correlationId)\n }\n );\n }\n })\n .catch(error => {\n if (allowDispatchEvent) {\n internalTelemetry.trackEvent(\n EVENT_CLIENT_RENDER_STOP,\n {\n id: correlationId\n },\n {\n success: 0,\n time: internalTelemetry.stopTimer(correlationId)\n }\n );\n }\n internalTelemetry.log(LogLevel.Error, EXCEPTION_LOAD_DATA_EXCEPTION, { exception: error });\n })\n .finally(() => {\n // remove client hydrate flag from request cache.\n resetClientHydrateContext(pageContext.requestCache);\n // Gets a reference to the same Telemetry, so that we can route existing log calls to new back-end without changing front-end API\n\n if (!shouldOptimizeHydrate(requestContext)) {\n hydrateClient(requestContext, pageContext, coreContext);\n }\n msdyn365Commerce.setClientHydrate(false);\n // Add the page view exp event id to the page level div\n const pageName = requestContext.telemetryPageName || requestContext.url.requestUrl.pathname;\n document.getElementById(LAYOUT_MOUNT_POINT)?.setAttribute('data-exp-event-id', `${pageName}.PageView`);\n // Activate any active experiments on the page\n activateExperiments(requestContext);\n\n // TODO (matt, 6/15/20): Manually firing page view event, undo once 1DS forwarding to framework implemented\n internalTelemetry.logEvent(TelemetryEvent.PageView, {\n title: requestContext.telemetryPageName || requestContext.url.requestUrl.pathname\n });\n\n if (allowDispatchEvent) {\n // Fire event to let tooling know render is complete\n const deprecatedEvent = new Event(DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT);\n document.dispatchEvent(deprecatedEvent);\n\n document.dispatchEvent(new Event(CLIENT_RENDER_COMPLETE_EVENT));\n }\n });\n });\n }\n });\n\n // TODO (matt, 6/15/20): Manually firing page view event, undo once 1DS forwarding to framework implemented\n internalTelemetry.logEvent(TelemetryEvent.PageView, {\n title: requestContext.telemetryPageName || requestContext.url.requestUrl.pathname\n });\n}\n\nconst setupClientHydrateFlag = (requestCache: ICache) => {\n setClientHydrateContext(requestCache);\n msdyn365Commerce.setClientHydrate(true);\n};\n\nconst optimizeClientHydrate = async (\n requestContext: IRequestContext,\n pageContext: PageContext,\n coreContext: ICoreContext,\n actionContext: ActionContext,\n allModules: IModule[],\n moduleTelemetry: ITelemetry,\n internalTelemetry: InternalTelemetry,\n correlationId: string\n) => {\n try {\n // Await on instance data actions, other data actions are run asynchronously\n setupClientHydrateFlag(pageContext.requestCache);\n\n let modulesRenderedOnServer = allModules;\n if (isLazyRenderModuleEnabled(requestContext)) {\n modulesRenderedOnServer = allModules.filter(m => {\n const cacheItem = pageContext.requestCache.get({ typeName: CLIENT_ENTRY_POINTS_TYPE, key: m.typeName })?.item;\n return !cacheItem;\n });\n }\n await timeSliceLongJSTask(requestContext);\n\n await loadData(modulesRenderedOnServer, requestContext, internalTelemetry, moduleTelemetry, pageContext.requestCache, null);\n resetClientHydrateContext(pageContext.requestCache);\n const allowDispatchEvent = requestContext?.params?.isEditor || requestContext?.features?.enable_verbose_logs ? true : false;\n\n // Fire event to let tooling know render starts. Tools on receiving this event, calls\n // initialziation and passes the rendering helper class instance that can be used by SDK to\n // get any information/context w.r.t tools\n if (allowDispatchEvent) {\n const event = new Event(CLIENT_RENDER_START_EVENT);\n document.dispatchEvent(event);\n }\n\n if (requestContext?.features?.enable_verbose_logs) {\n internalTelemetry.trackEvent(EVENT_CLIENT_RENDER_START, {\n id: correlationId\n });\n internalTelemetry.startTimer(correlationId);\n }\n\n // hydrate client without waiting on all the data actions to complete\n hydrateClient(requestContext, pageContext, coreContext);\n msdyn365Commerce.setClientHydrate(false);\n\n if (allowDispatchEvent) {\n trackEvent(internalTelemetry, correlationId, EVENT_CLIENT_RENDER_STOP, 1);\n }\n\n if (requestContext.params.isEditor) {\n await initAuthoringHelper(requestContext, pageContext, coreContext, actionContext, moduleTelemetry);\n }\n\n const LAZYLOAD_ALL_SWITCH: boolean = requestContext.features.lazyload_all;\n\n try {\n await processComplexDataTypes(LAZYLOAD_ALL_SWITCH, PROCESS_TYPE.client, allModules, actionContext);\n } catch (error) {\n internalTelemetry.log(LogLevel.Error, EXCEPTION_PRODUCT_LIST_CLIENTSIDE_HYDRATION, { exception: error });\n }\n\n // Add the page view exp event id to the page level div\n const pageName = requestContext.telemetryPageName || requestContext.url.requestUrl.pathname;\n document.getElementById(LAYOUT_MOUNT_POINT)?.setAttribute('data-exp-event-id', `${pageName}.PageView`);\n // Activate any active experiments on the page\n activateExperiments(requestContext);\n\n if (allowDispatchEvent) {\n // Fire event to let tooling know render is complete\n const deprecatedEvent = new Event(DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT);\n document.dispatchEvent(deprecatedEvent);\n document.dispatchEvent(new Event(CLIENT_RENDER_COMPLETE_EVENT));\n }\n } catch (error) {\n if (requestContext.features.enable_verbose_logs) {\n trackEvent(internalTelemetry, correlationId, EVENT_CLIENT_RENDER_STOP, 0);\n }\n internalTelemetry.log(LogLevel.Error, EXCEPTION_LOAD_DATA_EXCEPTION, { exception: error });\n }\n};\n\nconst trackEvent = (internalTelemetry: InternalTelemetry, correlationId: string, eventName: string, success: TSuccessNumber) => {\n internalTelemetry.trackEvent(\n eventName,\n {\n id: correlationId\n },\n {\n success,\n time: internalTelemetry.stopTimer(correlationId)\n }\n );\n};\n\nconst logWebVitals = (internalTelemetry: InternalTelemetry, correlationId: string) => {\n getCLS(metric => {\n internalTelemetry.trackEvent(\n EVENT_WEB_VITALS_CLS,\n { id: correlationId },\n { value: metric.value }\n );\n });\n getFCP(metric => {\n internalTelemetry.trackEvent(EVENT_WEB_VITALS_FCP, { id: correlationId }, { time: metric.value });\n });\n getFID(metric => {\n internalTelemetry.trackEvent(EVENT_WEB_VITALS_FID, { id: correlationId }, { time: metric.value });\n });\n getLCP(metric => {\n internalTelemetry.trackEvent(EVENT_WEB_VITALS_LCP, { id: correlationId }, { time: metric.value });\n });\n getTTFB(metric => {\n internalTelemetry.trackEvent(EVENT_WEB_VITALS_TTFB, { id: correlationId }, { time: metric.value });\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, IGeneric, MSDyn365Commerce, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { IBinding, IModuleBinder, IMSDyn365CommerceWithPrototype } from './models';\n\nexport const initializeApp = (bindings: IBinding) => {\n /**\n * Why we are using 'Prototype'. MSDyn365Commerce is defined in core packages and used in modules and C1 development.\n * whereas all registration, build information, commerce details etc available in runtime-internal package.\n * prototype help us declaring properties in core package and implementation in runtime-internal package.\n *\n * Following properties are not accessible by module or c1 developer.\n */\n (MSDyn365Commerce).prototype.bindings = bindings;\n\n (MSDyn365Commerce).prototype.moduleBinder = function(name: string): IModuleBinder {\n return this.bindings && this.bindings.modules && this.bindings.modules[name && name.toLowerCase()];\n };\n\n (MSDyn365Commerce).prototype.viewBinder = function(name: string): React.FC {\n return this.bindings && this.bindings.views && this.bindings.views[name];\n };\n\n (MSDyn365Commerce).prototype.componentBinder = function(name: string): React.FC {\n return this.bindings && this.bindings.components && this.bindings.components[name];\n };\n\n (MSDyn365Commerce).prototype.getPartnerOverrideAction = function(id: string): Function {\n return this.bindings && this.bindings.partnerDataActions && this.bindings.partnerDataActions[id];\n };\n\n (MSDyn365Commerce).prototype.dataAction = function(name: string): Function {\n return (\n (this.bindings && this.bindings.partnerDataActions && this.bindings.partnerDataActions[name]) ||\n (this.bindings && this.bindings.dataActions && this.bindings.dataActions[name])\n );\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (MSDyn365Commerce).prototype.getConnector = function(name: string): any {\n return this.bindings && this.bindings.connectors && this.bindings.connectors[name];\n };\n\n (MSDyn365Commerce).prototype.getAllModuleBinder = function(): IModuleBinder[] {\n return this.bindings && this.bindings.modules && Object.values(this.bindings.modules);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Returns an npm package source.\n (MSDyn365Commerce).prototype.perfAnalysisBinder = function(): any {\n return this.bindings?.perfAnalysisLibBinding;\n };\n\n (MSDyn365Commerce).prototype.updatePrivateVariable = function(): void {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._env = process.env.NODE_ENV;\n };\n\n (>msdyn365Commerce).updatePrivateVariable();\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport path from 'path';\nimport { IBinding, IModuleBinder, IModuleBinderPartial } from './models';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const initBindings = async (bindings: IBinding, isModuleEntryPointsEnabled: boolean) => {\n await Promise.all(\n Object.keys(bindings.modules).map(async moduleKey => {\n const originalBinder: IModuleBinderPartial = (bindings.modules[moduleKey]);\n try {\n const binder: IModuleBinder = {};\n let fetchComponent;\n if (!isModuleEntryPointsEnabled) {\n fetchComponent = await originalBinder.c();\n }\n binder.component = isModuleEntryPointsEnabled\n ? function load() {\n return originalBinder.c();\n }\n : fetchComponent.default;\n binder.moduleDirectory = originalBinder.md;\n binder.dataActions = originalBinder.da;\n binder.packageName = originalBinder.p;\n binder.name = originalBinder.n;\n binder.definitionPath = path.join(originalBinder.md, `${originalBinder.n}.definition.json`);\n binder.parentDefinitionPath = originalBinder.pdp;\n binder.isNodeModule = originalBinder.iNM;\n binder.moduleNamespace = originalBinder.ns;\n binder.chunkName = `${originalBinder.ns}-${originalBinder.p}-${originalBinder.n}`;\n bindings.modules[moduleKey] = binder;\n } catch (e) {\n console.error(`failed to load module chunk :: ${moduleKey}`, e);\n }\n })\n );\n\n await Promise.all(\n Object.keys(bindings.views).map(async viewKey => {\n const viewComponent: any = bindings.views[viewKey];\n try {\n let fetchViewComponent;\n if (!isModuleEntryPointsEnabled) {\n fetchViewComponent = isModuleEntryPointsEnabled ? viewComponent.c() : await viewComponent.c();\n }\n (bindings.views[viewKey]).component = isModuleEntryPointsEnabled\n ? function load() {\n return viewComponent.c();\n }\n : fetchViewComponent.default;\n } catch (e) {\n console.error(`failed to load view chunk :: ${viewKey}`, e);\n }\n })\n );\n\n await Promise.all(\n Object.keys(bindings.components).map(async componentKey => {\n const ecommerceComponent: any = bindings.components[componentKey];\n try {\n const fetchEComComponent = await ecommerceComponent.c();\n (bindings.components[componentKey]).component = fetchEComComponent.default;\n } catch (e) {\n console.error(`failed to load component chunk :: ${componentKey}`, e);\n }\n })\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n IAny,\n IExperimentationConnector,\n IGeneric,\n IRequestContext,\n MSDyn365Commerce,\n msdyn365Commerce,\n skipConsoleWarn\n} from '@msdyn365-commerce/core-internal';\nimport { initializeApp } from './initialization';\nimport { IBinding, IMSDyn365CommerceWithPrototype } from './models';\nimport { createComponent } from './render-component';\nimport { initBindings } from './utils';\n\ninterface IConnectors {\n experimentation: IExperimentationConnector;\n}\n\nconst requestCache: ICache = new RequestCache();\n\n/**\n * Helper method to inject createComponent method from runtime-internal.\n * We add a dummy createComponent method initially to avoid running into circular lookup of\n * ecommerce components\n */\nconst addCreateComponentHook = () => {\n (MSDyn365Commerce).prototype.updatePrivateVariable = function(): void {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this.createComponent = createComponent;\n };\n (>msdyn365Commerce).updatePrivateVariable();\n};\n\nexport const initializeClientApp = async (bindings: IBinding, connectors: IConnectors) => {\n skipConsoleWarn();\n addCreateComponentHook();\n initializeApp(bindings);\n const clientPlatformSettings = (window).___initialData___ && (window).___initialData___._clientPlatformSetting;\n await initBindings(bindings, clientPlatformSettings && clientPlatformSettings.enableModuleEntryPoints);\n\n (MSDyn365Commerce).prototype.updatePrivateVariable = function(): void {\n const appDatabv = (window).___appData___ && (window).___appData___.bv;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._buildVersion = appDatabv;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._experimentationConnector = connectors?.experimentation;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._platformSettings = clientPlatformSettings;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._versionDependentFeatureInfo = (window).___initialData___ && (window).___initialData___._versionDependentFeatureInfo;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n this._environmentVariable = (window).___initialData___ && (window).___initialData___._environmentVariable;\n };\n (>msdyn365Commerce).updatePrivateVariable();\n\n (MSDyn365Commerce).prototype.getAppCache = (requestContext: IRequestContext) => requestCache;\n};\n","/*******************************************************************************\n* Copyright (c) Microsoft Corporation.\n* All rights reserved. See LICENSE in the project root for license information.\n*******************************************************************************/\n\n\nimport 'custom-event-polyfill';\n\nimport * as app from '@msdyn365-commerce/runtime-internal/dist/lib/client';\nconst { getUniqueRequestedAssets } = require('../common');\n\n// Fetches the registration object from a given file and dictionary name\n// If the module is not found or dictionary does not exist an empty object is returned\nconst fetchRegistrationObject = (registration, dictionaryName) => {\n return registration ? registration[dictionaryName] : {};\n};\n\nconst fetchServerActionsRegistration = async () => {\n try {\n return import('lib/server-actions-registration').catch(e => {\n console.error(`Couldn't load server actions registration.`, e);\n });\n } catch (e) {\n console.error(`Couldn't load server actions registration.`, e);\n }\n\n return Promise.resolve();\n};\n\nconst fetchPartnerServerActionsRegistration = async () => {\n try {\n return import('lib/server-actions-registration.local').catch(e => {\n console.error(`Couldn't load partner server actions registration.`, e);\n });\n } catch (e) {\n console.error(`Couldn't load partner server actions registration.`, e);\n }\n\n return Promise.resolve();\n};\n\n// Registers all the local and installed modules need to render the page client-side\nconst registerModules = async (requestContext, requestedAssets) => {\n let registeredModules = { modules: {}, dataActions: {} };\n let registeredPartnerModules = { modules: {}, dataActions: {} };\n\n let modulesRegistration;\n let partnerModuleRegistration;\n\n // installed modules registration\n try {\n modulesRegistration = require('lib/module-registration');\n } catch (e) {\n if (e.code === 'MODULE_NOT_FOUND') {\n console.error(`registration file not found.`, e);\n } else {\n throw e;\n }\n }\n\n // local modules registration\n try {\n partnerModuleRegistration = require('lib/module-registration.local');\n } catch (e) {\n if (e.code === 'MODULE_NOT_FOUND') {\n process.env.NODE_ENV === 'development' && console.log(`no local modules found.`, e);\n }\n }\n\n let clientActionsRegistration = { dataActions: {} };\n let partnerClientActionsRegistration = { dataActions: {} };\n let serverActionsRegistration = { dataActions: {} };\n let partnerServerActionsRegistration = { dataActions: {} };\n const disableActionRegOptimization = window.___initialData___._clientPlatformSetting.disableActionRegOptimization || false;\n\n if (!disableActionRegOptimization) {\n // installed client actions registration\n try {\n clientActionsRegistration = require('lib/client-actions-registration');\n } catch (e) {\n console.error(`Couldn't load client actions registration file.`, e);\n }\n\n // partner client actions registration\n try {\n partnerClientActionsRegistration = require('lib/client-actions-registration.local');\n } catch (e) {\n console.error(`Couldn't load partner client action registration file.`, e);\n }\n }\n\n // If in an editor scenario and feature 'enableAuthoringRemoveAndAddModule' has been enabled,\n // register all modules so that editor canvas can add modules client side without page refresh\n if (\n requestContext &&\n requestContext.params &&\n requestContext.params.isEditor &&\n requestContext.features &&\n requestContext.features.enableAuthoringRemoveAndAddModule\n ) {\n if (!disableActionRegOptimization) {\n // installed server actions registration\n serverActionsRegistration = await fetchServerActionsRegistration();\n\n // partner server actions registration\n partnerServerActionsRegistration = await fetchPartnerServerActionsRegistration();\n\n serverActionsRegistration =\n serverActionsRegistration && serverActionsRegistration.registerAllActions\n ? serverActionsRegistration.registerAllActions()\n : registeredModules;\n\n partnerServerActionsRegistration =\n partnerServerActionsRegistration && partnerServerActionsRegistration.registerAllActions\n ? partnerServerActionsRegistration.registerAllActions()\n : registeredModules;\n\n clientActionsRegistration =\n clientActionsRegistration && clientActionsRegistration.registerAllActions\n ? clientActionsRegistration.registerAllActions()\n : registeredModules;\n\n partnerClientActionsRegistration =\n partnerClientActionsRegistration && partnerClientActionsRegistration.registerAllActions\n ? partnerClientActionsRegistration.registerAllActions()\n : registeredModules;\n }\n\n registeredModules = modulesRegistration ? modulesRegistration.registerAllModules() : registeredModules;\n registeredPartnerModules = partnerModuleRegistration ? partnerModuleRegistration.registerAllModules() : registeredPartnerModules;\n } else {\n registeredModules = modulesRegistration\n ? modulesRegistration.registerAllModules(requestedAssets && requestedAssets.modules)\n : registeredModules;\n registeredPartnerModules = partnerModuleRegistration\n ? partnerModuleRegistration.registerAllModules(requestedAssets && requestedAssets.modules)\n : registeredPartnerModules;\n\n if (!disableActionRegOptimization) {\n clientActionsRegistration =\n clientActionsRegistration && clientActionsRegistration.registerAllActions\n ? clientActionsRegistration.registerAllActions(requestedAssets && requestedAssets.modules)\n : registeredModules;\n\n partnerClientActionsRegistration =\n partnerClientActionsRegistration && partnerClientActionsRegistration.registerAllActions\n ? partnerClientActionsRegistration.registerAllActions(requestedAssets && requestedAssets.modules)\n : registeredModules;\n }\n }\n\n return {\n modules: {\n ...registeredModules.modules,\n ...registeredPartnerModules.modules\n },\n dataActions: {\n ...registeredModules.dataActions,\n ...clientActionsRegistration.dataActions,\n ...partnerClientActionsRegistration.dataActions,\n ...serverActionsRegistration.dataActions,\n ...partnerServerActionsRegistration.dataActions\n },\n partnerDataActions: {\n ...registeredPartnerModules.dataActions,\n ...partnerClientActionsRegistration.dataActions,\n ...partnerServerActionsRegistration.dataActions\n }\n };\n};\n\nconst initializeConnectors = (connectorInformation = {}, connectorsRegistration, requestContext) => {\n let experimentationConnector;\n if (connectorsRegistration && connectorInformation) {\n const expConnectorName = connectorInformation.expConnector;\n if (expConnectorName && connectorsRegistration[expConnectorName]) {\n // Grab the stored config from the window object\n const config = window.___initialData___.experimentationConfig;\n // Grab the experimentation user ID\n const expUserId = requestContext && requestContext.experiments && requestContext.experiments.userId;\n // Initialize the provider and listener for client\n const experimentationProvider = connectorsRegistration[expConnectorName].provider;\n const experimentationListener = connectorsRegistration[expConnectorName].listener;\n\n if (!experimentationProvider || !experimentationListener) {\n return { experimentation: undefined };\n }\n\n experimentationProvider.initializeClientSide(config);\n experimentationListener.initializeClientSide(config, expUserId);\n experimentationConnector = { name: expConnectorName, provider: experimentationProvider, listener: experimentationListener };\n }\n }\n return { experimentation: experimentationConnector };\n};\n\nconst initializePerformanceUtils = async bindings => {\n return import(/* webpackChunkName: \"msdyn365-performance-chunk\" */ '@msdyn365-commerce/commerce-performance-analyzer').then(lib => {\n bindings.perfAnalysisLibBinding = lib;\n });\n};\n\nconst initializeClient = async () => {\n const requestedAssets = window.___initialData___ && getUniqueRequestedAssets(window.___initialData___);\n let bindings = { modules: {}, dataActions: {} };\n const requestContext = window.___initialData___ && window.___initialData___.requestContext;\n\n bindings = await registerModules(requestContext, requestedAssets);\n\n // view extensions registration\n try {\n bindings.views = fetchRegistrationObject(require('lib/view-registration'), 'viewDictionary');\n } catch (e) {\n if (e.code === 'MODULE_NOT_FOUND') {\n process.env.NODE_ENV === 'development' && console.log(`view registration files not found.`);\n }\n }\n\n // component extensions registration\n try {\n bindings.components = fetchRegistrationObject(require('lib/component-registration'), 'componentDictionary');\n } catch (e) {\n if (e.code === 'MODULE_NOT_FOUND') {\n process.env.NODE_ENV === 'development' && console.log(`component registration files not found.`);\n }\n }\n\n // connectors registration\n try {\n bindings.connectors = fetchRegistrationObject(require('lib/connector-registration'), 'connectorDictionary');\n } catch (e) {\n if (e.code === 'MODULE_NOT_FOUND') {\n process.env.NODE_ENV === 'development' && console.log(`connector registration files not found.`);\n }\n }\n\n const connectorInformation = requestContext.connectors;\n const connectors = initializeConnectors(connectorInformation, bindings.connectors, requestContext);\n\n // eslint-disable-next-line camelcase\n const shouldRunPerformanceAnalysis = requestContext.features?.enable_performance_analysis && requestContext.params.isPerfAnalysis;\n if (shouldRunPerformanceAnalysis) {\n await initializePerformanceUtils(bindings);\n }\n\n await app.initializeClientApp(bindings, connectors);\n app.clientRender();\n};\n\nPromise.resolve().then(async () => {\n await initializeClient();\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function categoriesQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Categories\", \"Category\", \"CategoryClass\", key);\n }\n \n export function createCreateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery().create(entity);\n }\n\n export function createCategoryAsync(context: IContext, entity: Category): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Category): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Category): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return categoriesQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return categoriesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategories', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult {\n const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributes', false, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n } \n \n export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult {\n const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n } \n \n export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult {\n const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n return executeAction(request, context);\n } \n \n export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChildren', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n } \n \n export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult {\n const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable react/display-name */\nimport { ICache } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\nimport { ICommerceApiSettings, IExperimentationConnector, IGeoLocationConnector, ISegmentationConnectors } from './contract';\nimport {\n IComponent,\n IComponentProps,\n IDictionary,\n IFeatureVersions,\n ILocalCredentials,\n IMergedAppSettings,\n IMSDyn365Window,\n IPartnerImageSettings,\n IPartnerThemeSettings,\n IPlatformSettings,\n IResourceManager,\n ISecretManager,\n IThemeModule,\n IThemeRegistration,\n ISiteCssUrl\n} from './interfaces';\n\ndeclare let window: IMSDyn365Window;\n\n/**\n * App level const available to module/action developer\n */\nexport class MSDyn365Commerce {\n private _cartCookie: string = '_msdyn365___cart_';\n private _checkoutCartCookie: string = '_msdyn365___checkout_cart_';\n private _accountSelectionCookie: string = '_msdyn365___can_';\n private _checkoutCartKeyPrefix: string = 'checkout';\n private _buildVersion: string = '00-0000';\n private _env: string = 'development';\n private _commerceApiSetting: ICommerceApiSettings = {};\n private _themeRegistration: IThemeRegistration = { themes: {}, styles: {} };\n private _resourceManager: IResourceManager | undefined;\n private _imageSettings: IPartnerImageSettings = { imageSettings: {}, gridSettings: {} };\n private _themeSettings: IDictionary = {};\n private _themeModules: IThemeModule[] = [];\n private _connectorCache: ICache | undefined;\n private _secretManager: ISecretManager | undefined;\n private _experimentationConnector: IExperimentationConnector | undefined;\n private _geoLookupConnector: IGeoLocationConnector | undefined;\n private _platformSettings: IPlatformSettings | undefined;\n private _segmentationConnectors: ISegmentationConnectors | undefined;\n private _initialLoadCompleted: boolean = false;\n private _localCredentials: ILocalCredentials | undefined;\n private _renderResultsCache: ICache | undefined;\n private _environmentVariable: IDictionary = {};\n private _siteCssUrl: ISiteCssUrl | undefined;\n private _isClientHydrate: boolean = false;\n private _appSettings: IMergedAppSettings = {\n app: { config: {}, routes: {} },\n msdyn365: { config: {}, routes: {}, contentSecurityPolicy: {} }\n };\n private _featureNames: string[] = [];\n\n private _versionDependentFeatureInfo: IFeatureVersions = {};\n private _moduleCssStaticPaths: Set = new Set();\n\n public getEnvironmentVariable = (environmentName: string) => {\n let defaultValue = '';\n switch (environmentName) {\n case 'SUBMISSIONID':\n defaultValue = '00000-00000-00000-00000-00000';\n break;\n default:\n }\n return this._environmentVariable[environmentName] || defaultValue;\n };\n\n public setClientHydrate = (isClientHydrate: boolean) => {\n this._isClientHydrate = isClientHydrate;\n };\n\n public getAllEnvironmentVariable = () => {\n return this._environmentVariable;\n };\n\n public setEnvironmentVariable = () => {\n this._environmentVariable['SUBMISSIONID'] = process.env.SUBMISSIONID || '';\n };\n\n public setInitialLoadCompleted = (initialLoadCompleted: boolean) => {\n this._initialLoadCompleted = initialLoadCompleted;\n };\n public setThemeRegistration = (themeRegistration: IThemeRegistration) => {\n this._themeRegistration = themeRegistration;\n };\n\n /**\n * Sets list of theme module objects\n */\n public setThemeModules = (themeModules: IThemeModule[]) => {\n this._themeModules = themeModules;\n };\n\n /**\n * Sets list of theme module objects\n */\n public createComponent = >(name: string, componentObj: T): React.FC => (\n props: IComponentProps\n ) => {\n if (!(componentObj && componentObj.component)) {\n throw new Error(`Component ${name} missing`);\n }\n\n const Element = componentObj.component;\n return React.createElement(Element, props);\n };\n\n /**\n * Creates a component override\n */\n public createComponentOverride = >(name: string, componentObj: T): React.FC => (\n props: IComponentProps\n ) => {\n if (!(componentObj && componentObj.component)) {\n throw new Error(`Component ${name} missing`);\n }\n\n const Element = componentObj.component;\n return React.createElement(Element, props);\n };\n\n get isClientHydrate() {\n return this._isClientHydrate;\n }\n\n get siteCssUrl(): ISiteCssUrl | undefined {\n return this._siteCssUrl;\n }\n\n /**\n * Check if its in postInitialLoading status\n */\n\n get initialLoadCompleted(): boolean {\n return this._initialLoadCompleted;\n }\n\n // DO NOT DELETE - keeping this method for backwards\n // compatibility reasons. After modules code tranisitions to using cartCookieName\n // we will delete this getter\n get CartCookie(): string {\n return this._cartCookie;\n }\n\n get cartCookieName(): string {\n return this._cartCookie;\n }\n\n /**\n * Get checkout cart cookie\n */\n get checkoutCartCookie(): string {\n return this._checkoutCartCookie;\n }\n\n /**\n * Get account selection cookie\n */\n get accountSelectionCookie(): string {\n return this._accountSelectionCookie;\n }\n\n /**\n * Get checkout cart cookie\n */\n get checkoutCartKeyPrefix(): string {\n return this._checkoutCartKeyPrefix;\n }\n\n get themes(): IThemeRegistration {\n return this._themeRegistration;\n }\n\n /**\n * Gets theme modules with full layouts and segment objects\n */\n get themeModules(): IThemeModule[] {\n return this._themeModules;\n }\n /**\n * Gets the current build version\n */\n get buildVersion(): string {\n return this._buildVersion;\n }\n\n /**\n * Gets the current runtime environment\n */\n get env(): string {\n return this._env;\n }\n\n /**\n * Gets the commerce related API settings\n */\n get apiSettings(): ICommerceApiSettings {\n return this._commerceApiSetting;\n }\n\n /**\n * Gets the commerce related image settings\n */\n get imageSettings(): IPartnerImageSettings {\n return this._imageSettings;\n }\n\n /**\n * Gets the commerce related theme settings\n */\n get themeSettings(): IDictionary {\n return this._themeSettings;\n }\n\n /**\n * Gets the commerce related APP settings\n */\n get appSettings(): IMergedAppSettings {\n return this._appSettings;\n }\n\n /**\n * Gets the commerce related APP settings\n */\n get featureNames(): string[] {\n return this._featureNames;\n }\n\n /**\n * Gets the experimentation connector object that contains the registered provider, listener and connector name\n * Returns undefined if an experimentation connector has not been registered\n */\n get experimentationConnector(): IExperimentationConnector | undefined {\n return this._experimentationConnector;\n }\n\n /**\n * Gets the all segmentation connectors that contains the registered provider and connector name\n * Returns undefined if a segmentation connector has not been registered\n */\n get segmentationConnectors(): ISegmentationConnectors | undefined {\n return this._segmentationConnectors;\n }\n\n /**\n * Gets the geoLookup connector object that contains the registered provider and connector name\n * Returns undefined if a geo lookup connector has not been registered\n */\n get geoLookupConnector(): IGeoLocationConnector | undefined {\n return this._geoLookupConnector;\n }\n\n /**\n * Gets the experimentation app cache\n */\n get connectorCache(): ICache | undefined {\n return this._connectorCache;\n }\n\n /**\n * Gets secret manager object\n */\n get secretManager(): ISecretManager | undefined {\n return this._secretManager;\n }\n\n /**\n * Gets local credential details\n */\n get localCredentials(): ILocalCredentials | undefined {\n return this._localCredentials;\n }\n\n /**\n * Gets the platformSettings\n */\n\n get platformSettings(): IPlatformSettings | undefined {\n return this._platformSettings;\n }\n\n /**\n * Returns a boolean value indicating whether or not the current operating environment is browser or server\n */\n get isBrowser(): boolean {\n return typeof window !== 'undefined';\n }\n\n /**\n * Gets the resource manager instance\n */\n get resourceManager(): IResourceManager | undefined {\n if (!this.isBrowser) {\n return this._resourceManager;\n }\n\n return undefined;\n }\n\n /**\n * Gets the page render result cache\n */\n get renderResultCache(): ICache | undefined {\n return this._renderResultsCache;\n }\n\n /**\n * Gets the version dependent feature info\n */\n get getVersionDependentFeatureInfo(): IFeatureVersions {\n return this._versionDependentFeatureInfo;\n }\n\n /**\n * Gets chunks paths of all moduleCSS styles\n */\n get allModuleCssStaticPaths(): Set {\n return this._moduleCssStaticPaths;\n }\n}\n\nconst msdyn365Commerce = new MSDyn365Commerce();\nexport default msdyn365Commerce;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\nimport { ProductListsDataActions } from '@msdyn365-commerce/retail-proxy';\n\nimport getFullProducts, { FullProductInput } from './get-full-products';\nimport { ArrayExtensions } from './utilities';\nimport { IQuickOrderTemplateLinesState, QuickOrderTemplateLine } from './utilities/quick-order-template-line';\nimport { getProductDetailsCriteriaFromActionInput } from './utilities/utils';\n\n/**\n * Input class for the GetProductListLines data action.\n *\n */\nexport class GetProductListLinesInput implements IActionInput {\n public productListId: string;\n\n public searchText: string;\n\n public constructor(productListId: string, searchText?: string) {\n this.productListId = productListId;\n this.searchText = searchText ?? '';\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n public getCacheKey = (): string => `GetProductListLines|${this.productListId}|${this.searchText}`;\n\n /**\n * Get Cachetype Name.\n * @returns - Cache name string.\n */\n public getCacheObjectType = (): string => 'GetProductListLines';\n\n /**\n * Get Cachetype.\n * @returns - CacheType enum.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the GetProductListLines method.\n * @param productListId - ProductList Id.\n * @param searchText - Search Text.\n * @returns - Input data for getproductlistlines.\n */\nexport const createGetProductListLinesInput = (productListId: string, searchText?: string): GetProductListLinesInput => {\n return new GetProductListLinesInput(productListId, searchText);\n};\n\n/**\n * The action method for the GetProductListLines data action.\n * @param input - The action input.\n * @param context - The action context.\n * @returns - Product list lines.\n */\nexport async function getProductListLinesAction(\n input: GetProductListLinesInput,\n context: IActionContext\n): Promise {\n if (!context.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get full product list lines. User is not authenticated.');\n }\n\n const quickOrderTemplateLinesState: IQuickOrderTemplateLinesState = {\n lines: [],\n totalCount: 0\n };\n\n const promise = ProductListsDataActions.getProductListLinesAsync(\n {\n callerContext: context\n },\n input.productListId,\n input.searchText\n );\n\n const productListLines = await promise;\n const productInputs: FullProductInput[] = [];\n\n if (ArrayExtensions.hasElements(productListLines)) {\n quickOrderTemplateLinesState.totalCount = promise.metadata.count ?? quickOrderTemplateLinesState.lines.length;\n productListLines.map(listLine => {\n if (listLine.ProductId) {\n quickOrderTemplateLinesState.lines.push(new QuickOrderTemplateLine(listLine));\n productInputs.push(\n new FullProductInput(\n listLine.ProductId,\n context.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(context),\n context.requestContext\n )\n );\n }\n return productInputs;\n });\n if (ArrayExtensions.hasElements(productInputs)) {\n const fullProductsInfo = await getFullProducts(productInputs, context)\n .then((products: FullProduct[]) => {\n return products;\n })\n .catch((error: Error) => {\n context.trace(error.message);\n context.telemetry.error('[getProductListLinesAction] Unable to retrieve product info.');\n });\n if (fullProductsInfo) {\n quickOrderTemplateLinesState.lines.map(line => {\n const fullProduct = fullProductsInfo.find(\n product => product.ProductDetails.RecordId === line.productListLine.ProductId\n );\n if (!fullProduct) {\n context.telemetry.error('[getProductListLinesAction] Unable to find product info for an product list line.');\n return null;\n }\n line.fullProduct = fullProduct;\n return null;\n });\n }\n return quickOrderTemplateLinesState;\n }\n context.trace(quickOrderTemplateLinesState.lines.length.toString());\n return quickOrderTemplateLinesState;\n }\n return quickOrderTemplateLinesState;\n}\n\n/**\n * The GetProductListLines Data Action\n * Returns order templates.\n */\nexport const getProductListLinesActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-product-list-lines',\n action: getProductListLinesAction as IAction,\n input: createGetProductListLinesInput\n});\n\nexport default getProductListLinesActionDataAction;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { addCartLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { Cart, CartLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ICartActionResultWithCart } from './cart-action-result';\n\n/**\n * Get the quantity limit.\n * @param maxQuantityForCartLineItem - Max quantity for cart line.\n * @param inputItem - The input item.\n * @param inputItem.cartLineToAdd - Cart line to add.\n * @param inputItem.availableQuantity - Available quantity.\n * @param inputItem.shouldEnableStockCheck - Is stock check enabled.\n * @param inputItem.isAddServiceItemToCart - Is add service item to cart.\n * @returns The quantity limit.\n */\nfunction getQuantityLimit(\n maxQuantityForCartLineItem: number | undefined,\n inputItem: {\n cartLineToAdd: CartLine;\n availableQuantity?: number;\n shouldEnableStockCheck?: boolean;\n isAddServiceItemToCart?: boolean;\n }\n): number {\n let quantityLimit: number;\n const defaultSiteMaxQuantity = 10;\n\n if (inputItem.shouldEnableStockCheck === false) {\n quantityLimit = maxQuantityForCartLineItem ?? defaultSiteMaxQuantity;\n } else if (maxQuantityForCartLineItem === undefined && inputItem.availableQuantity === undefined) {\n quantityLimit = defaultSiteMaxQuantity;\n } else if (inputItem.availableQuantity === undefined) {\n quantityLimit = maxQuantityForCartLineItem ?? defaultSiteMaxQuantity;\n } else if (maxQuantityForCartLineItem === undefined) {\n quantityLimit = inputItem.availableQuantity;\n } else {\n quantityLimit = Math.min(maxQuantityForCartLineItem, inputItem.availableQuantity);\n }\n\n return quantityLimit;\n}\n\n/**\n * Get the index of the item to add.\n * @param lines - The cart lines.\n * @param cartLineToAdd - The cart line to add.\n * @returns The index of the item to add.\n */\nfunction getElementIndex(lines: CartLine[], cartLineToAdd: CartLine): number {\n let elementFoundAt: number = -1;\n const productIdToFind = cartLineToAdd.ProductId;\n\n for (const [index, line] of lines.entries()) {\n if (\n line.ProductId === productIdToFind &&\n (line.DeliveryMode || '') === (cartLineToAdd.DeliveryMode || '') &&\n (line.FulfillmentStoreId || '') === (cartLineToAdd.FulfillmentStoreId || '')\n ) {\n elementFoundAt = index;\n\n break;\n }\n }\n\n return elementFoundAt;\n}\n\nasync function addProductsToCartValidateMaxAgainstDefaultOrderSettings(\n cart: Readonly,\n actionContext: IActionContext,\n input: {\n cartLineToAdd: CartLine;\n availableQuantity?: number;\n enableStockCheck?: boolean;\n isAddServiceItemToCart?: boolean;\n }[]\n): Promise {\n if (!cart.CartLines) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n for (const inputItem of input) {\n if (inputItem.enableStockCheck && inputItem.availableQuantity) {\n let elementFoundAt: number = -1;\n const productIdToFind = inputItem.cartLineToAdd.ProductId;\n\n for (let i = 0; i < cart.CartLines.length; i++) {\n if (\n cart.CartLines[i].ProductId === productIdToFind &&\n (cart.CartLines[i].DeliveryMode || '') === (inputItem.cartLineToAdd.DeliveryMode || '') &&\n (cart.CartLines[i].FulfillmentStoreId || '') === (inputItem.cartLineToAdd.FulfillmentStoreId || '')\n ) {\n elementFoundAt = i;\n\n break;\n }\n }\n\n if (!inputItem.isAddServiceItemToCart && elementFoundAt !== -1) {\n const cartLineToUpdate = { ...cart.CartLines[elementFoundAt] };\n const curQuantity = cartLineToUpdate.Quantity || 0;\n\n if (curQuantity + (inputItem.cartLineToAdd.Quantity || 1) > inputItem.availableQuantity) {\n return {\n cart: {\n Id: cart.Id,\n CartLines: cart.CartLines\n },\n status: 'FAILED',\n substatus: 'MAXQUANTITY'\n };\n }\n }\n }\n }\n\n const newCartLines = input.map(inputItem => {\n const cartLine = { ...inputItem.cartLineToAdd };\n return cartLine;\n });\n let addCartLinesResult: ICartActionResultWithCart;\n\n if (cart.Version) {\n return addCartLinesAsync({ callerContext: actionContext }, cart.Id, newCartLines, cart.Version)\n .then(newCart => {\n addCartLinesResult = { cart: newCart, status: 'SUCCESS', substatus: 'PRODUCTADDED' };\n return addCartLinesResult;\n })\n .catch(error => {\n actionContext.telemetry.trace(error);\n actionContext.telemetry.trace('Unable to add Cart Line');\n\n if (\n error.name === 'Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity' ||\n error.name === 'Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity'\n ) {\n addCartLinesResult = {\n cart: undefined,\n status: 'FAILED',\n substatus: 'QUANTITYLIMITS',\n errorDetails: { LocalizedMessage: error.message }\n };\n return addCartLinesResult;\n }\n\n const hasInvoiceInCart = cart.CartLines?.find(cartline => cartline.IsInvoiceLine === true);\n if (hasInvoiceInCart) {\n addCartLinesResult = {\n cart: undefined,\n status: 'FAILED',\n substatus: 'INVOICEINCART',\n errorDetails: { LocalizedMessage: error.message }\n };\n return addCartLinesResult;\n }\n\n addCartLinesResult = {\n cart: undefined,\n status: 'FAILED',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n errorDetails: { LocalizedMessage: error.message },\n validationResults: error.data?.ValidationResults\n };\n\n return addCartLinesResult;\n });\n }\n actionContext.telemetry.warning('Unable to update Cart Line, Cart Version could not be found');\n\n addCartLinesResult = { cart: undefined, status: 'FAILED', substatus: 'NOCARTVERSION' };\n return addCartLinesResult;\n}\n\nasync function addProductsToCartValidateMaxAgainstSiteSettings(\n cart: Readonly,\n actionContext: IActionContext,\n input: {\n cartLineToAdd: CartLine;\n availableQuantity?: number;\n enableStockCheck?: boolean;\n isAddServiceItemToCart?: boolean;\n }[]\n): Promise {\n if (!cart.CartLines) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n const maxQuantityForCartLineItem: number | undefined = actionContext.requestContext.app.config.maxQuantityForCartLineItem;\n\n for (const inputItem of input) {\n const quantityLimit: number = getQuantityLimit(maxQuantityForCartLineItem, {\n cartLineToAdd: inputItem.cartLineToAdd,\n availableQuantity: inputItem.availableQuantity,\n shouldEnableStockCheck: inputItem.enableStockCheck,\n isAddServiceItemToCart: inputItem.isAddServiceItemToCart\n });\n const elementFoundAt: number = getElementIndex(cart.CartLines, inputItem.cartLineToAdd);\n\n if (!inputItem.isAddServiceItemToCart && elementFoundAt !== -1) {\n const cartLineToUpdate = { ...cart.CartLines[elementFoundAt] };\n const currentQuantity = cartLineToUpdate.Quantity || 0;\n\n if (currentQuantity + (inputItem.cartLineToAdd.Quantity || 1) > quantityLimit) {\n return {\n cart: {\n Id: cart.Id,\n CartLines: cart.CartLines\n },\n status: 'FAILED',\n substatus: 'MAXQUANTITY'\n };\n }\n }\n\n if (\n !inputItem.isAddServiceItemToCart &&\n inputItem.cartLineToAdd &&\n inputItem.cartLineToAdd.Quantity &&\n inputItem.cartLineToAdd.Quantity > quantityLimit\n ) {\n return {\n cart: {\n Id: cart.Id,\n CartLines: cart.CartLines\n },\n status: 'FAILED',\n substatus: 'MAXQUANTITY'\n };\n }\n }\n\n const newCartLines = input.map(inputItem => {\n const cartLine = { ...inputItem.cartLineToAdd };\n cartLine.Quantity = cartLine.Quantity || 1;\n return cartLine;\n });\n let cartActionResult: ICartActionResultWithCart;\n\n if (cart.Version) {\n return addCartLinesAsync({ callerContext: actionContext }, cart.Id, newCartLines, cart.Version)\n .then(newCart => {\n cartActionResult = { cart: newCart, status: 'SUCCESS', substatus: 'PRODUCTADDED' };\n return cartActionResult;\n })\n .catch(error => {\n actionContext.telemetry.trace(error);\n actionContext.telemetry.trace('Unable to add Cart Line');\n\n const hasInvoiceInCart = cart.CartLines?.find(cartline => cartline.IsInvoiceLine === true);\n if (hasInvoiceInCart) {\n cartActionResult = {\n cart: undefined,\n status: 'FAILED',\n substatus: 'INVOICEINCART',\n errorDetails: { LocalizedMessage: error.message }\n };\n return cartActionResult;\n }\n\n cartActionResult = {\n cart: undefined,\n status: 'FAILED',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n errorDetails: { LocalizedMessage: error.message },\n validationResults: error.data?.ValidationResults\n };\n return cartActionResult;\n });\n }\n actionContext.telemetry.warning('Unable to update Cart Line, Cart Version could not be found');\n\n cartActionResult = { cart: undefined, status: 'FAILED', substatus: 'NOCARTVERSION' };\n return cartActionResult;\n}\n\n/**\n * Add products to cart without site settings validation.\n * @param cart - The cart.\n * @param actionContext - The action context.\n * @param input - The cart lines to add.\n * @returns The results.\n */\nasync function addProductsToCartWithoutSiteSettings(\n cart: Readonly,\n actionContext: IActionContext,\n input: {\n cartLineToAdd: CartLine;\n }[]\n): Promise {\n if (!cart.CartLines) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n const defaultQuantity = 1;\n const newCartLines = input.map(inputItem => {\n const cartLine = { ...inputItem.cartLineToAdd };\n cartLine.Quantity = cartLine.Quantity ?? defaultQuantity;\n return cartLine;\n });\n let addCartLinesResult: ICartActionResultWithCart;\n\n if (cart.Version) {\n return addCartLinesAsync({ callerContext: actionContext }, cart.Id, newCartLines, cart.Version)\n .then(newCart => {\n addCartLinesResult = { cart: newCart, status: 'SUCCESS', substatus: 'PRODUCTADDED' };\n return addCartLinesResult;\n })\n .catch(error => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- existing error type.\n actionContext.telemetry.trace(error);\n actionContext.telemetry.trace('Unable to add cart lines');\n\n addCartLinesResult = {\n cart: undefined,\n status: 'FAILED',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n errorDetails: { LocalizedMessage: error.message },\n validationResults: error.data?.ValidationResults\n };\n return addCartLinesResult;\n });\n }\n\n actionContext.telemetry.warning('Unable to update cart lines, cart version could not be found');\n\n addCartLinesResult = { cart: undefined, status: 'FAILED', substatus: 'NOCARTVERSION' };\n return addCartLinesResult;\n}\n\nexport async function addProductsToCartInternal(\n cart: Readonly,\n actionContext: IActionContext,\n input: {\n cartLineToAdd: CartLine;\n availableQuantity?: number;\n isStockCheckEnabled?: boolean;\n isAddServiceItemToCart?: boolean;\n }[]\n): Promise {\n return addProductsToCartWithoutSiteSettings(cart, actionContext, input);\n}\n\nexport async function addProductToCartInternal(\n cart: Readonly,\n cartLineToAdd: CartLine,\n actionContext: IActionContext,\n orderQuantityLimitsFeatureIsEnabled: boolean,\n availableQuantity?: number,\n enableStockCheck?: boolean,\n isAddServiceItemToCart?: boolean,\n isMaxByQuantityValidationFeatureDefined?: boolean,\n shouldSkipSiteSettings?: boolean\n): Promise {\n if (shouldSkipSiteSettings) {\n return addProductsToCartWithoutSiteSettings(cart, actionContext, [{ cartLineToAdd }]);\n }\n\n // Using max from the default order settings if it's defined there and quantity limits feature is enabled.\n // Otherwise use max from site settings or default max 10.\n if (isMaxByQuantityValidationFeatureDefined && orderQuantityLimitsFeatureIsEnabled) {\n return addProductsToCartValidateMaxAgainstDefaultOrderSettings(cart, actionContext, [\n { cartLineToAdd, availableQuantity, enableStockCheck, isAddServiceItemToCart }\n ]);\n }\n return addProductsToCartValidateMaxAgainstSiteSettings(cart, actionContext, [\n { cartLineToAdd, availableQuantity, enableStockCheck, isAddServiceItemToCart }\n ]);\n}\n\nexport default addProductToCartInternal;\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { removeDiscountCodesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { Cart } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ICartActionResultWithCart } from './cart-action-result';\n\nexport default async function removeAllPromoCodes(\n cart: Readonly,\n actionContext: IActionContext\n): Promise {\n if (!cart) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n if (cart.Coupons && cart.Coupons.length > 0) {\n const promoCodes = cart.Coupons.map(coupon => {\n return coupon.Code || '';\n });\n\n return removeDiscountCodesAsync({ callerContext: actionContext }, cart.Id, promoCodes)\n .then(newCart => {\n return { cart: newCart, status: 'SUCCESS' };\n })\n .catch(error => {\n actionContext.telemetry.warning(error);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\n });\n }\n\n return { cart, status: 'SUCCESS' };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { BaseCartState } from '../cart-state/base-cart-state';\nimport { ICartState } from '../state-interfaces/i-cart-state';\nimport createGlobalStateDataAction from './global-state-data-action';\n\nexport default createGlobalStateDataAction('CARTSTATE', BaseCartState);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionsWithAvailabilitiesFull, ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n ProductDimension,\n ProductDimensionAvailabilitySearchCriteria,\n ProductDimensionValue,\n ProductDimensionValueInventoryAvailability,\n ProductsDataActions\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions, generateCacheKey } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { getDimensionValuesFromQuery, getSelectedProductIdFromActionInput } from './utilities/utils';\n\n/**\n * Defines the dimension value type for get dimensions for selected variant data action.\n * Includes old API format for backward compatibility and new API info for availabilities for new logic.\n */\nexport interface IDimensionValueForSelectedVariant extends ProductDimensionValueInventoryAvailability, ProductDimensionValue {}\n\n/**\n * Defines the returned type for get dimensions for selected variant data action.\n * Includes old API format for backward compatibility and new API info for availabilities for new logic.\n */\nexport interface IDimensionForSelectedVariant extends ProductDimensionFull, IProductDimensionsWithAvailabilitiesFull {}\n\n/**\n * Input class for the getDimensionsForSelectedVariant data action.\n */\nexport class GetDimensionsForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public matchingDimensionValues: ProductDimension[];\n\n public catalogId?: number;\n\n private _requestContext?: IRequestContext;\n\n public constructor(\n productId: number,\n channelId: number,\n matchingDimensionValues?: ProductDimension[],\n requestContext?: IRequestContext\n ) {\n this._requestContext = requestContext;\n this.productId = productId;\n this.channelId = channelId;\n this.matchingDimensionValues = matchingDimensionValues || [];\n\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n /**\n * Cache key.\n * @returns String.\n */\n public getCacheKey: () => string = () =>\n generateCacheKey(\n this._requestContext?.apiSettings,\n { key: 'Key', value: 'DimensionsForSelectedVariantInput' },\n { key: 'ProductId', value: this.productId },\n { key: 'ChannelId', value: this.channelId },\n { key: 'CatalogId', value: this.catalogId }\n );\n\n /**\n * Cache object type.\n * @returns String.\n */\n public getCacheObjectType: () => string = () => 'DimensionsForSelectedVariantInput';\n\n /**\n * Cache type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Create input method for the getDimensionsForSelectedVariant data action.\n * @param inputData - The input data passed to the createInput method.\n * @returns - The input for the data action.\n */\nconst createDimensionsForSelectedVariantInput = (inputData: ICreateActionContext>): GetDimensionsForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new GetDimensionsForSelectedVariantInput(\n +productId,\n +inputData.requestContext.apiSettings.channelId,\n getDimensionValuesFromQuery(inputData.requestContext.url.requestUrl),\n inputData.requestContext\n );\n }\n throw new Error('Unable to create DimensionsForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * Converts new API type with availabilities to old API type to preserve backward compatibility.\n * @param dimensions - Dimensions to convert.\n * @returns Dimensions in old API format.\n */\nconst prepareDimensionsDataResult = (dimensions: IProductDimensionsWithAvailabilitiesFull[]): IDimensionForSelectedVariant[] => {\n return dimensions.map(newDimension => {\n const oldDimension: IDimensionForSelectedVariant = { ...newDimension };\n oldDimension.DimensionValues = ArrayExtensions.validValues(\n newDimension.dimensionValuesWithInventory?.map(value => value.DimensionValue)\n );\n return oldDimension;\n });\n};\n\n/**\n * Action Method for the getDimensionsForSelectedVariant Data Action.\n * @param input - Input for the data action.\n * @param context - Action context.\n * @returns Product dimensions with availability.\n */\nexport async function getDimensionsForSelectedVariantAction(\n input: GetDimensionsForSelectedVariantInput,\n context: IActionContext\n): Promise {\n const activeProducts = ArrayExtensions.validValues(\n await ProductsDataActions.getByIdsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n input.channelId,\n [input.productId],\n null,\n input.catalogId ?? 0\n )\n );\n\n if (!ArrayExtensions.hasElements(activeProducts)) {\n return [];\n }\n\n const activeProduct = activeProducts[0];\n\n if (!ArrayExtensions.hasElements(activeProduct.Dimensions)) {\n return [];\n }\n\n const promises = activeProduct.Dimensions.map(dimension => {\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\n\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\n MatchingDimensionValues: input.matchingDimensionValues\n .filter(item => item.DimensionTypeValue !== dimension.DimensionTypeValue)\n .map(productDimension => {\n return {\n DimensionTypeValue: productDimension.DimensionTypeValue,\n DimensionValue: {\n RecordId: productDimension.DimensionValue?.RecordId!,\n Value: productDimension.DimensionValue?.Value\n }\n };\n }),\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue,\n CatalogId: input.catalogId\n };\n\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n activeProduct.MasterProductId ? activeProduct.MasterProductId : activeProduct.RecordId,\n searchCriteria\n );\n const fullDimensionPromise = dimensionValuesPromise.then(dimensionValues => {\n const fullDimension: IProductDimensionsWithAvailabilitiesFull = {\n ...dimension,\n dimensionValuesWithInventory: dimensionValues\n };\n return fullDimension;\n });\n\n return fullDimensionPromise;\n });\n\n const dimensionValuesResults = await Promise.all(promises);\n\n return prepareDimensionsDataResult(dimensionValuesResults);\n}\n\n/**\n * The GetDimensionsForSelectedVariantDataAction\n * Get the currently selected Variant via the getSelectedVariant data action, and the gets the\n * available product dimensions for the variant via the getDimensionValues RetailServer API.\n */\nexport const getDimensionsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-dimensions/for-selected-variant',\n action: getDimensionsForSelectedVariantAction as IAction,\n input: createDimensionsForSelectedVariantInput\n});\n\nexport default getDimensionsForSelectedVariantActionDataAction;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductRefinerHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { IQueryResultSettings, ProductRefiner, ProductSearchCriteria } from '@msdyn365-commerce/retail-proxy';\nimport { getProductSearchRefinersAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\n/**\n * Uses Bulk refiner API to get refiners and child refiner values.\n * @param searchCriteria Product search criteria.\n * @param maxItems Max items.\n * @param queryResultSettings\n * @param ctx Action context.\n */\nexport async function getProductRefinerHierarchy(\n searchCriteria: ProductSearchCriteria,\n queryResultSettings: IQueryResultSettings,\n ctx: IActionContext\n): Promise {\n return getProductSearchRefinersAsync({ callerContext: ctx, queryResultSettings }, searchCriteria).then(\n (productRefiners: ProductRefiner[]) => {\n if (!productRefiners) {\n ctx.trace('[getRefinersByCriteriaAction] returned no refiners');\n return [];\n }\n\n const result = (productRefiners || []).map((productRefiner: ProductRefiner) => productRefiner);\n\n if (result.length === 0) {\n ctx.trace('[getRefinersByCriteriaAction] returned no IProductRefinerHierarchy objects');\n return [];\n }\n\n return result;\n }\n );\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\nimport { copyAsync, readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\n\nimport { getCartState } from './get-cart-state';\n\n/**\n * Input class for getCheckoutCart data action.\n */\nexport class GetCheckoutCartInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => `CheckoutCart-ChannelId:${this.apiSettings.channelId}-ApiSettingsCatalogId:${this.apiSettings.catalogId}`;\n\n public getCacheObjectType = () => 'CheckoutCart';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\nenum CartTokenPrefix {\n Auth = 't',\n Anon = 'p'\n}\n\nconst createInput = (inputData: ICreateActionContext) => {\n return new GetCheckoutCartInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * Data action to copy the cart for checkout actions.\n * @param input\n * @param ctx\n */\nexport async function getCheckoutCart(input: GetCheckoutCartInput, ctx: IActionContext): Promise {\n const savedCheckoutCartId = ctx.requestContext.cookies.getCheckoutCartCookie();\n const cartCookieParts: string[] = savedCheckoutCartId.split(':');\n let checkoutCartId = null;\n const isAuthenticated = ctx.requestContext.user.isAuthenticated;\n\n if (\n (isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Auth) ||\n (!isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Anon)\n ) {\n checkoutCartId = cartCookieParts[1];\n }\n\n let checkoutCart: Cart | undefined;\n\n if (checkoutCartId) {\n try {\n checkoutCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, checkoutCartId);\n } catch (error) {\n ctx.telemetry.error('Error getting checkout cart based on saved checkout card id');\n ctx.telemetry.exception(error);\n }\n }\n\n const cartState = await getCartState(ctx);\n if (cartState && cartState.cart.Id !== undefined) {\n if (checkoutCart && checkoutCart.Version && cartState.cart.Version && checkoutCart.Version > cartState.cart.Version) {\n return Promise.resolve(checkoutCart);\n }\n\n return copyAsync({ callerContext: ctx }, cartState.cart.Id, 2)\n .then(cart => {\n ctx.requestContext.cookies.setCheckoutCartCookie(cart, isAuthenticated);\n return cart;\n })\n .catch(error => {\n ctx.telemetry.error('Error copying cart');\n ctx.telemetry.exception(error);\n return undefined;\n });\n }\n\n return undefined;\n}\n\nexport const getCheckoutCartDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/global-state/get-checkout-cart',\n action: >getCheckoutCart,\n input: createInput\n});\n\nexport default getCheckoutCartDataAction;\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PromiseBodyWrapper } from './base-promise-queue';\nimport { PromiseQueue } from './promise-queue';\n\nexport enum FinitePromiseQueueError {\n InvalidMaxQueueLengthPassed = 'Invalid maxQueueLength value passed to FinitePromiseQueue. maxQueueLength should be more or equal to 2.',\n ProcessWasDiscardedFromTheQueue = 'The process was discarded from FinitePromiseQueue.'\n}\n\n/**\n * Represents a FIFO queue over promises with a limited number of elements waiting for execution.\n * @remark\n * In case the queue reaches the limit,\n * before adding a new element the queue discards the oldest added element which is waiting to be processed.\n * Does not discard elements which are in progress under execution.\n * The discarded element will not be processed and executed.\n * @author Bohdan Yevchenko \n */\nexport class FinitePromiseQueue extends PromiseQueue {\n /**\n * @see constructor\n */\n private readonly _maxQueueLength: number;\n\n /**\n * Initializes the queue with the given limit.\n * @param {number} maxQueueLength\n * Defines the limit of maximum number of elements in the queue.\n * @remarks Includes both the number of elements waiting for the execution\n * and the element processed by the queue at the moment (in case there is some).\n * Value can't be less than 2.\n */\n public constructor(maxQueueLength: number) {\n if (maxQueueLength < 2) {\n throw new Error(FinitePromiseQueueError.InvalidMaxQueueLengthPassed);\n }\n\n super();\n this._maxQueueLength = maxQueueLength;\n }\n\n /**\n * Adds promise to the queue and automatically starts the queue execution.\n * @remarks In case the queue has reached the limit, also discards the oldest added element.\n * @param {PromiseBodyWrapper} promiseBody\n * The body of a function which contains a call to the promise which has to be executed in the queue.\n */\n public async enqueue(promiseBody: PromiseBodyWrapper): Promise {\n let totalElementsCount = this._queue.length;\n\n // If queue hasn't finished processing an element,\n // consider this element as pending.\n if (this._isBusy) {\n ++totalElementsCount;\n }\n\n // Discards the oldest added element from the queue to meet the given limitations.\n // The very first element in the queue is considered as oldest added.\n // Can't discard the element which is under execution as the promise can't be cancelled.\n if (totalElementsCount === this._maxQueueLength) {\n const element = this._queue.shift();\n if (element) {\n element.reject(FinitePromiseQueueError.ProcessWasDiscardedFromTheQueue);\n }\n }\n\n return super.enqueue(promiseBody);\n }\n}\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionInput } from '@msdyn365-commerce/core';\n\n/**\n * ReviewsGetRatingsSummary Input Action.\n */\nexport class GetRatingsSummaryInput implements IActionInput {\n /**\n * The Id representing the product to get the ratings for.\n */\n public productId: string;\n\n /**\n * The ID representing the tenant.\n */\n public tenantId: string;\n\n /**\n * The ratings and reviews service endpoint.\n */\n public serviceEndpoint: string;\n\n constructor(productId: string, tenantId: string, serviceEndpoint: string) {\n this.productId = productId;\n this.tenantId = tenantId;\n this.serviceEndpoint = serviceEndpoint;\n }\n\n // RnR does not use RS endpoint, so shouldn't use buildCacheKey\n public getCacheKey = () => `${this.productId}-${this.tenantId}`;\n\n public getCacheObjectType = () => 'RatingsSummary';\n\n public dataCacheType = (): CacheType => 'application';\n}\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\n\nexport declare type GlobalStateStatus = 'READY' | 'UPDATING' | 'ERROR';\n\nexport type GlobalStateConstructor = new (actionContext: IActionContext) => T;\n\nexport function createGlobalState(ctor: GlobalStateConstructor, actionContext: IActionContext): T {\n return new ctor(actionContext);\n}\n\nexport interface IGlobalState {\n readonly status: GlobalStateStatus;\n\n initialize(): Promise;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ProductDeliveryOptions, ProductsDataActions } from '@msdyn365-commerce/retail-proxy';\n\nimport { ActiveCartProductsInput, buildCacheKey, getActiveCartProductsAction } from '.';\nimport { ArrayExtensions } from './utilities';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Input class for pickup delivery options for items in cart.\n */\nexport class ProductPickUpOptionsForCartLineItems implements IActionInput {\n public readonly apiSettings: ICommerceApiSettings;\n\n public constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n public getCacheKey = (): string => buildCacheKey('ActiveCartLineItemsPickUpOptions', this.apiSettings);\n\n /**\n * Get Cachetype Name.\n * @returns - Cache name string.\n */\n public getCacheObjectType = (): string => 'ActiveCartLineItemsPickUpOptions';\n\n /**\n * Get Cachetype.\n * @returns - CacheType enum.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CreateInput method for the GetPickUpOptionCartLineItems method.\n * @param inputData - The input data passed to the createInput method.\n * @returns - Input for data action.\n */\nconst createInput = (inputData: ICreateActionContext>) => {\n return new ProductPickUpOptionsForCartLineItems(inputData.requestContext.apiSettings);\n};\n\n/**\n * The action method for the GetPickUpOptionCartLineItems data action.\n * @param input - The action input.\n * @param context - The action context.\n * @returns - Order Template object.\n */\nexport async function getPickUpOptionsForCartLineItems(\n input: ProductPickUpOptionsForCartLineItems,\n context: IActionContext\n): Promise {\n // If no input is provided fail out\n if (!input.apiSettings.channelId) {\n throw new Error('[getPickUpOptionsForCartLineItems]No valid Input was provided, failing');\n }\n const cartState = await getCartState(context);\n const cart = cartState.cart;\n const products = await getActiveCartProductsAction(new ActiveCartProductsInput(), context);\n const filterOption = 4;\n const response: ProductDeliveryOptions[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- existing code.\n if (cart === undefined || !ArrayExtensions.hasElements(products)) {\n return Promise.resolve(response);\n }\n\n const pickupoptions = await ProductsDataActions.getDeliveryOptionsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n products.map(product => product.RecordId),\n {},\n filterOption\n );\n\n return pickupoptions;\n}\n\n/**\n * The GetPickupOptionCartLineItems Data Action\n * Returns pickup options.\n */\nexport const getPickUpOptionsForCartLineItemsDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-pickup-options-for-cartlines',\n action: getPickUpOptionsForCartLineItems as IAction,\n input: createInput\n});\n\nexport default getPickUpOptionsForCartLineItemsDataAction;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.35.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.35.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './global-state';\nexport * from './i-action-result';\nexport * from './i-global-state';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { updateLineDeliverySpecificationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { Cart, LineDeliverySpecification } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ICartActionResultWithCart } from './cart-action-result';\n\nexport default async function updateCartLineDeliverySpecificationsInternal(\n cart: Readonly,\n cartLineDeliverySpecifications: LineDeliverySpecification[],\n actionContext: IActionContext\n): Promise {\n if (!cart || !cart.CartLines || cartLineDeliverySpecifications.length === 0) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n return updateLineDeliverySpecificationsAsync({ callerContext: actionContext }, cart.Id, cartLineDeliverySpecifications)\n .then(newCart => {\n return { cart: newCart, status: 'SUCCESS' };\n })\n .catch(error => {\n actionContext.telemetry.warning(error);\n actionContext.telemetry.debug('Unable to updateLineDeliverySpecificationsAsync');\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- existing error type.\n return { cart: undefined, status: 'FAILED', errorDetails: { LocalizedMessage: error.message } };\n });\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable } from 'mobx';\nimport { IODataMetadata } from './interfaces/IODataMetadata';\n\nexport type AsyncResultStatus = 'LOADING' | 'SUCCESS' | 'FAILED';\n\nexport const isAsyncResult = (item: { toString(): string }): item is AsyncResult => {\n return item && item.toString && typeof item.toString === 'function' && item.toString() === `[object AsyncResult]`;\n};\n\n/**\n * Utility Methods For AsyncResult\n */\nconst isThenable = (obj: any) => obj && typeof obj === 'object' && typeof obj.then === 'function';\n\n/**\n * TYPES & INTERFACES\n */\ninterface IHandler {\n onSuccess: HandlerOnSuccess;\n onFail: HandlerOnFail;\n}\n\ntype HandlerOnSuccess = (value: TIn) => TOut | PromiseLike;\ntype HandlerOnFail = (reason: any) => TOut | PromiseLike;\n\ntype Resolve = (value?: T | PromiseLike) => void;\ntype Reject = (value?: any) => void;\n\n/**\n * AsyncResult Class\n * Promise-style class which allows for observation of the status of the promise\n * and it's result during and after is execution.\n */\nexport class AsyncResult implements Promise {\n @observable public result?: T;\n\n @observable public status: AsyncResultStatus = 'LOADING';\n\n @observable public error?: Error;\n\n @observable public metadata: IODataMetadata = {};\n\n private _type: string = 'AsyncResult';\n\n public getType(): string {\n return this._type;\n }\n\n private _handlers: Array> = [];\n\n public static resolve(value?: U | PromiseLike): AsyncResult {\n return new AsyncResult(resolve => {\n return resolve(value);\n });\n }\n\n public static reject(reason?: any): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n return reject(reason);\n });\n }\n\n /**\n * Class constructor, which starts running the passed executor\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n constructor(executor: (resolve: Resolve, reject: Reject) => void) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method that allows for an executor to be passed to the promise after inital execution,\n * essentially \"rerunning\" the promise.\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n public run(executor: (resolve: Resolve, reject: Reject) => void): void {\n this.status = 'LOADING';\n this.error = undefined;\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method which allows chaining of callbacks to the end of a fully executed AsyncResult\n * @param onSuccess Callback to be run on successful completion of executor\n * @param onFail Callback to be run when executor cannot be successfully completed\n */\n public then(\n onSuccess?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n onFail?: ((reason: any) => TResult2 | PromiseLike) | undefined | null\n ): AsyncResult {\n const asyncResult = new AsyncResult((resolve, reject) => {\n return this._attachHandler({\n onSuccess: result => {\n if (!onSuccess) {\n return resolve(result as any);\n }\n\n try {\n return resolve(onSuccess(result));\n } catch (e) {\n return reject(e);\n }\n },\n onFail: reason => {\n if (!onFail) {\n return reject(reason);\n }\n\n try {\n return resolve(onFail(reason));\n } catch (e) {\n return reject(e);\n }\n }\n });\n });\n\n // Always pass the metadata on a then\n asyncResult.metadata = this.metadata;\n\n return asyncResult;\n }\n\n /**\n * Hook to allow callback on the unsuccessful run of an executor\n * @param onFail Callback to run when executor fails\n */\n public catch(onFail?: ((reason: any) => TResult | PromiseLike) | undefined | null): AsyncResult {\n const defaultThen = (value: any) => value;\n return this.then(defaultThen, onFail);\n }\n\n /**\n * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n * @param callback Callback to be run after original AsyncResult is completed\n */\n public finally(onfinally?: (() => void) | undefined | null): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n let value: T | any;\n let failed: Boolean = false;\n\n return this.then(\n result => {\n value = result;\n return onfinally();\n },\n reason => {\n failed = true;\n value = reason;\n return onfinally();\n }\n ).then(() => {\n if (failed) {\n return reject(value);\n }\n\n return resolve(value);\n });\n });\n }\n\n public toString(): string {\n return `[object AsyncResult]`;\n }\n\n get [Symbol.toStringTag](): string {\n return '[object AsyncResult]';\n }\n\n private _attachHandler = (handler: IHandler) => {\n this._handlers.push(handler);\n\n this._executeHandlers();\n };\n\n private _executeHandlers = () => {\n if (this.status === 'LOADING') {\n return;\n }\n\n for (const handler of this._handlers) {\n if (this.status === 'FAILED') {\n handler.onFail(this.error);\n } else {\n handler.onSuccess(this.result as T);\n }\n }\n\n this._handlers = [];\n };\n\n private _resolve = (value?: T | PromiseLike) => {\n return this._updateStatus(value, 'SUCCESS');\n };\n\n private _reject = (reason: any) => {\n return this._updateStatus(reason, 'FAILED', true);\n };\n\n private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n // Wrap in setTimeout to ensure fully synchronous handlers\n // are still returned AFTER initial class construction\n setTimeout(() => {\n if (this.status !== 'LOADING') {\n return null;\n }\n\n if (isThenable(result)) {\n return (result as PromiseLike).then(this._resolve, this._reject);\n }\n\n if (isError) {\n this.error = result;\n } else {\n this.result = result;\n }\n\n this.status = newStatus;\n\n return this._executeHandlers();\n }, 0);\n }\n}\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","/**\n* Copyright (c) 2018 Microsoft Corporation\n* Modules Registration\n* THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\n*/\n\nexport const componentDictionary = {};\n\ncomponentDictionary['__local__|__local__|themes|connselmer|views|components|price'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-price' */\n 'partner/themes/connselmer/views/components/price.component.tsx'),\n cn: '__local__-__local__-price'\n };\ncomponentDictionary['__local__|__local__|themes|connselmer|views|components|product'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-product' */\n 'partner/themes/connselmer/views/components/product.component.tsx'),\n cn: '__local__-__local__-product'\n };\ncomponentDictionary['__local__|__local__|themes|connselmer2|views|components|price'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-price' */\n 'partner/themes/connselmer2/views/components/price.component.tsx'),\n cn: '__local__-__local__-price'\n };\ncomponentDictionary['__local__|__local__|themes|connselmer2|views|components|product'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-product' */\n 'partner/themes/connselmer2/views/components/product.component.tsx'),\n cn: '__local__-__local__-product'\n };\ncomponentDictionary['__local__|__local__|themes|leblanc|views|components|price'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-price' */\n 'partner/themes/leblanc/views/components/price.component.tsx'),\n cn: '__local__-__local__-price'\n };\ncomponentDictionary['__local__|__local__|themes|leblanc|views|components|product'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-product' */\n 'partner/themes/leblanc/views/components/product.component.tsx'),\n cn: '__local__-__local__-product'\n };\ncomponentDictionary['__local__|__local__|themes|leblanc|views|product'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-product' */\n 'partner/themes/leblanc/views/product.component.tsx'),\n cn: '__local__-__local__-product'\n };\ncomponentDictionary['@msdyn365-commerce-modules|fabrikam-design-kit|modules|fabrikam|views|components|cartlineitem'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-fabrikam-design-kit-cartlineitem' */\n '@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/components/cartlineitem.component.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-cartlineitem'\n };\ncomponentDictionary['@msdyn365-commerce-modules|fabrikam-design-kit|modules|fabrikam|views|components|promocode'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-fabrikam-design-kit-promocode' */\n '@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/components/promocode.component.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-promocode'\n };\ncomponentDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|components|carticon'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-carticon' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/components/carticon.component.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-carticon'\n };\ncomponentDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|components|cartlineitem'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-cartlineitem' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/components/cartlineitem.component.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-cartlineitem'\n };\ncomponentDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|components|product-v2'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-product-v2' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/components/product-v2.component.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-product-v2'\n };\ncomponentDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|components|product'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-product' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/components/product.component.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-product'\n };\ncomponentDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|components|promocode'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-promocode' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/components/promocode.component.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-promocode'\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nexport * from './IProductList';\nexport * from './IAddCartLinesParam';\nexport * from './IRemoveCartLinesParam';\nexport * from './IUpdateCartLinesParam';\n","/*******************************************************************************\n* Copyright (c) Microsoft Corporation.\n* All rights reserved. See LICENSE in the project root for license information.\n*******************************************************************************/\n\n\nimport { uniq } from 'lodash';\n/**\n * Gets list of used module types.\n */\nexport const getRequestedModules = windowInitialData => {\n let result = {\n modules: []\n };\n\n if (!windowInitialData._moduleList || windowInitialData._moduleList.length === 0) {\n return result;\n }\n windowInitialData._moduleList.forEach(moduleType => {\n result.modules.push(moduleType.typeName);\n });\n\n // Include requested theme modules\n if (windowInitialData._themeModulesList && windowInitialData._themeModulesList.length > 0) {\n result.modules = result.modules.concat(result.modules, windowInitialData._themeModulesList);\n }\n\n return result;\n};\n\n/**\n * Gets list of modules on the page\n */\nexport const getRequestedModuleNames = () => {\n const requestedPackageNames = new Set();\n window.___initialData___ &&\n window.___initialData___._moduleList &&\n window.___initialData___._moduleList.map(m => requestedPackageNames.add(m.typeName));\n window.___initialData___ &&\n window.___initialData___._themeModulesList &&\n window.___initialData___._themeModulesList.map(m => m && requestedPackageNames.add(m));\n return Array.from(requestedPackageNames);\n};\n\n/**\n * Gets keys for used assets (modules) that were utilized on the server-side render pass. Object is\n * initialized from the page viewmodel used to initialize the clientRenderer\n */\nexport const getUniqueRequestedAssets = windowInitialData => {\n let result = {\n modules: []\n };\n if (!windowInitialData) {\n return result;\n }\n\n try {\n result = getRequestedModules(windowInitialData);\n } catch (e) {\n console.error(e);\n }\n\n return {\n modules: uniq(result.modules)\n };\n};\n\n/**\n * Checks if we have that key in the requested asset keys. If so, we'll allow the value and register the\n * databinder, module, or reducer (reducers reference 'key', databinders & modules use 'name'). If we don't receive\n * a set of keys at all, then register everything\n * @param {string[]} requestedAssetKeys The valid & incldued modules\n * @returns {Function} Returns function with signature of \"(string) => boolean\"\n */\n\nexport const filterToUsedAssets = requestedAssetKeys => {\n // curry!\n return partnerModule => (!requestedAssetKeys ? true : requestedAssetKeys.indexOf(partnerModule.name || partnerModule.key) !== -1);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput, IMSDyn365Window, TelemetryEvent } from '@msdyn365-commerce/core';\nimport { Cart, CartLine, IDataServiceRequest, IRemoveCartLinesParam } from '@msdyn365-commerce/retail-proxy';\nimport { IProductInfo, IProductTransaction } from '@msdyn365-commerce/telemetry-internal';\nimport { getProductInfoFromCartLinesAsync } from './telemetry.action.helper';\n\ndeclare let window: IMSDyn365Window;\n\n/**\n * Saves info on cart lines removed before calling data action\n * @param inputs Data action inputs\n * @param actionContext Action context\n */\nconst beforeRemoveFromCart = async (inputs: IActionInput | IActionInput[], actionContext: IActionContext) => {\n try {\n const actionInput = Array.isArray(inputs) ? inputs[0] : inputs;\n\n // If cart lines were removed\n if (actionInput.queryParams && typeof actionInput.queryParams === 'function') {\n const removeCartLinesParams = actionInput.queryParams();\n if (removeCartLinesParams && removeCartLinesParams.cartLineIds) {\n // Save info on removed cart lines for post data action hook to pick up\n actionContext.requestContext.telemetryData.removedCartLineIds = removeCartLinesParams.cartLineIds;\n return;\n }\n }\n actionContext.telemetry.debug('RemoveFromCart pre-data action hook failed - No removed cart lines found');\n } catch (e) {\n actionContext.telemetry.debug('RemoveFromCart pre-data action hook failed.', e);\n }\n};\n\n/**\n * Fires a RemoveFromCart event after RemoveCartLines data action completed\n * @param _inputs Data action inputs\n * @param cart New cart object after cart lines have been removed\n * @param actionContext Action context\n */\nconst afterRemoveFromCart = async (_inputs: IActionInput | IActionInput[], cart: Cart | Cart[], actionContext: IActionContext) => {\n if (window && window._msdyn365 && window._msdyn365.telemetry) {\n const cartObject = Array.isArray(cart) ? cart[0] : cart;\n const removeCartLineIds = actionContext.requestContext.telemetryData.removedCartLineIds;\n const activeCart = actionContext.requestContext.telemetryData.activeCart;\n const productTransaction = actionContext.requestContext.telemetryData[TelemetryEvent.Purchase];\n const removedCartLines: CartLine[] = [];\n let removedProducts: IProductInfo[] = [];\n\n // Collect info on products removed from cart\n if (removeCartLineIds && activeCart && activeCart.CartLines) {\n activeCart.CartLines.forEach((cartLine: CartLine) => {\n if (\n cartLine.ProductId &&\n removeCartLineIds.indexOf(cartLine.LineId ? cartLine.LineId : '') !== -1 &&\n !(\n productTransaction &&\n productTransaction.products &&\n productTransaction.products.some(product => +product.productSku === cartLine.ProductId)\n )\n ) {\n removedCartLines.push(cartLine);\n }\n });\n\n if (removedCartLines.length > 0) {\n try {\n removedProducts = await getProductInfoFromCartLinesAsync(removedCartLines, actionContext);\n } catch (error) {\n actionContext.telemetry.error('RemoveCartLines post-data action hook failed to process cart lines.', error);\n }\n }\n }\n\n // Fire RemoveFromCart event if cart lines were removed\n if (removedCartLines && removedCartLines.length > 0) {\n window._msdyn365.telemetry.logEvent(TelemetryEvent.RemoveFromCart, {\n cartId: cartObject.Id,\n cartVersion: cartObject.Version ? cartObject.Version.toString() : '',\n products: removedProducts,\n orderId: cartObject.OrderNumber ? cartObject.OrderNumber.toString() : ''\n });\n } else {\n actionContext.telemetry.debug('No RemoveFromCart event fired, no removed cart lines found');\n }\n }\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Carts/RemoveCartLines',\n postReaderHook: afterRemoveFromCart,\n preReaderHook: beforeRemoveFromCart\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from 'react-contenteditable';\n\nexport * from './helper';\nexport * from './http-service';\nexport * from './culture-info-formatter';\nexport * from './dynamic-import-extensions';\nexport * from './ImageResizerHelper';\nexport * from './page-type-url-builder';\nexport * from './parameterize';\nexport * from './get-richtext-html';\nexport * from './text';\nexport * from './video';\nexport * from './link';\nexport * from './links';\nexport * from './editable-fields/editable-field';\nexport * from './editable-fields/edit-errors';\nexport { isEditorialMode } from './editable-fields/utils';\nexport * from './version-utils';\nexport * from './request-hook';\nexport * from './performance-analyzer-retriever';\nexport { getEditableFieldClassName } from './editable-fields/utils';\nexport { ContentEditableEvent };\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICoreContext } from '@msdyn365-commerce/core';\nimport { ProductDimensionType, ProductDimensionValueInventoryAvailability, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\n\nimport {\n getDimensionAvailabilitiesForProductsAction,\n ProductsDimensionAvailabilitiesInput\n} from './get-dimension-availabilities-for-products';\nimport {\n ArrayExtensions,\n checkIfShouldDisplayAsSwatch,\n DimensionTypes,\n DimensionSwatchDisplayTypes,\n getInventoryLevelCodeFromDimensionValue,\n IDimensionsApp,\n InventoryLevelValues\n} from './utilities';\n\n/**\n * Input class for the GetDimensionAvailabilitiesForProductSearchResult Data Action.\n */\nexport class DimensionAvailabilitiesForProductSearchResultInput implements IActionInput {\n public products: ProductSearchResult[];\n\n public dimensionContext: ICoreContext;\n\n public displayType: DimensionSwatchDisplayTypes | undefined;\n\n public constructor(\n products: ProductSearchResult[],\n dimensionContext: ICoreContext,\n displayType?: DimensionSwatchDisplayTypes\n ) {\n this.products = products;\n this.dimensionContext = dimensionContext;\n this.displayType = displayType;\n }\n\n /**\n * Get the cache key.\n * @returns The cache key.\n */\n public getCacheKey = (): string =>\n `DimensionAvailabilitiesForProductSearchResult:${this.products.map(product => product.RecordId).join('-')}`;\n\n /**\n * Get the cache object type.\n * @returns The cache object type.\n */\n public getCacheObjectType = (): string => 'ProductDimensionValueInventoryAvailability';\n\n /**\n * Define the data cache type.\n * @returns The cache type.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * The createInput method for the GetDimensionAvailabilitiesForProductSearchResultDataAction.\n * @param products -- The product search result.\n * @param dimensionContext -- The dimension app context.\n * @returns The input.\n */\nexport const createDimensionAvailabilitiesForProductSearchResultInput = (\n products: ProductSearchResult[],\n dimensionContext: ICoreContext\n): DimensionAvailabilitiesForProductSearchResultInput => {\n return new DimensionAvailabilitiesForProductSearchResultInput(products, dimensionContext);\n};\n\n/**\n * The Action Method for the GetDimensionAvailabilitiesForProductSearchResultInput Data Action\n * Gets the active price for product search result via the getDimensionAvailabilitiesForProduct API.\n * @param input -- The data input.\n * @param context -- The core context.\n * @returns The ProductsDimensionsAvailabilities.\n */\nexport async function getDimensionAvailabilitiesForProductSearchResultAction(\n input: DimensionAvailabilitiesForProductSearchResultInput,\n context: IActionContext\n): Promise {\n const products = input.products;\n const productsDimensionInputs: ProductsDimensionAvailabilitiesInput[] = [];\n const inventoryLevel = input.dimensionContext.app.config.inventoryLevel;\n const displayType = input.displayType;\n\n for (const product of products) {\n const filteredProductAttributes = product.AttributeValues?.filter(attributeValue => {\n return checkIfShouldDisplayAsSwatch(\n (attributeValue.Name?.toLocaleLowerCase() ?? '') as DimensionTypes,\n input.dimensionContext,\n displayType\n );\n });\n\n if (ArrayExtensions.hasElements(filteredProductAttributes)) {\n const productionDimensionTypes: ProductDimensionType[] = [];\n for (const attributeValue of filteredProductAttributes) {\n if (attributeValue.Name) {\n const productionDimensionType: ProductDimensionType =\n ProductDimensionType[attributeValue.Name as keyof typeof ProductDimensionType];\n productionDimensionTypes.push(productionDimensionType);\n }\n }\n if (ArrayExtensions.hasElements(productionDimensionTypes)) {\n productsDimensionInputs.push(\n new ProductsDimensionAvailabilitiesInput(\n product.MasterProductId ?? product.RecordId,\n undefined,\n context.requestContext,\n productionDimensionTypes\n )\n );\n }\n }\n }\n\n if (!ArrayExtensions.hasElements(productsDimensionInputs)) {\n return Promise.resolve([]);\n }\n\n try {\n const dimensionForProducts: ProductDimensionValueInventoryAvailability[][] = await getDimensionAvailabilitiesForProductsAction(\n productsDimensionInputs,\n context\n );\n const productsDimensionAvailabilities = productsDimensionInputs.map((dimensionInput, index) => {\n return dimensionForProducts[index].map(dimensionValuesWithInventory => {\n const inventoryLevelCode = getInventoryLevelCodeFromDimensionValue(dimensionValuesWithInventory, inventoryLevel);\n const dimensionValue = dimensionValuesWithInventory.DimensionValue!;\n return {\n value: dimensionValue.Value ?? '',\n isDisabled: inventoryLevelCode === InventoryLevelValues.outOfStock,\n masterProductId: dimensionInput.masterProductId\n };\n });\n });\n\n if (!ArrayExtensions.hasElements(productsDimensionAvailabilities)) {\n context.telemetry.warning('ProductsDimensionAvailabilities is empty');\n return Promise.resolve([]);\n }\n\n return Promise.resolve(productsDimensionAvailabilities);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- existing error.\n context.telemetry.warning(error);\n }\n\n return Promise.resolve([]);\n}\n\n/**\n * The GetDimensionAvailabilitiesForProductSearchResult data action.\n */\nexport const getDimensionAvailabilitiesForProductSearchResultDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-dimension-availabilities-for-product-search-result',\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- existing pattern.\n action: >getDimensionAvailabilitiesForProductSearchResultAction,\n input: createDimensionAvailabilitiesForProductSearchResultInput\n});\n\nexport default getDimensionAvailabilitiesForProductSearchResultDataAction;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from './object-extensions';\n\n/**\n * Namespace which extends enum functionality.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport namespace EnumExtensions {\n /**\n * @description Returns a list of numeric values and enum names for the specified enum.\n * @param enumClass\n * @param {any} value The enum to examine.\n * @returns {(number | string)[]} An array of numeric values and enum names.\n */\n export function getValues(enumClass: any): (number | string)[] {\n if (ObjectExtensions.isNullOrUndefined(enumClass)) {\n return [];\n }\n\n return Object.keys(enumClass).map(item => enumClass[item]);\n }\n\n /**\n * @description Returns a list of enum names for the specified enum.\n * @param enumClass\n * @param {any} value The enum to examine.\n * @returns {(number | string)[]} An array of string values.\n */\n export function getNames(enumClass: any): string[] {\n return getValues(enumClass).filter(ObjectExtensions.isString);\n }\n\n /**\n * @description Returns a list of numeric values for the specified enum.\n * @param enumClass\n * @param {any} value The enum to examine.\n * @returns {number[]} An array of numeric values.\n */\n export function getNumericValues(enumClass: any): number[] {\n return getValues(enumClass).filter(ObjectExtensions.isNumber);\n }\n\n /**\n * @description Returns a list of enum values for the specified enum.\n * @param enumClass\n * @param {any} value The enum to examine.\n * @returns {number[]} An array of enum values.\n */\n export function getEnumValues(enumClass: any): T[] {\n return getNumericValues(enumClass).map(value => value);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from './object-extensions';\n\n/**\n * Namespace which extends string functionality.\n */\nexport namespace StringExtensions {\n /**\n * Checks if string is null, undefined, empty, or whitespace.\n * @param {string | null | undefined} value The string to examine.\n * @returns {boolean} True if it's null, undefined, empty, or whitespace; false otherwise.\n */\n export function isNullOrWhitespace(value: string | null | undefined): boolean {\n return isNullOrEmpty(value) || value!.trim() === '';\n }\n\n /**\n * Checks if string is null, undefined, or empty.\n * @param {string | null | undefined} value The string to examine.\n * @returns {boolean} True if it's null, undefined, empty, or whitespace; false otherwise.\n */\n export function isNullOrEmpty(value: string | null | undefined): boolean {\n if (ObjectExtensions.isNullOrUndefined(value)) {\n return true;\n }\n\n if (!ObjectExtensions.isString(value)) {\n throw new Error('StringExtensions has received a non-string input.');\n }\n\n return value === '';\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { BaseCartState } from '../cart-state/base-cart-state';\nimport getCheckoutCart, { GetCheckoutCartInput } from '../data-actions/get-checkout-cart';\n\n/**\n * Version of BaseCartState that uses the checkout cart.\n */\nexport class BaseCheckoutCartState extends BaseCartState {\n public async initialize(): Promise {\n if (this.isInitialized) {\n return;\n }\n\n const newCart = await getCheckoutCart(new GetCheckoutCartInput(this.actionContext.requestContext.apiSettings), this.actionContext);\n\n if (newCart) {\n this._cart = newCart;\n this._status = 'READY';\n } else {\n this._status = 'ERROR';\n }\n\n this.isInitialized = true;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\nimport { copyAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport Cookie from 'js-cookie';\n\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for getCheckoutCart data action.\n */\nexport class GetCheckoutCartInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('ActiveCheckoutCart', this.apiSettings);\n\n public getCacheObjectType = () => 'ActiveCheckoutCart';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\nconst createInput = (inputData: ICreateActionContext) => {\n return new GetCheckoutCartInput(inputData.requestContext.apiSettings);\n};\n\nconst CartCookieName: string = msdyn365Commerce.CartCookie || 'cart';\n\n/**\n * Data action to copy the cart for checkout actions.\n * @param input\n * @param ctx\n */\nexport async function getCheckoutCart(input: GetCheckoutCartInput, ctx: IActionContext): Promise {\n const cartId = Cookie.get(CartCookieName) || '';\n if (cartId) {\n const currentCartState = await getCartState(ctx);\n const activeCart = currentCartState.cart;\n\n // Check if there is an active cart and it isn't empty\n if (activeCart && Object.keys(activeCart).length > 0) {\n const checkoutCart = await copyAsync({ callerContext: ctx }, activeCart.Id, 2);\n\n if (checkoutCart) {\n return Array.isArray(checkoutCart) ? checkoutCart[0] : checkoutCart;\n }\n } else {\n ctx.trace(\"[get-checkout-cart] Can't create a checkout cart since active cart is empty\");\n }\n }\n\n return {};\n}\n\nexport const getCheckoutCartDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-checkout-cart',\n action: >getCheckoutCart,\n input: createInput\n});\n\nexport default getCheckoutCartDataAction;\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","\n // \n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { DeliveryOption, Affiliation, ReasonCodeLine, DiscountsSearchCriteria, Promotion, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, MediaBlob, CardTypeInfo, CityInfo, CountryRegionInfo, OnlineChannel, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, OfflineTerminalState, NumberSequenceSeedData, ReceiptNumberResetInfo, LoyaltyRewardPointActivity, CurrencyRequest, CurrencyAmount, DiscountCode, DistrictInfo, HardwareStationProfile, HardwareProfile, LocalizedString, OperationPermission, ReasonCode, CommerceProperty, ReportDataSet, IncomeExpenseAccount, StateProvinceInfo, ZipCodeInfo, KitTransaction, LoyaltyCard, LoyaltyCardTransaction, TransactionSearchCriteria, Transaction, GiftCard, NonSalesTransaction, DropAndDeclareTransaction, TaxOverride, CustomerBalances, NameValuePair, LinkToExistingCustomerResult, OfflineSyncStatsLine, Shift, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, PurchaseHistorySearchCriteria, PurchaseHistory, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, VendorSearchCriteria, Vendor, VendorValidationResult, BusinessVerticalsIndia, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, OrderManagementConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, FiscalIntegrationComplianceResult, } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n function storeQuery(): DataServiceQuery {\n return new DataServiceQuery();\n }\n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, \n 'DeliveryOptionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n }\n\n export function getDeliveryOptionsAsync(context: IContext):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n }\n\n export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult {\n const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n }\n\n export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult {\n const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n return executeAction(request, context);\n }\n \n export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n }\n\n export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n return executeAction(request, context);\n }\n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'PromotionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n }\n\n export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, \n 'PaymentMerchantInformationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, \n 'StoreSafeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, \n 'ShiftReconciliationLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, \n 'ReceiptMaskClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, \n 'SearchSuggestionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId: string | null, overrideSession: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, \n 'CreateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, \n 'ValidateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, \n 'BarcodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, \n 'ButtonGridClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, \n 'MediaBlobClass'\n , 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, \n 'CityInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, \n 'OnlineChannelClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, \n 'CountyInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, \n 'CreditMemoClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, \n 'DataDownloadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, \n 'DataUploadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings, searchLocationValue?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, \n 'NumberSequenceSeedDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, {searchLocationValue: searchLocationValue });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext, searchLocationValue?: number | null):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings, searchLocationValue);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, \n 'ReceiptNumberResetInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, \n 'CurrencyAmountClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, \n 'DiscountCodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, \n 'DistrictInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, \n 'HardwareStationProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, \n 'HardwareProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, \n 'LocalizedStringClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, \n 'OperationPermissionClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, \n 'IncomeExpenseAccountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, \n 'StateProvinceInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, \n 'KitTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, \n 'LoyaltyCardClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, \n 'LoyaltyCardTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, \n 'TransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, \n 'NonSalesTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, \n 'NonSalesTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, \n 'DropAndDeclareTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, \n 'TaxOverrideClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, \n 'CustomerBalancesClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, \n 'OfflineSyncStatsLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createGetOfflineOpenShiftsInput(queryResultSettings: IQueryResultSettings, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineOpenShifts', false, \n 'ShiftClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Shift'}, {filterByCurrentUser: filterByCurrentUser, includeAllShiftsForStore: includeAllShiftsForStore });\n }\n\n export function getOfflineOpenShiftsAsync(context: IContext, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean):AsyncResult {\n const request = createGetOfflineOpenShiftsInput(context.queryResultSettings, filterByCurrentUser, includeAllShiftsForStore);\n return executeAction(request, context);\n }\n \n export function createDeleteOfflineShiftsInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeleteOfflineShifts', false, '', 'false', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function deleteOfflineShiftsAsync(context: IContext):AsyncResult {\n const request = createDeleteOfflineShiftsInput();\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, \n 'StorageAccessTokenClass'\n , 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, \n 'FrameworkClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, \n 'FrameworkClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, \n 'TaskGuidesSearchResultClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, \n 'AttributeDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, \n 'AttributeGroupDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, \n 'AuditEventClass'\n , 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, \n 'InventoryAvailableToPromiseClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, \n 'SalesOrderClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, \n 'NotificationItemClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createSearchPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PurchaseHistorySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchPurchaseHistory', true, \n 'PurchaseHistoryClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PurchaseHistory'}, {searchCriteria: searchCriteria });\n }\n\n export function searchPurchaseHistoryAsync(context: IContext, searchCriteria?: PurchaseHistorySearchCriteria | null):AsyncResult {\n const request = createSearchPurchaseHistoryInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, \n 'FiscalIntegrationRegistrationProcessClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, \n 'FiscalIntegrationSupportedEventsClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalRegistrationProcessSummary', true, \n 'FiscalIntegrationFiscalRegistrationProcessSummaryClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationFiscalRegistrationProcessSummary'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalRegistrationProcessSummaryAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n }\n\n export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult {\n const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n return executeAction(request, context);\n }\n \n export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n }\n\n export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult {\n const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n }\n\n export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, \n 'FiscalIntegrationServiceStatusClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, \n 'FiscalIntegrationServiceCommunicationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFeatureStates', true, \n 'FeatureStateClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n }\n\n export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult {\n const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n return executeAction(request, context);\n }\n \n export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, \n 'FiscalIntegrationSequentialSignatureDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n }\n\n export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult {\n const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n return executeAction(request, context);\n }\n \n export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, \n 'FiscalTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, \n 'PickupTimeslotAvailabilityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, \n 'CartClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n }\n\n export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult {\n const request = createCalculateSalesDocumentInput(salesDocument);\n return executeAction(request, context);\n }\n \n export function createSearchVendorsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: VendorSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchVendors', true, \n 'VendorClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Vendor'}, {searchCriteria: searchCriteria });\n }\n\n export function searchVendorsAsync(context: IContext, searchCriteria?: VendorSearchCriteria | null):AsyncResult {\n const request = createSearchVendorsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createValidateVendorApprovedForItemInput(itemId?: string | null, vendorAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateVendorApprovedForItem', true, \n 'VendorValidationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'VendorValidationResult'}, {itemId: itemId, vendorAccountNumber: vendorAccountNumber });\n }\n\n export function validateVendorApprovedForItemAsync(context: IContext, itemId?: string | null, vendorAccountNumber?: string | null):AsyncResult {\n const request = createValidateVendorApprovedForItemInput(itemId, vendorAccountNumber);\n return executeAction(request, context);\n }\n \n export function createLocalizationIndiaGetBusinessVerticalsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('LocalizationIndiaGetBusinessVerticals', true, \n 'BusinessVerticalsIndiaClass'\n , 'true', { bypassCache: 'get', returnEntity: 'BusinessVerticalsIndia'}, { });\n }\n\n export function localizationIndiaGetBusinessVerticalsAsync(context: IContext):AsyncResult {\n const request = createLocalizationIndiaGetBusinessVerticalsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, \n 'OperationalInsightsConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n }\n\n export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOperationalInsightsConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCashDeclarations', false, \n 'CashDeclarationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n }\n\n export function getCashDeclarationsAsync(context: IContext):AsyncResult {\n const request = createGetCashDeclarationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegions', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerGroups', false, \n 'CustomerGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n }\n\n export function getCustomerGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCustomerGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, \n 'ChannelDeliveryOptionConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n }\n\n export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetChannelDeliveryOptionConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelsByType', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n }\n\n export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult {\n const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n return executeAction(request, context);\n }\n \n export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannels', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n }\n\n export function getChannelsAsync(context: IContext):AsyncResult {\n const request = createGetChannelsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChannels', true, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n }\n\n export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult {\n const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, \n 'EnvironmentConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n }\n\n export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetEnvironmentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetOrderManagementConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOrderManagementConfiguration', false, \n 'OrderManagementConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OrderManagementConfiguration'}, { });\n }\n\n export function getOrderManagementConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOrderManagementConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, \n 'SearchConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n }\n\n export function getSearchConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetSearchConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, \n 'ExtensionPackageDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n }\n\n export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult {\n const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetExtensionProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetExtensionProfile', false, \n 'ExtensionProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n }\n\n export function getExtensionProfileAsync(context: IContext):AsyncResult {\n const request = createGetExtensionProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, \n 'DeviceConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n }\n\n export function getDeviceConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetDeviceConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetVisualProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetVisualProfile', false, \n 'VisualProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n }\n\n export function getVisualProfileAsync(context: IContext):AsyncResult {\n const request = createGetVisualProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLanguages', false, \n 'SupportedLanguageClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n }\n\n export function getLanguagesAsync(context: IContext):AsyncResult {\n const request = createGetLanguagesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliations', false, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n }\n\n export function getAffiliationsAsync(context: IContext):AsyncResult {\n const request = createGetAffiliationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationPermissions', false, \n 'OperationPermissionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n }\n\n export function getOperationPermissionsAsync(context: IContext):AsyncResult {\n const request = createGetOperationPermissionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, \n 'SalesTaxGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n }\n\n export function getSalesTaxGroupsAsync(context: IContext):AsyncResult {\n const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderTypes', false, \n 'TenderTypeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n }\n\n export function getTenderTypesAsync(context: IContext):AsyncResult {\n const request = createGetTenderTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n 'UnitOfMeasureClass'\n , 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n }\n\n export function getUnitsOfMeasureAsync(context: IContext):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodes', false, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n }\n\n export function getDiscountCodesAsync(context: IContext):AsyncResult {\n const request = createGetDiscountCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrencies', false, \n 'CurrencyClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n }\n\n export function getCurrenciesAsync(context: IContext):AsyncResult {\n const request = createGetCurrenciesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, \n 'CurrencyAmountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n }\n\n export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult {\n const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n return executeAction(request, context);\n }\n \n export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n }\n\n export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n }\n\n export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n }\n \n export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n }\n\n export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult {\n const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelPublishStatusInput();\n return executeAction(request, context);\n }\n \n export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n }\n\n export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult {\n const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n return executeAction(request, context);\n }\n \n export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, \n 'ChannelInventoryConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n }\n\n export function getInventoryConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetInventoryConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, \n 'ChannelPurchaseConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n }\n\n export function getPurchaseConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPurchaseConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalNames', true, \n 'InventoryJournalNameClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult {\n const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableDevices', false, \n 'DeviceClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n }\n\n export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult {\n const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretStringInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, \n 'UserDefinedSecretCertificateResultClass'\n , 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretCertificateInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetImageBlob', false, \n 'MediaBlobClass'\n , 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n }\n\n export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult {\n const request = createGetImageBlobInput(imageId);\n return executeAction(request, context);\n }\n \n export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, \n 'ExtensibleEnumerationContainerClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n }\n\n export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult {\n const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressPurposes', false, \n 'AddressPurposeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n }\n\n export function getAddressPurposesAsync(context: IContext):AsyncResult {\n const request = createGetAddressPurposesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnPolicyInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReturnPolicy', false, \n 'ReturnPolicyClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n }\n\n export function getReturnPolicyAsync(context: IContext):AsyncResult {\n const request = createGetReturnPolicyInput();\n return executeAction(request, context);\n }\n \n export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, \n 'EmailReceiptSettingsClass'\n , 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n }\n\n export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult {\n const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createCheckFiscalIntegrationComplianceInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CheckFiscalIntegrationCompliance', false, \n 'FiscalIntegrationComplianceResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationComplianceResult'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function checkFiscalIntegrationComplianceAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createCheckFiscalIntegrationComplianceInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n ","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport { ProductRefinerValue, SortColumn } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Refiner Compression:\n * Refiners contains a non-trivial amount of data that is required to successfully make\n * a refiner-based API call. To allow for deep-linking of refiners in the URL, refiner data\n * must be compressed so that URL max length is not exceeded. Refiners will be compressed into\n * the following array style index-based format:\n * [DataTypeValue, LeftValueBoundString, RefinerRecordId, RefinerSourceValue, RightValueBoundString, UnitText].\n */\nconst compressedRefinerKeys = [\n 'DataTypeValue',\n 'LeftValueBoundString',\n 'RefinerRecordId',\n 'RefinerSourceValue',\n 'RightValueBoundString',\n 'UnitText'\n];\n\n/**\n * Hydrates compressed refiner data from URL.\n * @param fullUrl The full URL of the page.\n * @param requestContext\n */\nexport const hydrateRefinersFromUrl = (requestContext: IRequestContext): ProductRefinerValue[] => {\n const compressedRefinerArray = parseQueryParam<(string | number)[][]>('refiners', requestContext);\n if (!compressedRefinerArray || compressedRefinerArray.length === 0) {\n return [];\n }\n\n return compressedRefinerArray\n .map(compressedRefiner => {\n try {\n const parsedRefiner: ProductRefinerValue = {};\n compressedRefinerKeys.forEach((refinerKey, index) => {\n parsedRefiner[refinerKey] = compressedRefiner[index];\n });\n return parsedRefiner;\n } catch {\n return undefined;\n }\n })\n .filter(Boolean);\n};\n\n/**\n * Compressed a list of refiners for use in URLs.\n * @param refiners The uncompressed refiners.\n */\nexport const compressRefiners = (refiners: ProductRefinerValue[]) => {\n const compressedRefiners: (string | number)[][] = [];\n\n refiners.forEach(refiner => {\n const compressedRefiner: (string | number)[] = [];\n compressedRefinerKeys.forEach(refinerKey => {\n compressedRefiner.push(refiner[refinerKey]);\n });\n compressedRefiners.push(compressedRefiner);\n });\n\n return compressedRefiners;\n};\n\n/**\n * Method which creates a URL contiaining serialized active refiners.\n * @param fullUrl The Current URL of the page.\n * @param refiners The refiners which should be added to the URL.\n * @param sortingColumns\n * @param skipCount\n */\nexport const buildListPageUrl = (fullUrl: URL, refiners?: ProductRefinerValue[], sortingColumns?: SortColumn[], skipCount?: number) => {\n // Refiner Change flow\n if (refiners !== undefined) {\n if (refiners.length === 0) {\n fullUrl.searchParams.delete('refiners');\n } else {\n const sortedRefiners = refiners.sort((first, second) =>\n first.RefinerRecordId && second.RefinerRecordId && first.RefinerRecordId > second.RefinerRecordId ? 1 : -1\n );\n fullUrl.searchParams.set('refiners', JSON.stringify(compressRefiners(sortedRefiners)));\n }\n\n // Adding or removing a refiner means we want to always load page 1\n fullUrl.searchParams.delete('skip');\n return fullUrl.href;\n }\n\n if (sortingColumns !== undefined) {\n if (sortingColumns.length === 0) {\n fullUrl.searchParams.delete('sorting');\n } else {\n fullUrl.searchParams.set('sorting', JSON.stringify(sortingColumns));\n }\n\n // Changing the sort means always load page 1\n fullUrl.searchParams.delete('skip');\n return fullUrl.href;\n }\n\n if (skipCount) {\n fullUrl.searchParams.set('skip', skipCount.toString());\n }\n\n return fullUrl.href;\n};\n\n/**\n * Parses a query param from the query object of the request context.\n * @param key The query parameter key.\n * @param requestContext The request context.\n */\nexport const parseQueryParam = (key: string, requestContext: IRequestContext): T | null => {\n if (requestContext.query && requestContext.query[key]) {\n return JSON.parse(decodeURIComponent(requestContext.query[key]));\n }\n return null;\n};\n\n/**\n * Gets the current URL of the page from the request context.\n * @param requestContext The request context.\n */\nexport const getCurrentUrl = (requestContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (requestContext.url.requestUrl.href) {\n return new URL(requestContext.url.requestUrl.href);\n }\n return new URL((requestContext.url.requestUrl));\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\n\nimport { QuickOrderTemplateLine } from './quick-order-template-line';\n\n/**\n * Quick Order template class.\n */\nexport class QuickOrderTemplate {\n public productList: ProductList;\n\n public quickOrderTemplateLines: QuickOrderTemplateLine[];\n\n public totalLines: number;\n\n public constructor(productList: ProductList, quickOrderTemplateLines: QuickOrderTemplateLine[], totalLines: number) {\n this.productList = productList;\n this.quickOrderTemplateLines = quickOrderTemplateLines;\n this.totalLines = totalLines;\n }\n}\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ScanResult } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function scanResultsQuery(scannedText?: string): DataServiceQuery {\n var key = (scannedText) ? { ScannedText: scannedText } : null;\n return new DataServiceQuery(\"ScanResults\", \"ScanResult\", \"ScanResultClass\", key);\n }\n \n export function createCreateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery().create(entity);\n }\n\n export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(scannedText: string): IDataServiceRequest {\n return scanResultsQuery(scannedText).read();\n }\n\n export function readAsync(context: IContext, scannedText: string): AsyncResult {\n const request = createReadAsync(scannedText);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return scanResultsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './async-result';\nexport * from './Interfaces';\nexport * from './exceptions';\nexport * from './extensions';\nexport * from './externals';\nexport * from './DataServiceQuery';\nexport * from './DataServiceRequest';\nexport * from './data-types';\nexport * from './logging';\nexport * from './retail-action';\nexport * from './Entities/CommerceTypes.g';\n\nexport * as ApplicableOperationsDataActions from './DataActions/ApplicableOperationsDataActions.g';\nexport * as BusinessPartnersDataActions from './DataActions/BusinessPartnersDataActions.g';\nexport * as BusinessPartnerUsersDataActions from './DataActions/BusinessPartnerUsersDataActions.g';\nexport * as CartsDataActions from './DataActions/CartsDataActions.g';\nexport * as CatalogsDataActions from './DataActions/CatalogsDataActions.g';\nexport * as CategoriesDataActions from './DataActions/CategoriesDataActions.g';\nexport * as ChecklistsDataActions from './DataActions/ChecklistsDataActions.g';\nexport * as CommerceListsDataActions from './DataActions/CommerceListsDataActions.g';\nexport * as CustomersDataActions from './DataActions/CustomersDataActions.g';\nexport * as EmployeesDataActions from './DataActions/EmployeesDataActions.g';\nexport * as InventoryInboundOutboundDocumentsDataActions from './DataActions/InventoryInboundOutboundDocumentsDataActions.g';\nexport * as OrgUnitsDataActions from './DataActions/OrgUnitsDataActions.g';\nexport * as PickingListsDataActions from './DataActions/PickingListsDataActions.g';\nexport * as ProductListsDataActions from './DataActions/ProductListsDataActions.g';\nexport * as ProductsDataActions from './DataActions/ProductsDataActions.g';\nexport * as PurchaseOrdersDataActions from './DataActions/PurchaseOrdersDataActions.g';\nexport * as RecommendationsDataActions from './DataActions/RecommendationsDataActions.g';\nexport * as SalesOrdersDataActions from './DataActions/SalesOrdersDataActions.g';\nexport * as ScanResultsDataActions from './DataActions/ScanResultsDataActions.g';\nexport * as ShiftsDataActions from './DataActions/ShiftsDataActions.g';\nexport * as StockCountJournalsDataActions from './DataActions/StockCountJournalsDataActions.g';\nexport * as StoreOperationsDataActions from './DataActions/StoreOperationsDataActions.g';\nexport * as SuspendedCartsDataActions from './DataActions/SuspendedCartsDataActions.g';\nexport * as TransferOrdersDataActions from './DataActions/TransferOrdersDataActions.g';\nexport * as WarehousesDataActions from './DataActions/WarehousesDataActions.g';","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","/*!\r\n * Copyright (c) Conn Selmer Inc.\r\n * Class returns a formatted Brand Logo based on text input\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * GetBrandLogo Input Action\r\n *\r\n * brandShortName:string => The shorthand name of the brand. IE: bach, ludwig, scherl\r\n * - Compound names are truncated to their first name only\r\n * colorCode:number => a numeric code used to attach CSS values.\r\n * - IE: 0 == black, 1 == white, 2 == custom color, ...\r\n */\r\nexport class GetBrandLogoInput implements Msdyn365.IActionInput {\r\n public brandShortName: string;\r\n public colorCode: number;\r\n\r\n constructor(brandShortName: string, colorCode: number|string|null){\r\n this.brandShortName = brandShortName;\r\n if(colorCode !== null){\r\n this.colorCode = typeof colorCode === 'string' ? parseInt(colorCode, 10) : colorCode;\r\n } else {\r\n this.colorCode = 0;\r\n }\r\n }\r\n\r\n public getCacheKey = () => `${this.brandShortName}-${this.colorCode}`;\r\n public getCacheObjectType = () => 'BrandLogo';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\nexport interface IGetBrandLogoData {\r\n text: string;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n /*return new GetBrandLogoInput(brandShortName, colorCode);*/\r\n return new GetBrandLogoInput('bach', 0);\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: GetBrandLogoInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // TODO: Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { text: 'Static data from action' };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'GetBrandLogo',\r\n input: createInput\r\n // TODO: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Checklist, ChecklistSearchCriteria, TaskSearchCriteria, ChecklistTask, ChecklistTaskTeamsIntegrationConfiguration } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function checklistsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Checklists\", \"Checklist\", \"ChecklistClass\", key);\n }\n \n export function createCreateInput(entity: Checklist): IDataServiceRequest {\n return checklistsQuery().create(entity);\n }\n\n export function createChecklistAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Checklist): IDataServiceRequest {\n return checklistsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Checklist): IDataServiceRequest {\n return checklistsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return checklistsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return checklistsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchChecklistsInput(queryResultSettings: IQueryResultSettings, checklistSearchCriteria?: ChecklistSearchCriteria | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChecklists', true, \n 'ChecklistClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Checklist'}, {checklistSearchCriteria: checklistSearchCriteria });\n } \n \n export function searchChecklistsAsync(context: IContext, checklistSearchCriteria?: ChecklistSearchCriteria | null):AsyncResult {\n const request = createSearchChecklistsInput(context.queryResultSettings, checklistSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchTasksInput(queryResultSettings: IQueryResultSettings, taskSearchCriteria?: TaskSearchCriteria | null, userGraphToken?: string | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTasks', true, \n 'ChecklistTaskClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChecklistTask'}, {taskSearchCriteria: taskSearchCriteria, userGraphToken: userGraphToken });\n } \n \n export function searchTasksAsync(context: IContext, taskSearchCriteria?: TaskSearchCriteria | null, userGraphToken?: string | null):AsyncResult {\n const request = createSearchTasksInput(context.queryResultSettings, taskSearchCriteria, userGraphToken);\n return executeAction(request, context);\n } \n \n export function createCreateTaskInput(createTask?: ChecklistTask | null, userGraphToken?: string | null, channelId?: number | null): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('CreateTask', true, \n 'ChecklistTaskClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {createTask: createTask, userGraphToken: userGraphToken, channelId: channelId });\n } \n \n export function createTaskAsync(context: IContext, createTask?: ChecklistTask | null, userGraphToken?: string | null, channelId?: number | null):AsyncResult {\n const request = createCreateTaskInput(createTask, userGraphToken, channelId);\n return executeAction(request, context);\n } \n \n export function createUpdateChecklistsInput(queryResultSettings: IQueryResultSettings, updateChecklists?: Checklist[] | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateChecklists', true, \n 'ChecklistClass'\n , 'true', {bypassCache: 'get', returnEntity: 'Checklist'}, {updateChecklists: updateChecklists });\n } \n \n export function updateChecklistsAsync(context: IContext, updateChecklists?: Checklist[] | null):AsyncResult {\n const request = createUpdateChecklistsInput(context.queryResultSettings, updateChecklists);\n return executeAction(request, context);\n } \n \n export function createUpdateTasksInput(queryResultSettings: IQueryResultSettings, updateTasks?: ChecklistTask[] | null, userGraphToken?: string | null, channelId?: number | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateTasks', true, \n 'ChecklistTaskClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {updateTasks: updateTasks, userGraphToken: userGraphToken, channelId: channelId });\n } \n \n export function updateTasksAsync(context: IContext, updateTasks?: ChecklistTask[] | null, userGraphToken?: string | null, channelId?: number | null):AsyncResult {\n const request = createUpdateTasksInput(context.queryResultSettings, updateTasks, userGraphToken, channelId);\n return executeAction(request, context);\n } \n \n export function createGetTaskByIdInput(taskId?: string | null, userGraphToken?: string | null): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('GetTaskById', true, \n 'ChecklistTaskClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ChecklistTask'}, {taskId: taskId, userGraphToken: userGraphToken });\n } \n \n export function getTaskByIdAsync(context: IContext, taskId?: string | null, userGraphToken?: string | null):AsyncResult {\n const request = createGetTaskByIdInput(taskId, userGraphToken);\n return executeAction(request, context);\n } \n \n export function createGetTeamsIntegrationConfigurationInput(): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('GetTeamsIntegrationConfiguration', false, \n 'ChecklistTaskTeamsIntegrationConfigurationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ChecklistTaskTeamsIntegrationConfiguration'}, { });\n } \n \n export function getTeamsIntegrationConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetTeamsIntegrationConfigurationInput();\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICacheKey } from './ICache';\n\nexport const MODULE_CSS_CACHE_KEY = 'MODULE-CSS-CHUNKS';\nexport const MODULE_CSS_CACHE_TYPENAME = '__MODULECSSCHUNKS__';\n\nexport const normalizeCacheKey = (cacheKey: ICacheKey): ICacheKey => {\n return {\n typeName: cacheKey.typeName.toUpperCase(),\n key: cacheKey.key.toUpperCase()\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\nexport class ErrorTypeEnum {\n public static SERVER_ERROR: string = 'string_29002';\n public static SERVICE_UNAVAILABLE: string = 'string_29278';\n public static SERVER_TIMEOUT: string = 'string_29279';\n public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n public static GENERICERRORMESSAGE: string = 'string_29201';\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n public static BAD_REQUEST: string = 'string_29274';\n public static NOT_AUTHORIZIED: string = 'string_29275';\n public static FORBIDDEN: string = 'string_29276';\n public static PRECONDITION_FAILED: string = 'string_29277';\n public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n}\n\n/**\n * Forward links for device activation errors.\n */\nexport class DeviceActivationErrorsForwardLinks {\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403590';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403591';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403592';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403593';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD: string = 'http://go.microsoft.com/fwlink/?LinkId=403594';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED: string = 'http://go.microsoft.com/fwlink/?LinkId=519136';\n public static SERVER_ERROR: string = 'http://go.microsoft.com/fwlink/?LinkId=519137';\n}\n\nexport class ErrorHelper {\n private static AGGREGATED_ERROR_RESOUCEIDS: string[] = [\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError',\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError',\n 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError'\n ];\n\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = 'Microsoft_Dynamics_Internal_Server_Error';\n\n public static isAggregatedErrorResourceId(errorResourceId: string): boolean {\n return ErrorHelper.AGGREGATED_ERROR_RESOUCEIDS.indexOf(errorResourceId) !== -1;\n }\n\n /**\n * Map response status code to error.\n *\n * @param {any} Error returned by retail server call.\n */\n public static MapResponseStatusCodeToError(errorMessage: string, statusCode: number, err?: any): ProxyError {\n let errorCode = '';\n let canRetry = false;\n\n switch (statusCode) {\n case 400:\n errorCode = ErrorTypeEnum.BAD_REQUEST;\n break;\n case 401:\n errorCode = ErrorTypeEnum.NOT_AUTHORIZIED;\n break;\n case 403:\n errorCode = ErrorTypeEnum.FORBIDDEN;\n break;\n case 412:\n errorCode = ErrorTypeEnum.PRECONDITION_FAILED;\n break;\n case 503:\n errorCode = ErrorTypeEnum.SERVICE_UNAVAILABLE;\n canRetry = true;\n break;\n case 500:\n default:\n errorCode = ErrorTypeEnum.SERVER_ERROR;\n errorMessage = 'The server error format is not supported or it does not have enough information.';\n\n // Temporary until the fix for Bug 681427 goes in\n // If no orders were found, than an error did not occur\n if (err && err.response && err.response.body && err.response.requestUri) {\n if (err.response.requestUri.indexOf('GetOrderByReceiptId') > -1) {\n if (err.response.body.indexOf('No orders were found') > -1) {\n errorMessage = ErrorTypeEnum.RETURN_NO_ORDERS_FOUND;\n }\n }\n }\n }\n\n if (errorMessage && errorMessage.toUpperCase() === 'TIMEOUT') {\n errorCode = ErrorTypeEnum.SERVER_TIMEOUT;\n }\n\n return new ProxyError(errorCode, errorMessage || EMPTY, EMPTY, canRetry, err);\n }\n\n /**\n * Checks whether all the provided errors are retryable. If no error code is provided or an error is undefined,\n * then the errors will be treated as not retryable.\n *\n * @return {boolean} True if the error codes are retryable, false if the error codes are not retryable or not defined\n */\n public static isRetryable(errors: ProxyError[]): boolean {\n const numErrors: number = !errors ? 0 : errors.length;\n let isRetryable: boolean = numErrors > 0;\n for (let i: number = 0; i < numErrors; i++) {\n if (errors[i]) {\n isRetryable = isRetryable && errors[i].CanRetry;\n } else {\n isRetryable = false;\n }\n }\n\n return isRetryable;\n }\n\n /**\n * Gets a string with all error codes.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error codes.\n */\n public static getErrorResourceIds(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.ErrorCode);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n\n /**\n * Gets a string with all error messages.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error messages.\n */\n public static getErrorMessages(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.LocalizedErrorMessage);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, getCatalogId, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { IProductRefinerHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport {\n convertToString,\n ChannelInventoryConfiguration,\n IQueryResultSettings,\n ProductRefinerValue,\n SortColumn\n} from '@msdyn365-commerce/retail-proxy';\nimport { generateCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\nimport { toJS } from 'mobx';\n\nimport { hydrateRefinersFromUrl } from './url-utils';\n\n/**\n * Export listPageType.\n */\nexport type listPageType = 'Category' | 'Search' | 'Unknown';\n\n/**\n * Get include attributes from config.\n * @param inputData - ICreateActionContext.\n * @returns Boolean.\n */\nfunction getIncludeAttributes(inputData: ICreateActionContext, IGeneric>): boolean {\n if (inputData && inputData.config && inputData.config.includeAttributes !== undefined && inputData.config.includeAttributes === true) {\n return true;\n }\n return false;\n}\n\n/**\n * Get updateRefinerPanel from config.\n * @param inputData - ICreateActionContext.\n * @returns Boolean.\n */\nfunction getUpdateRefinerPanel(inputData: ICreateActionContext, IGeneric>): boolean {\n return !!inputData.config?.updateRefinerPanel;\n}\n\n/**\n * BaseCollection Action Input.\n */\nexport class BaseCollectionInput implements IActionInput {\n public pageType: listPageType;\n\n public category: number | undefined;\n\n public searchText: string | undefined;\n\n public refiners: ProductRefinerValue[];\n\n public queryResultSettings: IQueryResultSettings;\n\n public apiSettings: ICommerceApiSettings;\n\n public includeAttributes: boolean | undefined;\n\n public locale?: string;\n\n public isUpdateRefinerPanel?: boolean;\n\n public catalogId?: number;\n\n public channelInventoryConfiguration?: ChannelInventoryConfiguration;\n\n public inventoryRefiner?: IProductRefinerHierarchy;\n\n public constructor(\n pageType: listPageType,\n apiSettings: ICommerceApiSettings,\n queryResultSettings: IQueryResultSettings,\n refiners: ProductRefinerValue[],\n category: number | undefined,\n searchText: string | undefined,\n includeAttributes: boolean | undefined,\n isUpdateRefinerPanel?: boolean | undefined,\n locale?: string,\n catalogId?: number,\n channelInventoryConfiguration?: ChannelInventoryConfiguration,\n inventoryRefiner?: IProductRefinerHierarchy\n ) {\n this.pageType = pageType;\n this.apiSettings = apiSettings;\n this.category = category;\n this.searchText = searchText;\n this.queryResultSettings = queryResultSettings;\n this.refiners = refiners;\n this.includeAttributes = includeAttributes;\n this.isUpdateRefinerPanel = isUpdateRefinerPanel;\n this.locale = locale;\n this.catalogId = catalogId ?? 0;\n this.channelInventoryConfiguration = channelInventoryConfiguration;\n this.inventoryRefiner = inventoryRefiner;\n }\n\n public getCacheKey = () => {\n const queryResultSettings = {\n ...this.queryResultSettings.Paging,\n ...toJS(this.queryResultSettings.Sorting)\n };\n\n const cacheKey = generateCacheKey(\n this.apiSettings,\n { key: 'PageType', value: this.pageType },\n { key: 'Category', value: this.category },\n { key: 'SearchText', value: this.searchText },\n { key: 'CatalogId', value: this.catalogId },\n {\n key: 'Refiners',\n value: this.refiners.map(\n refiner =>\n `RefinerRecordId:${refiner.RefinerRecordId}-LeftValueBoundString:${refiner.LeftValueBoundString ||\n ''}-RightValueBoundString:${refiner.RightValueBoundString || ''}`\n )\n },\n { key: 'QueryResultSettings', value: convertToString(queryResultSettings) },\n { key: 'Locale', value: this.locale }\n );\n return cacheKey;\n };\n\n public getCacheObjectType = () => 'CollectionActionResult';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n// TODO: Create a data model here or import one to capture the response of the action\nexport interface IGetFullProductsByCollectionData {\n text: string;\n}\n\nexport type CollectionClassConstructor = new (\n pageType: listPageType,\n apiSettings: ICommerceApiSettings,\n queryResultSettings: IQueryResultSettings,\n refiners: ProductRefinerValue[],\n category: number | undefined,\n searchText: string | undefined,\n includeAttributes: boolean | undefined,\n isUpdateRefinerPanel?: boolean | undefined,\n locale?: string,\n catalogId?: number,\n channelInventoryConfiguration?: ChannelInventoryConfiguration,\n inventoryRefiner?: IProductRefinerHierarchy\n) => BaseCollectionInput;\n\n/**\n * TODO: Use this function to create the input required to make the action call.\n * @param args\n * @param inputClassConstuctor\n */\nexport const createBaseCollectionInput = (\n args: ICreateActionContext,\n inputClassConstuctor: CollectionClassConstructor\n): BaseCollectionInput => {\n const pageType =\n args.requestContext.urlTokens.pageType === 'Category' || (args.requestContext.query && args.requestContext.query.categoryId)\n ? 'Category'\n : 'Search';\n\n const queryResultSettings = QueryResultSettingsProxy.fromInputData(args).QueryResultSettings;\n const queryRefiners = hydrateRefinersFromUrl(args.requestContext);\n const includeAttributes = getIncludeAttributes(args);\n const isUpdateRefinerPanel = getUpdateRefinerPanel(args);\n const catalogId = getCatalogId(args.requestContext);\n\n if (args.requestContext.query && args.requestContext.query.sorting) {\n queryResultSettings.Sorting = { Columns: JSON.parse(decodeURIComponent(args.requestContext.query.sorting)) };\n }\n\n if (pageType === 'Category') {\n return new inputClassConstuctor(\n pageType,\n args.requestContext.apiSettings,\n queryResultSettings,\n queryRefiners,\n +(args.requestContext.urlTokens.itemId || (args.requestContext.query && args.requestContext.query.categoryId) || 0),\n undefined,\n includeAttributes,\n isUpdateRefinerPanel,\n args.requestContext.locale,\n catalogId\n );\n } else if (pageType === 'Search' && args.requestContext.query && args.requestContext.query.q) {\n return new inputClassConstuctor(\n pageType,\n args.requestContext.apiSettings,\n queryResultSettings,\n queryRefiners,\n undefined,\n args.requestContext.query.q,\n includeAttributes,\n isUpdateRefinerPanel,\n args.requestContext.locale,\n catalogId\n );\n } else if (pageType === 'Search' && args.requestContext.query && args.requestContext.query.recommendation) {\n let searchText = '';\n if (args.requestContext.query.productId) {\n searchText = JSON.stringify({\n ProductId: args.requestContext.query.productId,\n Recommendation: args.requestContext.query.recommendation\n });\n } else {\n searchText = JSON.stringify({ Recommendation: args.requestContext.query.recommendation });\n }\n return new inputClassConstuctor(\n pageType,\n args.requestContext.apiSettings,\n queryResultSettings,\n queryRefiners,\n undefined,\n searchText,\n includeAttributes,\n isUpdateRefinerPanel,\n args.requestContext.locale,\n catalogId\n );\n }\n\n throw new Error('[getFullProductsForCollection]Unable to create input');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\nexport class ProxyErrorSDK extends Error {\n public errorCode: string;\n public errorMessage: string;\n public localizedErrorMessage: string = '';\n public canRetry: boolean = false;\n public commerceException: any;\n public formatData: any[] = [];\n public requestUri: any;\n public data: any;\n public statusCode: any;\n\n constructor(\n errorCode: string,\n errorMessage: string,\n canRetry: boolean\n ) {\n super();\n this.name = errorCode;\n this.message = errorMessage;\n this.errorCode = errorCode;\n this.errorMessage = errorMessage;\n this.canRetry = canRetry;\n Object.setPrototypeOf(this, ProxyErrorSDK.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\n\nimport { ProxyErrorSDK } from './ProxyErrorSDK';\n\n'use strict';\n\n/**\n * Class for representing an error.\n */\nexport class ProxyError {\n private _errorCode: string;\n private _errorMessage: string;\n private _localizedErrorMessage: string;\n private _canRetry: boolean = false;\n private _commerceException: any;\n private _formatData: any[];\n private _extraData: any;\n\n constructor(errorCode: string, errorMessage: string, localizedErrorMessage, canRetry: boolean, extraData: any, ...formatData: any[]) {\n this._errorCode = errorCode;\n this._errorMessage = errorMessage;\n this._localizedErrorMessage = localizedErrorMessage;\n this._canRetry = canRetry;\n this._commerceException = null;\n this._formatData = formatData;\n if (extraData && typeof extraData == 'object' && extraData.request) {\n // Remove sensitive data (EUII) so that it doesn't get logged to AppInsights\n extraData.request.headers = {};\n extraData.request.data = {};\n extraData.request.body = {};\n }\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n e.requestUri = proxyError.extraData.requestUri;\n\n e.data = proxyError.extraData.data;\n\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getAttributeValuesAsync, getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n ArrayExtensions,\n generateCacheKey,\n generateImageUrl,\n getProductUrlSync,\n getSelectedProductIdFromActionInput,\n QueryResultSettingsProxy,\n removeDomainQspFromUrl\n} from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IPageSummaryData } from '../IPageSummaryData';\nimport { IProductPageSummaryConfig } from './product-page-summary.props.autogenerated';\n\n/**\n * Product Page Summary Input.\n */\nexport class ProductPageSummaryInput implements IActionInput {\n public apiSettings: ICommerceApiSettings;\n\n public config: IProductPageSummaryConfig;\n\n public productId: number;\n\n public catalogId?: number;\n\n public constructor(\n config: IProductPageSummaryConfig,\n apiSettings: ICommerceApiSettings,\n productId: number,\n requestContext?: IRequestContext\n ) {\n this.config = config || {};\n this.apiSettings = apiSettings;\n this.productId = productId;\n\n if (requestContext) {\n this.catalogId = getCatalogId(requestContext);\n }\n }\n\n public getCacheObjectType = (): string => 'ProductPageSummary';\n\n public getCacheKey = (): string =>\n generateCacheKey(\n this.apiSettings,\n { key: 'Key', value: 'ProductPageSummary' },\n { key: 'Title', value: this.config.title },\n { key: 'ProductId', value: this.productId },\n { key: 'CatalogId', value: this.catalogId }\n );\n\n public dataCacheType = (): CacheType => 'application';\n}\n\nexport interface IProductPageSummary extends IPageSummaryData {\n price?: number;\n productId?: number;\n productBrand?: string;\n}\n\nconst createInput = (args: ICreateActionContext) => {\n const productId = getSelectedProductIdFromActionInput(args);\n\n if (productId) {\n return new ProductPageSummaryInput(\n args.config,\n args.requestContext.apiSettings,\n +productId,\n args.requestContext\n );\n }\n throw new Error('Unable to create ProductPageSummaryAction input, no productId found on module config or query');\n};\n\n// Checks product attributes for the presence of brand attribute to extract the brand name for product metadata\nconst getProductBrand = async (\n context: IActionContext,\n recordId: number,\n channelId: number,\n catalogId: number\n): Promise => {\n const productAttributes = await getAttributeValuesAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n recordId,\n channelId,\n catalogId\n );\n for (const productAttribute of productAttributes) {\n if (productAttribute.Name === 'Brand') {\n return productAttribute.TextValue;\n }\n }\n return;\n};\n\nconst action = async (input: ProductPageSummaryInput, context: IActionContext): Promise => {\n const { config, productId, apiSettings } = input;\n let simpleProductsData: SimpleProduct[] | undefined;\n try {\n simpleProductsData = ArrayExtensions.validValues(\n await getByIdsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n apiSettings.channelId,\n [productId],\n null,\n input.catalogId ?? 0\n )\n );\n } catch {\n // Do nothing, if there's an error we fall back to values defined from config\n }\n if (ArrayExtensions.hasElements(simpleProductsData)) {\n const simpleProductData = simpleProductsData[0];\n let productUrl: string | undefined;\n try {\n productUrl = getProductUrlSync(simpleProductData, context);\n const canonicalDomain = context.requestContext.canonicalDomain;\n if (productUrl && canonicalDomain) {\n productUrl = `https://${canonicalDomain}${productUrl}`.toLocaleLowerCase();\n productUrl = removeDomainQspFromUrl(productUrl, context.requestContext);\n } else {\n productUrl = undefined;\n }\n } catch {\n productUrl = undefined;\n }\n let productBrand: string | undefined;\n try {\n productBrand = await getProductBrand(context, productId, apiSettings.channelId, input.catalogId ?? 0);\n } catch {\n productBrand = undefined;\n }\n return {\n title: simpleProductData.Name,\n description: simpleProductData.Description,\n sharingImageUrl: generateImageUrl(simpleProductData.PrimaryImageUrl, apiSettings),\n canonicalUrl: productUrl,\n faviconUrl: config && config.faviconUrl,\n productId: simpleProductData.RecordId,\n price: simpleProductData.AdjustedPrice,\n productBrand\n };\n\n // If the action fails fallback to values defined from config\n } else if (config) {\n return {\n title: config.title,\n description: config.description,\n sharingImageUrl: config.sharingImage && config.sharingImage.src,\n faviconUrl: config && config.faviconUrl\n };\n }\n return {};\n};\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/page-summary/product-page-summary',\n action: >action,\n input: createInput\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings\n} from '@msdyn365-commerce/core';\nimport { Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync, updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\n\nimport { buildCacheKey } from '.';\nimport { GetCustomerInput } from './get-customer';\n\nexport interface IUpdateCustomerAttributesInput extends IActionInput {\n phone?: string;\n vatNumber?: string;\n customerAttributes: CustomerAttribute[];\n userAccountNumber: string;\n apiSettings: ICommerceApiSettings;\n}\n\nexport enum ContactInfoType {\n None = 0,\n Phone = 1,\n Email = 2,\n Url = 3,\n Telex = 4,\n Fax = 5\n}\n\n/**\n * Input class for the updateCustomerAttributes.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class updateCustomerAttributesInput implements IUpdateCustomerAttributesInput {\n public userAccountNumber: string;\n\n public customerAttributes: CustomerAttribute[];\n\n public apiSettings: ICommerceApiSettings;\n\n public phone?: string;\n\n public vatNumber?: string;\n\n constructor(\n userAccountNumber: string,\n customerAttributes: CustomerAttribute[],\n apiSettings: ICommerceApiSettings,\n phone?: string,\n vatNumber?: string\n ) {\n this.userAccountNumber = userAccountNumber;\n this.apiSettings = apiSettings;\n this.customerAttributes = customerAttributes;\n this.phone = phone;\n this.vatNumber = vatNumber;\n }\n\n public getCacheKey = (): string => buildCacheKey(`${this.userAccountNumber}`, this.apiSettings);\n\n public getCacheObjectType = () => 'Customer';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * The action method for the updateCustomerAttributes data action.\n * @param input The action input.\n * @param ctx The action context.\n */\nexport async function updateCustomerAttributesAction(input: IUpdateCustomerAttributesInput, ctx: IActionContext): Promise {\n const { customerAttributes, phone, vatNumber, userAccountNumber } = input;\n\n const customer = await readAsync({ callerContext: ctx, bypassCache: 'get' }, userAccountNumber);\n\n if (!customer) {\n ctx.telemetry.debug('[update-customer-attributes] Unable to find customer');\n throw new Error('Unable to find customer');\n }\n\n // The customer level phone (customer.phone) is the primary phone number. We need to update the primary phone in customer.Contacts as well.\n const primaryContact = customer.Contacts?.filter(\n contact => contact && contact.IsPrimary && contact.AddressTypeValue === ContactInfoType.Phone\n )?.[0];\n\n if (primaryContact) {\n primaryContact.Value = phone;\n }\n\n const newCustomer = { ...customer };\n newCustomer.Phone = phone;\n newCustomer.PhoneRecordId = primaryContact?.RecordId ? primaryContact?.RecordId : 0;\n newCustomer.VatNumber = vatNumber;\n newCustomer.Attributes = customerAttributes;\n\n const updatedCustomer = await updateAsync({ callerContext: ctx }, newCustomer);\n\n if (!updatedCustomer) {\n ctx.telemetry.debug('[update-customer-attributes] Unable to update customer attributes');\n throw new Error('Unable to update customer attributes');\n }\n\n ctx.update(new GetCustomerInput(ctx.requestContext.apiSettings), updatedCustomer);\n\n return updatedCustomer;\n}\n\n/**\n * The updateCustomerAttributes data action\n * Returns the updated customer.\n */\nexport const updateCustomerAttributesActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/update-customer-attributes',\n action: >updateCustomerAttributesAction\n});\n\nexport default updateCustomerAttributesActionDataAction;\n","\n/**\n * Copyright (c) 2018 Microsoft Corporation\n * Modules Registration\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\n */\n\n/**\n * Register all available modules\n */\nexport const registerAllModules = (requiredModules) => {\n let binding = { modules: {}, dataActions: {} };\n const { log, error } = console;\n const detailedWebpackError = (msg, errorObject) => { error(msg); error(errorObject); process.env.NODE_ENV !== 'development' && error('Run in dev mode to see full list of errors'); process.exit(50); }\n const handleError = (modPath, errObject) => {\n detailedWebpackError('Error with path: ' + modPath, errObject);\n }\n if (requiredModules) {\n requiredModules = requiredModules.map((module) => module.toLowerCase());\n }\n const isNotRegistered = (moduleName) => {\n return !requiredModules || requiredModules.length <= 0 || requiredModules.findIndex((module) => module === moduleName) !== -1;\n };\n\n \n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n try {\n\n\n isNotRegistered('accordion') && (binding.modules['accordion'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-accordion-accordion' */\n '@msdyn365-commerce-modules/accordion/dist/lib/modules/accordion/accordion'),\n $type: 'moduleDefinition',\n da: [{name:'accordionExpandedState', path:'@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'accordion',\n p: 'accordion',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/accordion/dist/lib/modules/accordion'\n });\n \n\n isNotRegistered('accordion-item') && (binding.modules['accordion-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-accordion-accordion-item' */\n '@msdyn365-commerce-modules/accordion/dist/lib/modules/accordion-item/accordion-item'),\n $type: 'moduleDefinition',\n da: [{name:'accordionExpandedState', path:'@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'accordion-item',\n p: 'accordion',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/accordion/dist/lib/modules/accordion-item'\n });\n \n\n isNotRegistered('active-image') && (binding.modules['active-image'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-active-image-active-image' */\n '@msdyn365-commerce-modules/active-image/dist/lib/modules/active-image/active-image'),\n $type: 'contentModule',\n da: [{name:'products', path:'@msdyn365-commerce-modules/active-image/dist/lib/modules/actions/get-active-image-products', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'active-image',\n p: 'active-image',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/active-image/dist/lib/modules/active-image'\n });\n \n\n isNotRegistered('adventureworks') && (binding.modules['adventureworks'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-theme-adventureworks-theme-kit-adventureworks' */\n '@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/adventureworks'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['active-image','b2b-requests-status','business-organization-list','buybox','cart-icon','cart','content-block','header','image-list','navigation-menu','order-template-list','promo-banner','quickview','ratings-histogram','reviews-list','search-result-container-v2','search-result-container','search','sign-in','store-selector','text-block','write-review'],\n iNM: true,\n ns: '@msdyn365-commerce-theme',\n n: 'adventureworks',\n p: 'adventureworks-theme-kit',\n \n pdp: '',\n \n themeSettings: 'adventureworks.theme.settings.json',\n md: 'node_modules/@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks'\n });\n \n\n isNotRegistered('back-top-footer') && (binding.modules['back-top-footer'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-footer-back-top-footer' */\n '@msdyn365-commerce-modules/footer/dist/lib/modules/back-top-footer/back-top-footer'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'back-top-footer',\n p: 'footer',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/footer/dist/lib/modules/back-top-footer'\n });\n \n\n isNotRegistered('breadcrumb') && (binding.modules['breadcrumb'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-breadcrumb-breadcrumb' */\n '@msdyn365-commerce-modules/breadcrumb/dist/lib/modules/breadcrumb/breadcrumb'),\n $type: 'contentModule',\n da: [{name:'categoryHierarchy', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy', runOn: 0},{name:'categoryPaths', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-category-paths', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'breadcrumb',\n p: 'breadcrumb',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/breadcrumb/dist/lib/modules/breadcrumb'\n });\n \n\n isNotRegistered('buybox') && (binding.modules['buybox'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-buybox-buybox' */\n '@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox/buybox'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'catalogs', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'deliveryOptions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview', runOn: 1},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productAvailableQuantity', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant', runOn: 0},{name:'productDimensions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant', runOn: 0},{name:'productPrice', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant', runOn: 0},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'buybox',\n p: 'buybox',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox'\n });\n \n\n isNotRegistered('carousel') && (binding.modules['carousel'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-carousel-carousel' */\n '@msdyn365-commerce-modules/carousel/dist/lib/modules/carousel/carousel'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'carousel',\n p: 'carousel',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/carousel/dist/lib/modules/carousel'\n });\n \n\n isNotRegistered('category-page-summary') && (binding.modules['category-page-summary'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-page-summary-category-page-summary' */\n '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'pageSummary', path:'@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary/category-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'category-page-summary',\n p: 'page-summary',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary'\n });\n \n\n isNotRegistered('checkout-google-pay') && (binding.modules['checkout-google-pay'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-google-pay' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-google-pay/checkout-google-pay'),\n $type: 'contentModule',\n da: [{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-google-pay',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-google-pay'\n });\n \n\n isNotRegistered('content-block') && (binding.modules['content-block'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-content-block-content-block' */\n '@msdyn365-commerce-modules/content-block/dist/lib/modules/content-block/content-block'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'content-block',\n p: 'content-block',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/content-block/dist/lib/modules/content-block'\n });\n \n\n isNotRegistered('cookie-compliance') && (binding.modules['cookie-compliance'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-cookie-compliance-cookie-compliance' */\n '@msdyn365-commerce-modules/cookie-compliance/dist/lib/modules/cookie-compliance/cookie-compliance'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'cookie-compliance',\n p: 'cookie-compliance',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/cookie-compliance/dist/lib/modules/cookie-compliance'\n });\n \n\n isNotRegistered('country-picker') && (binding.modules['country-picker'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-country-picker-country-picker' */\n '@msdyn365-commerce-modules/country-picker/dist/lib/modules/country-picker/country-picker'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'country-picker',\n p: 'country-picker',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/country-picker/dist/lib/modules/country-picker'\n });\n \n\n isNotRegistered('default-container') && (binding.modules['default-container'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-container' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container/default-container'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-container',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container'\n });\n \n\n isNotRegistered('default-container-2-slots') && (binding.modules['default-container-2-slots'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-container-2-slots' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container-2-slots/default-container-2-slots'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-container-2-slots',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container-2-slots'\n });\n \n\n isNotRegistered('default-container-3-slots') && (binding.modules['default-container-3-slots'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-container-3-slots' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container-3-slots/default-container-3-slots'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-container-3-slots',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-container-3-slots'\n });\n \n\n isNotRegistered('default-external-script') && (binding.modules['default-external-script'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-external-script' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-external-script/default-external-script'),\n $type: 'scriptModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-external-script',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-external-script'\n });\n \n\n isNotRegistered('default-inline-script') && (binding.modules['default-inline-script'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-inline-script' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-inline-script/default-inline-script'),\n $type: 'scriptModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-inline-script',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-inline-script'\n });\n \n\n isNotRegistered('default-inline-style') && (binding.modules['default-inline-style'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-inline-style' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-inline-style/default-inline-style'),\n $type: 'styleModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-inline-style',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-inline-style'\n });\n \n\n isNotRegistered('default-metatags') && (binding.modules['default-metatags'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-metatags' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-metatags/default-metatags'),\n $type: 'htmlHeadTagsModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-metatags',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-metatags'\n });\n \n\n isNotRegistered('default-page') && (binding.modules['default-page'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-default-page' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/default-page/default-page'),\n $type: 'pageModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-page',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/default-page'\n });\n \n\n isNotRegistered('default-page-summary') && (binding.modules['default-page-summary'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-page-summary-default-page-summary' */\n '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'pageSummary', path:'@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'default-page-summary',\n p: 'page-summary',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary'\n });\n \n\n isNotRegistered('fabrikam') && (binding.modules['fabrikam'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-fabrikam-design-kit-fabrikam' */\n '@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/fabrikam'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['buybox','content-block','media-gallery','navigation-menu','promo-banner','text-block'],\n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'fabrikam',\n p: 'fabrikam-design-kit',\n \n pdp: '',\n \n themeSettings: 'fabrikam.theme.settings.json',\n md: 'node_modules/@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam'\n });\n \n\n isNotRegistered('footer-category') && (binding.modules['footer-category'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-footer-footer-category' */\n '@msdyn365-commerce-modules/footer/dist/lib/modules/footer-category/footer-category'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'footer-category',\n p: 'footer',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/footer/dist/lib/modules/footer-category'\n });\n \n\n isNotRegistered('footer-item') && (binding.modules['footer-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-footer-footer-item' */\n '@msdyn365-commerce-modules/footer/dist/lib/modules/footer-item/footer-item'),\n $type: 'moduleDefinition',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'footer-item',\n p: 'footer',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/footer/dist/lib/modules/footer-item'\n });\n \n\n isNotRegistered('header') && (binding.modules['header'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-header-header' */\n '@msdyn365-commerce-modules/header/dist/lib/modules/header/header'),\n $type: 'containerModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action', runOn: 1},{name:'employee', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-employee', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'header',\n p: 'header',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/header/dist/lib/modules/header'\n });\n \n\n isNotRegistered('html-block') && (binding.modules['html-block'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-html-block-html-block' */\n '@msdyn365-commerce-modules/html-block/dist/lib/modules/html-block/html-block'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'html-block',\n p: 'html-block',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/html-block/dist/lib/modules/html-block'\n });\n \n\n isNotRegistered('iframe') && (binding.modules['iframe'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-iframe-iframe' */\n '@msdyn365-commerce-modules/iframe/dist/lib/modules/iframe/iframe'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'iframe',\n p: 'iframe',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/iframe/dist/lib/modules/iframe'\n });\n \n\n isNotRegistered('image-list') && (binding.modules['image-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-image-list-image-list' */\n '@msdyn365-commerce-modules/image-list/dist/lib/modules/image-list/image-list'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'image-list',\n p: 'image-list',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/image-list/dist/lib/modules/image-list'\n });\n \n\n isNotRegistered('interactive-feature-collection') && (binding.modules['interactive-feature-collection'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-interactive-feature-collection-interactive-feature-collection' */\n '@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-collection/interactive-feature-collection'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'interactive-feature-collection',\n p: 'interactive-feature-collection',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-collection'\n });\n \n\n isNotRegistered('interactive-feature-item') && (binding.modules['interactive-feature-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-interactive-feature-collection-interactive-feature-item' */\n '@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-item/interactive-feature-item'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'interactive-feature-item',\n p: 'interactive-feature-collection',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-item'\n });\n \n\n isNotRegistered('list-page-summary') && (binding.modules['list-page-summary'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-page-summary-list-page-summary' */\n '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'pageSummary', path:'@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary/list-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'list-page-summary',\n p: 'page-summary',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary'\n });\n \n\n isNotRegistered('media-gallery') && (binding.modules['media-gallery'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-media-gallery-media-gallery' */\n '@msdyn365-commerce-modules/media-gallery/dist/lib/modules/media-gallery/media-gallery'),\n $type: 'contentModule',\n da: [{name:'mediaLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-by-id', runOn: 0},{name:'mediaLocationsForSelectedVariant', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-for-selected-variant', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'media-gallery',\n p: 'media-gallery',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/media-gallery/dist/lib/modules/media-gallery'\n });\n \n\n isNotRegistered('navigation-menu') && (binding.modules['navigation-menu'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-navigation-menu-navigation-menu' */\n '@msdyn365-commerce-modules/navigation-menu/dist/lib/modules/navigation-menu/navigation-menu'),\n $type: 'contentModule',\n da: [{name:'categories', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'navigation-menu',\n p: 'navigation-menu',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/navigation-menu/dist/lib/modules/navigation-menu'\n });\n \n\n isNotRegistered('notifications-list') && (binding.modules['notifications-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-notifications-lists-notifications-list' */\n '@msdyn365-commerce-modules/notifications-lists/dist/lib/modules/notifications-list/notifications-list'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'notifications-list',\n p: 'notifications-lists',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/notifications-lists/dist/lib/modules/notifications-list'\n });\n \n\n isNotRegistered('place-holder-for-container-preview') && (binding.modules['place-holder-for-container-preview'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-place-holder-for-container-preview' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/place-holder-for-container-preview/place-holder-for-container-preview'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'place-holder-for-container-preview',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/place-holder-for-container-preview'\n });\n \n\n isNotRegistered('product-collection') && (binding.modules['product-collection'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-product-collection-product-collection' */\n '@msdyn365-commerce-modules/product-collection/dist/lib/modules/product-collection/product-collection'),\n $type: 'containerModule',\n da: [{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'product-collection',\n p: 'product-collection',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/product-collection/dist/lib/modules/product-collection'\n });\n \n\n isNotRegistered('product-page-summary') && (binding.modules['product-page-summary'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-page-summary-product-page-summary' */\n '@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'productPageSummary', path:'@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'product-page-summary',\n p: 'page-summary',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary'\n });\n \n\n isNotRegistered('product-specification') && (binding.modules['product-specification'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-product-specification-product-specification' */\n '@msdyn365-commerce-modules/product-specification/dist/lib/modules/product-specification/product-specification'),\n $type: 'contentModule',\n da: [{name:'additionalMediaLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-additional-media-locations-for-selected-variant', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productSpecificationData', path:'@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'product-specification',\n p: 'product-specification',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/product-specification/dist/lib/modules/product-specification'\n });\n \n\n isNotRegistered('promo-banner') && (binding.modules['promo-banner'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-promo-banner-promo-banner' */\n '@msdyn365-commerce-modules/promo-banner/dist/lib/modules/promo-banner/promo-banner'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'promo-banner',\n p: 'promo-banner',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/promo-banner/dist/lib/modules/promo-banner'\n });\n \n\n isNotRegistered('quickview') && (binding.modules['quickview'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-buybox-quickview' */\n '@msdyn365-commerce-modules/buybox/dist/lib/modules/quickview/quickview'),\n $type: 'containerModule',\n da: [{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'quickview',\n p: 'buybox',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/buybox/dist/lib/modules/quickview'\n });\n \n\n isNotRegistered('script-injector') && (binding.modules['script-injector'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-core-components-script-injector' */\n '@msdyn365-commerce-modules/core-components/dist/lib/modules/script-injector/script-injector'),\n $type: 'scriptModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'script-injector',\n p: 'core-components',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/core-components/dist/lib/modules/script-injector'\n });\n \n\n isNotRegistered('search') && (binding.modules['search'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-search-search' */\n '@msdyn365-commerce-modules/search/dist/lib/modules/search/search'),\n $type: 'contentModule',\n da: [{name:'searchState', path:'@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'search',\n p: 'search',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/search/dist/lib/modules/search'\n });\n \n\n isNotRegistered('search-result-container') && (binding.modules['search-result-container'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-search-result-container-search-result-container' */\n '@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/search-result-container'),\n $type: 'containerModule',\n da: [{name:'category', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category', runOn: 0},{name:'categoryHierarchy', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy', runOn: 0},{name:'featureProduct', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'listPageState', path:'@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/list-page-state', runOn: 0},{name:'products', path:'@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-full-products-by-collection', runOn: 0},{name:'refiners', path:'@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-refiners-for-collection', runOn: 0},{name:'searchConfiguration', path:'@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-mapped-search-configuration', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'search-result-container',\n p: 'search-result-container',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container'\n });\n \n\n isNotRegistered('site-picker') && (binding.modules['site-picker'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-site-picker-site-picker' */\n '@msdyn365-commerce-modules/site-picker/dist/lib/modules/site-picker/site-picker'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'site-picker',\n p: 'site-picker',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/site-picker/dist/lib/modules/site-picker'\n });\n \n\n isNotRegistered('social-share') && (binding.modules['social-share'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-social-share-social-share' */\n '@msdyn365-commerce-modules/social-share/dist/lib/modules/social-share/social-share'),\n $type: 'moduleDefinition',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'social-share',\n p: 'social-share',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/social-share/dist/lib/modules/social-share'\n });\n \n\n isNotRegistered('social-share-item') && (binding.modules['social-share-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-social-share-social-share-item' */\n '@msdyn365-commerce-modules/social-share/dist/lib/modules/social-share-item/social-share-item'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'social-share-item',\n p: 'social-share',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/social-share/dist/lib/modules/social-share-item'\n });\n \n\n isNotRegistered('spacer') && (binding.modules['spacer'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-spacer-spacer' */\n '@msdyn365-commerce-modules/spacer/dist/lib/modules/spacer/spacer'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'spacer',\n p: 'spacer',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/spacer/dist/lib/modules/spacer'\n });\n \n\n isNotRegistered('starter') && (binding.modules['starter'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-starter-theme-pack-starter' */\n '@msdyn365-commerce-modules/starter-theme-pack/dist/lib/modules/starter/starter'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['content-block','promo-banner','text-block'],\n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'starter',\n p: 'starter-theme-pack',\n \n pdp: '',\n \n themeSettings: 'starter.theme.settings.json',\n md: 'node_modules/@msdyn365-commerce-modules/starter-theme-pack/dist/lib/modules/starter'\n });\n \n\n isNotRegistered('tab') && (binding.modules['tab'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-tab-tab' */\n '@msdyn365-commerce-modules/tab/dist/lib/modules/tab/tab'),\n $type: 'moduleDefinition',\n da: [{name:'activeTabState', path:'@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'tab',\n p: 'tab',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/tab/dist/lib/modules/tab'\n });\n \n\n isNotRegistered('tab-item') && (binding.modules['tab-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-tab-tab-item' */\n '@msdyn365-commerce-modules/tab/dist/lib/modules/tab-item/tab-item'),\n $type: 'moduleDefinition',\n da: [{name:'activeTabState', path:'@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'tab-item',\n p: 'tab',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/tab/dist/lib/modules/tab-item'\n });\n \n\n isNotRegistered('text-block') && (binding.modules['text-block'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-text-block-text-block' */\n '@msdyn365-commerce-modules/text-block/dist/lib/modules/text-block/text-block'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'text-block',\n p: 'text-block',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/text-block/dist/lib/modules/text-block'\n });\n \n\n isNotRegistered('tile-list') && (binding.modules['tile-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-tile-list-tile-list' */\n '@msdyn365-commerce-modules/tile-list/dist/lib/modules/tile-list/tile-list'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'tile-list',\n p: 'tile-list',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/tile-list/dist/lib/modules/tile-list'\n });\n \n\n isNotRegistered('tile-list-item') && (binding.modules['tile-list-item'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-tile-list-tile-list-item' */\n '@msdyn365-commerce-modules/tile-list/dist/lib/modules/tile-list-item/tile-list-item'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'tile-list-item',\n p: 'tile-list',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/tile-list/dist/lib/modules/tile-list-item'\n });\n \n\n isNotRegistered('video-player') && (binding.modules['video-player'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-video-player-video-player' */\n '@msdyn365-commerce-modules/video-player/dist/lib/modules/video-player/video-player'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'video-player',\n p: 'video-player',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/video-player/dist/lib/modules/video-player'\n });\n \n\n { \n const actionPath = '@msdyn365-commerce-modules/chat/dist/lib/modules/msdyn365-pva-chat-connector/actions/getBotFrameworkToken.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/chat/dist/lib/modules/msdyn365-pva-chat-connector/actions/getBotFrameworkToken.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/addToCart-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/addToCart-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/copyCart-checkOut-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/copyCart-checkOut-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/getById-product-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/getById-product-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/getByIds-product-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/getByIds-product-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/getVariantsByDimensionValues-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/getVariantsByDimensionValues-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/purchase-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/purchase-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/readCart-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/readCart-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/removeFromCart-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/removeFromCart-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/core-components/dist/lib/actions/updateCart-telemetry.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/core-components/dist/lib/actions/updateCart-telemetry.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary/category-page-summary.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary/category-page-summary.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary/list-page-summary.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary/list-page-summary.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary.action';\n binding.dataActions[actionPath] = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary.action');\n registerActionId(actionPath);\n }\n\n if (isNotRegistered('accordion')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('accordion-item')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/accordion/dist/lib/data-actions/accordion-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('active-image')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/active-image/dist/lib/modules/actions/get-active-image-products';\n let dataAction = require('@msdyn365-commerce-modules/active-image/dist/lib/modules/actions/get-active-image-products');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('breadcrumb')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-category-paths';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-category-paths');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('breadcrumb')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('breadcrumb')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('buybox')){\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('category-page-summary')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary/category-page-summary.action';\n let dataAction = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/category-page-summary/category-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-google-pay')){\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('default-page-summary')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.action';\n let dataAction = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('header')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('header')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('header')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-employee';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-employee');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('header')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('header')){\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('list-page-summary')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary/list-page-summary.action';\n let dataAction = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/list-page-summary/list-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('media-gallery')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-by-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-by-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('media-gallery')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-media-locations-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('media-gallery')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('navigation-menu')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-collection')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-page-summary')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary.action';\n let dataAction = require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/product-page-summary/product-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-specification')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-specification')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-additional-media-locations-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-additional-media-locations-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-specification')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('quickview')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('quickview')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('quickview')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-category-hierarchy');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-full-products-by-collection';\n let dataAction = require('@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-full-products-by-collection');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-mapped-search-configuration';\n let dataAction = require('@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-mapped-search-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-refiners-for-collection';\n let dataAction = require('@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/actions/get-refiners-for-collection');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('search-result-container')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/list-page-state';\n let dataAction = require('@msdyn365-commerce-modules/search-result-container/dist/lib/modules/search-result-container/list-page-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('tab')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('tab-item')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/tab/dist/lib/data-actions/tab-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n } catch (e) {\n handleError('-', e);\n }\n \n return binding;\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * Namespace which provides functionality for GUID.\n */\nexport namespace Guid {\n export function generateGuid(): string {\n return uuidv4();\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Guid as _guid } from './guid';\n\nexport namespace Random {\n export import Guid = _guid;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createDataActionHook, IActionContext, IActionInput, IMSDyn365Window } from '@msdyn365-commerce/core';\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\nimport { IProductInfo, TelemetryEvent } from '@msdyn365-commerce/telemetry-internal';\nimport { getProductInfoFromCartLinesAsync } from './telemetry.action.helper';\n\ndeclare let window: IMSDyn365Window;\n\n/**\n * CopyCart data action pre-hook\n * @param inputs Data action inputs\n */\nconst beforeCopyCart = async (inputs: IActionInput | IActionInput[]) => {\n // placeholder\n};\n\n/**\n * Fires an CheckOut event after CopyCart data action completed\n * @param _inputs Data action inputs\n * @param cart New checkout cart\n * @param actionContext Action context\n */\nconst afterCopyCart = async (_inputs: IActionInput | IActionInput[], cart: Cart | Cart[], actionContext: IActionContext) => {\n if (window && window._msdyn365 && window._msdyn365.telemetry) {\n const cartObject = Array.isArray(cart) ? cart[0] : cart;\n let cartLineProductUnits: IProductInfo[] = [];\n\n // Collect info on products in the cart\n if (cartObject && cartObject.CartLines && Array.isArray(cartObject.CartLines) && cartObject.CartLines.length > 0) {\n try {\n cartLineProductUnits = await getProductInfoFromCartLinesAsync(cartObject.CartLines, actionContext);\n } catch (error) {\n actionContext.telemetry.error('CopyCart post-data action hook failed to process cart lines.', error);\n }\n }\n\n // Fire Checkout event\n window._msdyn365.telemetry.logEvent(TelemetryEvent.CheckOut, {\n cartId: cartObject.Id,\n cartVersion: cartObject.Version ? cartObject.Version.toString() : '',\n products: cartLineProductUnits,\n orderId: cartObject.OrderNumber ? cartObject.OrderNumber.toString() : ''\n });\n }\n};\n\ncreateDataActionHook({\n actionId: '@msdyn365-commerce/retail-proxy/Carts/Copy',\n postReaderHook: afterCopyCart,\n preReaderHook: beforeCopyCart\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport {\n ChannelDeliveryOption,\n DeliveryModeTypeFilter,\n FeatureState,\n ItemAvailability,\n OrgUnitAvailability,\n OrgUnitLocation,\n ProductWarehouseInventoryInformation,\n SearchArea,\n StoreHours\n} from '@msdyn365-commerce/retail-proxy';\nimport {\n getChannelDeliveryOptionsAsync,\n getOrgUnitLocationsByAreaAsync,\n getStoreHoursAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\nimport { getEstimatedAvailabilityAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\nimport { FeatureStateInput, getFeatureStateActionDataAction } from './get-feature-state';\nimport { IFullOrgUnitAvailability } from './utilities/full-org-unit-availability';\nimport { DeliveryMode, IProductInventoryInformation } from './utilities/product-inventory-information';\nimport { createInventoryAvailabilitySearchCriteria, mapProductInventoryInformation } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Get selected variant action input class.\n */\nexport class GetFullAvailableInventoryNearbyInput implements IActionInput {\n public latitude?: number;\n\n public longitude?: number;\n\n public radius?: number;\n\n public productId?: number;\n\n public DistanceUnitValue?: number;\n\n public IgnoreLocation?: boolean;\n\n constructor(\n _productId?: number,\n _latitude?: number,\n _longitude?: number,\n _radius?: number,\n _DistanceUnitValue?: number,\n _IgnoreLocation?: boolean\n ) {\n this.productId = _productId;\n this.latitude = _latitude;\n this.longitude = _longitude;\n this.radius = _radius;\n this.DistanceUnitValue = _DistanceUnitValue;\n this.IgnoreLocation = _IgnoreLocation;\n }\n\n public getCacheKey = () => 'GetFullAvailableInventoryNearbyInputCache';\n\n public getCacheObjectType = () => 'GetFullAvailableInventoryNearbyInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the getSelectedVariant data action.\n * @param inputData - The input data passed to the createInput method.\n * @returns GetFullAvailableInventoryNearbyInput - The action input.\n */\nexport const createGetFullAvailableInventoryNearbyInput = (\n inputData: ICreateActionContext>\n): GetFullAvailableInventoryNearbyInput => {\n return new GetFullAvailableInventoryNearbyInput();\n};\n\n/**\n * Calls the Retail Feature State API and returns a list of feature with isEnabled flag.\n * @param context - The context.\n * @returns FeatureState - The feature state.\n */\nexport async function getFeatureState(context: IActionContext): Promise {\n return getFeatureStateActionDataAction(new FeatureStateInput(), context);\n}\n\n/**\n * Action method for the getSelectedVariant data aciton.\n * @param input - The action input class.\n * @param ctx - The action context.\n * @returns IFullOrgUnitAvailability - The full org unit availability.\n */\nexport async function getFullAvailableInventoryNearbyAction(\n input: GetFullAvailableInventoryNearbyInput,\n ctx: IActionContext\n): Promise {\n // No valid product we want to return undefined so module knows there are no results yet\n if (!input.productId) {\n return undefined;\n }\n\n if (((!input.radius && input.radius !== 0) || !input.latitude || !input.longitude) && !input.IgnoreLocation) {\n // No valid location we want to return empty array so module can show no locations message\n return [];\n }\n\n const searchArea: SearchArea = {\n Latitude: input.latitude,\n Longitude: input.longitude,\n Radius: input.radius,\n DistanceUnitValue: input.DistanceUnitValue || 0 // 0 is miles\n };\n\n const featureState = await getFeatureState(ctx);\n const retailMulitplePickupMFeatureState = featureState?.find(\n item => item.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'\n )?.IsEnabled;\n const searchCriteria = createInventoryAvailabilitySearchCriteria(ctx, [input.productId], false, true, searchArea, DeliveryMode.pickup);\n return getEstimatedAvailabilityAsync({ callerContext: ctx }, searchCriteria)\n .then(async (productWarehouseInformation: ProductWarehouseInventoryInformation) => {\n // For store selector, inventory should always come from an individual store\n const productInventoryInformation = mapProductInventoryInformation(\n ctx,\n productWarehouseInformation.ProductWarehouseInventoryAvailabilities\n );\n return getOrgUnitLocationsByAreaAsync(\n {\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n },\n searchArea,\n DeliveryModeTypeFilter.Pickup\n )\n .then(async (stores: OrgUnitLocation[]) => {\n // Constructing a store mapping based on the InventoryId.\n const storeMap = new Map();\n stores.forEach(store => {\n if (store.InventoryLocationId) {\n storeMap.set(store.InventoryLocationId, store);\n }\n });\n\n let locationDeliveryOptions: ChannelDeliveryOption[] | undefined = [];\n\n // If multiple pickup mode is enable then call getchanneldeliveryoption\n if (retailMulitplePickupMFeatureState) {\n const orgUnitChannel = stores.map(store => store.ChannelId);\n locationDeliveryOptions = await _getLocationPickUpDeliveryModes(orgUnitChannel, ctx);\n }\n\n const availabilityPromiseList = stores.map(store => {\n const locationDeliveryOption = locationDeliveryOptions?.find(\n _channeldeliveryoption => _channeldeliveryoption.ChannelId === store.ChannelId\n );\n return _getAvailabilityWithHours(store, productInventoryInformation, storeMap, ctx, locationDeliveryOption);\n });\n\n return Promise.all(availabilityPromiseList);\n })\n .catch((error: Error) => {\n ctx.trace('[GetFullAvailableInventoryNearby] error getting Available Inventory Nearby');\n ctx.trace(error.message);\n ctx.telemetry.error(error.message);\n ctx.telemetry.debug('[GetFullAvailableInventoryNearby] error getting Available Inventory Nearby');\n return [];\n });\n })\n .catch((error: Error) => {\n ctx.trace(\n '[GetFullAvailableInventoryNearby][getEstimatedAvailabilityAsync] error getting availability product warehouse information.'\n );\n ctx.trace(error.message);\n ctx.telemetry.error(error.message);\n ctx.telemetry.debug(\n '[GetFullAvailableInventoryNearby][getEstimatedAvailabilityAsync] error getting availability product warehouse information.'\n );\n return [];\n });\n}\n\n/**\n * Action method that obtains the store information along with store hours and product availability.\n * @param orgUnitLocation - The org unit location.\n * @param productInventoryInformation - The product inventory information.\n * @param storeMap - A map that contains store information group by the inventory location id.\n * @param ctx The action context.\n * @param channelDeleiveryOptions - The channel delivery options.\n * @returns IFullOrgUnitAvailability - The full org unit availability.\n */\nasync function _getAvailabilityWithHours(\n orgUnitLocation: OrgUnitLocation,\n productInventoryInformation: IProductInventoryInformation[],\n storeMap: Map,\n ctx: IActionContext,\n channelDeleiveryOptions: ChannelDeliveryOption | undefined\n): Promise {\n if (!orgUnitLocation || !orgUnitLocation.OrgUnitNumber) {\n return { OrgUnitAvailability: undefined };\n }\n\n return getStoreHoursAsync({ callerContext: ctx }, orgUnitLocation.OrgUnitNumber)\n .then((hours: StoreHours) => {\n const itemAvailabilities: ItemAvailability[] = [];\n if (productInventoryInformation && storeMap) {\n productInventoryInformation.forEach(element => {\n if (\n element.InventLocationId &&\n storeMap.has(element.InventLocationId) &&\n element.InventLocationId === orgUnitLocation.InventoryLocationId\n ) {\n itemAvailabilities.push({ AvailableQuantity: element.ProductAvailableQuantity?.AvailableQuantity });\n }\n });\n }\n\n const availability: OrgUnitAvailability = {\n OrgUnitLocation: orgUnitLocation,\n ItemAvailabilities: itemAvailabilities\n };\n\n if (hours && !(hours instanceof Error)) {\n return {\n OrgUnitAvailability: availability,\n StoreHours: hours,\n ProductInventoryInformation: productInventoryInformation,\n OrgUnitPickUpDeliveryModes: channelDeleiveryOptions\n };\n }\n\n return {\n OrgUnitAvailability: availability,\n ProductInventoryInformation: productInventoryInformation,\n OrgUnitPickUpDeliveryModes: channelDeleiveryOptions\n };\n })\n .catch((error: Error) => {\n ctx.trace('[GetFullAvailableInventoryNearby] error getting availability with hours');\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[GetFullAvailableInventoryNearby] error getting availability with hours');\n return { OrgUnitAvailability: {} };\n });\n}\n\n/**\n * Action method that obtains the channel delivery option information.\n * @param channelCollection - The org unit channel Id list.\n * @param ctx - The action context.\n * @returns ChannelDeliveryOption - The channel delivery option collection.\n */\nasync function _getLocationPickUpDeliveryModes(\n channelCollection: (number | undefined)[],\n ctx: IActionContext\n): Promise {\n if (channelCollection?.length === 0 || channelCollection === undefined) {\n return undefined;\n }\n\n const channelIdList: number[] = [];\n channelCollection?.forEach(id => {\n if (id !== undefined) {\n channelIdList.push(id);\n }\n });\n\n // To get all channel pickup delivery mode filterOption should be 4\n return getChannelDeliveryOptionsAsync(\n {\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n },\n channelIdList,\n 4\n )\n .then((channelDeliveryOptions: ChannelDeliveryOption[]) => {\n if (channelDeliveryOptions && !(channelDeliveryOptions instanceof Error)) {\n return channelDeliveryOptions;\n }\n\n return undefined;\n })\n .catch((error: Error) => {\n ctx.trace(\n '[GetFullAvailableInventoryNearby][getChannelDeliveryOptionsAsync] error getting availability with channel delivery options'\n );\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug(\n '[GetFullAvailableInventoryNearby] [getChannelDeliveryOptionsAsync] error getting availability with channel delivery options'\n );\n return [];\n });\n}\n\n/**\n * The complete getFullAvailableInventoryNearby data action.\n */\nexport const getFullAvailableInventoryNearbyActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-full-available-inventory-nearby',\n action: >getFullAvailableInventoryNearbyAction,\n input: createGetFullAvailableInventoryNearbyInput\n});\n\nexport default getFullAvailableInventoryNearbyActionDataAction;\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { CommerceListLine } from '@msdyn365-commerce/retail-proxy';\nimport { getByCustomerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CommerceListsDataActions.g';\n\nimport { FullProductInput, getFullProducts, getProductDetailsCriteriaFromActionInput } from '.';\n\n/**\n * Input class for getActiveWishlistItems data action.\n */\nexport class ActiveWishlistInput implements IActionInput {\n public getCacheKey = () => 'ActiveWishlistItems';\n\n public getCacheObjectType = () => 'ActiveWishlistItems';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nconst createInput = (inputData: ICreateActionContext) => {\n return new ActiveWishlistInput();\n};\n\n/**\n * Calls the Retail API and returns a CommerceList object based on the passed GetCartInput.\n * @param input\n * @param ctx\n */\nexport async function getActiveWishlistItems(input: ActiveWishlistInput, ctx: IActionContext): Promise {\n // If no cart ID is provided in input, we need to create a cart object\n if (!input) {\n throw new Error('[getActiveWishlistItems]No valid Input was provided, failing');\n }\n\n if (ctx.requestContext.user.isAuthenticated) {\n const wishlists = await getByCustomerAsync(\n {\n callerContext: ctx,\n queryResultSettings: {}\n },\n null\n );\n\n if (wishlists && wishlists.length > 0) {\n const productInputs: FullProductInput[] = [];\n if (wishlists[0].CommerceListLines) {\n wishlists[0].CommerceListLines.forEach((commerceListLine: CommerceListLine) => {\n if (commerceListLine.ProductId) {\n productInputs.push(\n new FullProductInput(\n commerceListLine.ProductId,\n ctx.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(ctx),\n ctx.requestContext\n )\n );\n }\n });\n }\n\n if (productInputs.length > 0) {\n return getFullProducts(productInputs, ctx)\n .then(products => {\n if (products) {\n return products;\n }\n return [];\n })\n .catch(error => {\n ctx.trace(error);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[getActiveWishlistItems]Unable to hydrate cart with product information');\n throw new Error('[getActiveWishlistItems]Unable to hydrate cart with product information');\n });\n }\n ctx.trace('No productIds found for wishlist');\n } else {\n ctx.trace('[getActiveWishlistItems]Not able to get wishlists for the customer');\n return [];\n }\n }\n ctx.trace('[getActiveWishlistItems]User token not found for wishlists');\n return [];\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-items-in-wishlist',\n action: >getActiveWishlistItems,\n input: createInput\n});\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { getActivePricesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductPrice, ProductType, ProjectionDomain, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { getSelectedProductIdFromActionInput, getSelectedVariant, SelectedVariantInput } from '.';\nimport { FeatureStateInput, getFeatureStateActionDataAction } from './get-feature-state';\nimport { ArrayExtensions } from './utilities';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Input class for the GetPriceForSelectedVariant Data Action.\n */\nexport class PriceForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public selectedProduct: SimpleProduct | undefined;\n\n public customerId?: string;\n\n public constructor(productId: number, channelId: number, selectedProduct?: SimpleProduct, customerId?: string) {\n this.productId = productId;\n this.channelId = channelId;\n this.selectedProduct = selectedProduct;\n this.customerId = customerId ?? '';\n }\n\n public getCacheKey = (): string => 'PriceForSelectedVariant';\n\n public getCacheObjectType = (): string => 'Price';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * The createInput method for the GetPriceForSelectedVariantDataAction.\n * @param inputData - The input data for the createInput method.\n * @returns The PriceForSelectedVariantInput.\n */\nexport const createActivePriceForSelectedVariantInput = (inputData: ICreateActionContext>): PriceForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new PriceForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, undefined);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * The Action Method for the GetPriceForSelectedVariant Data Action\n * Pulls the currently selected variant from the cache using the getSelectedVariant data action, and gets it's current contextual price\n * via the getActivePrice RetailServer API.\n * @param input - The input.\n * @param ctx - The ctx.\n * @returns The Promise.\n */\nexport async function getPriceForSelectedVariantAction(\n input: PriceForSelectedVariantInput,\n ctx: IActionContext\n): Promise {\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(\n input.productId,\n input.channelId,\n undefined,\n undefined,\n ctx.requestContext\n );\n\n return getSelectedVariant(selectedVariantInput, ctx);\n }\n\n return activeProduct;\n })\n .then(async (productResult: SimpleProduct | null) => {\n const catalogId = getCatalogId(ctx.requestContext);\n const projectDomain: ProjectionDomain = {\n ChannelId: +ctx.requestContext.apiSettings.channelId,\n CatalogId: catalogId\n };\n\n const activeProduct: SimpleProduct | undefined = productResult as SimpleProduct | undefined;\n if (activeProduct) {\n const featureStates: FeatureState[] = await getFeatureStateActionDataAction(new FeatureStateInput(), ctx);\n return getActivePricesAsync(\n { callerContext: ctx, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx) },\n projectDomain,\n [activeProduct.RecordId],\n new Date(),\n input.customerId,\n undefined,\n true,\n featureStates.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature')\n ?.IsEnabled &&\n (activeProduct.ProductTypeValue === ProductType.Master || activeProduct.ProductTypeValue === ProductType.KitMaster),\n featureStates.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\n )?.IsEnabled\n ).then((productPrices: ProductPrice[]) => {\n if (!ArrayExtensions.hasElements(productPrices)) {\n throw new Error('[getPriceForSelectedVariantAction]Invalid response recieved from getActivePricesAsync');\n }\n return productPrices[0];\n });\n }\n\n return null;\n })\n .catch((error: Error) => {\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[getPriceForSelectedVariantAction]Error executing action');\n throw new Error('[getPriceForSelectedVariantAction]Error executing action');\n });\n}\n\nexport const getPriceForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-price-for-selected-variant',\n action: getPriceForSelectedVariantAction as IAction,\n input: createActivePriceForSelectedVariantInput\n});\n\nexport default getPriceForSelectedVariantActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getByIdAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { IProductInfo } from '@msdyn365-commerce/telemetry-internal';\n\n/**\n * Converts cart line products into promise of array of product info\n * @param cartLines Cart Lines with product info to collect\n * @param actionContext Action context\n * @returns Array of product info\n */\nexport const getProductInfoFromCartLinesAsync = async (cartLines: CartLine[], actionContext: IActionContext): Promise => {\n if (actionContext.requestContext.channel === undefined) {\n throw new Error('Unable to make product call, channel ID not provided');\n }\n\n const productPromises: Promise[] = [];\n\n // Call GetById API for all products in cartLines\n for (let i = 0; i < cartLines.length; i++) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n const cartLine: CartLine = cartLines[i];\n\n if (cartLine.ProductId) {\n // The product id in cartLine actually contains recordId and not master product id so we can use it up here to lookup product.\n productPromises.push(\n getByIdAsync({ callerContext: actionContext }, cartLine.ProductId, actionContext.requestContext.channel.RecordId).then(\n result => {\n // Construct basic IProductInfo object for product\n const productInfo = getProductInfoFromSimpleProduct(result);\n\n // Attach fields from the CartLine\n productInfo.productPrice = cartLine.Price ? cartLine.Price.toString() : '';\n productInfo.productQuantity = cartLine.Quantity ? cartLine.Quantity.toString() : '';\n\n return productInfo;\n },\n reason => {\n throw new Error(`Failed to get product details for product ${cartLine.ProductId}.\\n${reason}`);\n }\n )\n );\n }\n }\n\n // Return promise for array of product results\n return Promise.all(productPromises);\n};\n\n/**\n * Converts a SimpleProduct object into an IProductInfo object\n * @param simpleProduct Simple Product object\n * @returns Populated IProductInfo\n */\nexport const getProductInfoFromSimpleProduct = (simpleProduct: SimpleProduct): IProductInfo => {\n const recordId = simpleProduct.RecordId || '';\n\n return {\n // If master product id is not available then product record id is master product id\n productId: simpleProduct.MasterProductId ? simpleProduct.MasterProductId.toString() : recordId.toString(),\n productSku: recordId ? recordId.toString() : '',\n productName: simpleProduct.Name || simpleProduct.Description || '',\n productPrice: simpleProduct.Price ? simpleProduct.Price.toString() : '',\n productChannelId: '', // Not needed for each product, sent as part of all events\n productChannelName: '',\n productCategoryId: '',\n productCategoryName: '',\n productQuantity: '', // Cannot be deteremined from SimpleProduct, will be added from CartLine later\n productCurrency: '' // Not needed for each product, sent as part of all events with product data\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRefineFullProductSearchOutput } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ProductRefinerValue } from '@msdyn365-commerce/retail-proxy';\nimport { refineSearchByTextAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\nimport { ProductDetailsCriteria } from './get-full-products';\nimport { parseSearchData } from './utilities/input-data-parser';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { getRefinedFullProducts, IRefinableProductsInput } from './utilities/refiner-utils';\nimport { getProductDetailsCriteriaFromActionInput } from './utilities/utils';\n\n/**\n * Input for refining products returned by the search text.\n */\nexport class FullProductsRefineSearchByTextInput implements IActionInput, IRefinableProductsInput {\n public readonly searchText: string;\n\n public readonly channelId?: number;\n\n public readonly refinementCriteria: ProductRefinerValue[];\n\n public readonly itemsPerPage?: number;\n\n public readonly skipCount?: number;\n\n public readonly catalogId: number;\n\n public productDetailsCriteria?: ProductDetailsCriteria;\n\n public readonly queryResultSettingsProxy: QueryResultSettingsProxy;\n\n public constructor(\n queryResultSettingsProxy: QueryResultSettingsProxy,\n searchText?: string,\n channelId?: number,\n refinementCriteria?: ProductRefinerValue[],\n catalogId?: number,\n criteria?: ProductDetailsCriteria\n ) {\n this.queryResultSettingsProxy = queryResultSettingsProxy;\n this.searchText = searchText || '';\n this.channelId = channelId;\n this.refinementCriteria = refinementCriteria || [];\n this.catalogId = catalogId ?? 0;\n this.productDetailsCriteria = criteria;\n }\n\n public getCacheKey = () => 'FullProductsRefineSearchByTextInputCache';\n\n public getCacheObjectType = () => 'FullProductsRefineSearchByTextInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Creates the input required to make the core action calls.\n * @param inputData\n */\nexport const createFullProductsRefineSearchByTextInput = (inputData: ICreateActionContext>): IActionInput => {\n const refinementCriteria = inputData.config && inputData.config.refinementCriteria;\n const queryResultSettingsProxy = QueryResultSettingsProxy.fromInputData(inputData);\n if (!Array.isArray(refinementCriteria)) {\n return new FullProductsRefineSearchByTextInput(queryResultSettingsProxy);\n }\n\n const searchInputData = parseSearchData(inputData);\n const productDetailsCriteria = getProductDetailsCriteriaFromActionInput(inputData);\n\n return new FullProductsRefineSearchByTextInput(\n queryResultSettingsProxy,\n searchInputData.q,\n searchInputData.channelId,\n refinementCriteria,\n undefined,\n productDetailsCriteria\n );\n};\n\n/**\n * Calls the refine-search-by-text action.\n * Based on search result calls get-full-products to get all the product details.\n * @param input\n * @param ctx\n */\nexport function getFullProductsByRefineSearchTextAction(\n input: FullProductsRefineSearchByTextInput,\n ctx: IActionContext\n): Promise {\n const catalogId = getCatalogId(ctx.requestContext);\n\n return getRefinedFullProducts(input, ctx, () => {\n return refineSearchByTextAsync(\n { callerContext: ctx, queryResultSettings: input.queryResultSettingsProxy.QueryResultSettings },\n input.channelId || 0,\n input.catalogId || catalogId,\n input.searchText,\n input.refinementCriteria\n );\n });\n}\n\nexport const getFullProductsByRefineSearchTextActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-full-products-by-refine-search-text',\n action: >getFullProductsByRefineSearchTextAction,\n input: createFullProductsRefineSearchByTextInput,\n isBatched: false\n});\n\nexport default getFullProductsByRefineSearchTextActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRefineFullProductSearchOutput } from '@msdyn365-commerce/commerce-entities';\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { ProductRefinerValue, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\n\nimport getFullProducts, { FullProductInput, ProductDetailsCriteria } from '../get-full-products';\n\n/**\n * Common refinable products input includes both product detail criteria and refinement criteria.\n */\nexport interface IRefinableProductsInput {\n refinementCriteria: ProductRefinerValue[];\n productDetailsCriteria?: ProductDetailsCriteria;\n}\n\n/**\n * If refinement criteria is set, then gets refined products.\n * @param input Refinable products input.\n * @param ctx Action context.\n * @param getRefinedProducts Callback function to get a promise (e.g. RefineSearchByCategoryAsync, refineSearchByTextAsync)\n * that is executed to get refined products or full set of products.\n */\nexport async function getRefinedFullProducts(\n input: IRefinableProductsInput,\n ctx: IActionContext,\n getRefinedProducts: () => Promise\n): Promise {\n if (!input || !input.refinementCriteria) {\n ctx.trace('[getFullProductsByRefineSearchCategoryAction] Invalid input.');\n return {};\n }\n\n if (input.refinementCriteria.length === 0) {\n ctx.trace('[getFullProductsByRefineSearchCategoryAction] No refiners specified.');\n return {};\n }\n const { apiSettings } = ctx.requestContext;\n\n let fullProductInputs: FullProductInput[] = [];\n\n const searchResults = await getRefinedProducts();\n if (!searchResults) {\n ctx.telemetry.error('[getFullProductsByRefineSearchCategoryAction] no searchResults returned');\n } else {\n fullProductInputs = searchResults.map(\n (product: ProductSearchResult): FullProductInput => {\n return new FullProductInput(\n product.RecordId,\n apiSettings,\n input.productDetailsCriteria || new ProductDetailsCriteria(),\n ctx.requestContext\n );\n }\n );\n }\n\n if (fullProductInputs.length > 0) {\n const productResult = await getFullProducts(fullProductInputs, ctx);\n return {\n productSearchResult: productResult,\n refinementCriteria: input.refinementCriteria\n };\n }\n return {\n productSearchResult: [],\n refinementCriteria: input.refinementCriteria\n };\n}\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { IParameterizeFeatureFlags } from '@msdyn365-commerce/core';\n\nexport function parameterize(\n name: string = '',\n sep = '-',\n parameterizeFeatureFlags: IParameterizeFeatureFlags = {},\n neutralizedName?: string\n) {\n // If neutralizedName flag enabled, we use neutralizedName to construct string\n const candidateName =\n (msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.enableUrlLocalization) ||\n parameterizeFeatureFlags.enableUrlLocalization\n ? name\n : neutralizedName || name;\n\n /*\n 1\t‘ ‘ (space)\t-> (single dash)\n 3\tAny character disallowed in URLs -> URL-encode\n 5\t‘ & ‘ (space ampersand space) -> (single dash)\n 6\t‘ - ‘ (space dash space) -> (single dash)\n 7\t‘ ‘ (2+ spaces) -> (single dash)\n 10\t[A-Z] (capital letters) -> [a-z] (lower-case)\n 12\tAny non-ASCII character outside of the set of disallowed characters -> URL-encode\n */\n if (\n parameterizeFeatureFlags.enableUrlEncoding ||\n (msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.enableUrlEncoding)\n ) {\n // Replace url reserved characters with dash, and remove front and end dash;\n // &*!() reserved characters that can not be encoded by encodeURIComponent()\n return encodeURIComponent(\n candidateName\n .toLowerCase()\n .replace(/[\\s!&'()*]+/g, '-')\n .trim()\n .replace(/-+/g, '-')\n .replace(/^-+|-+$/g, '')\n );\n }\n return name\n .toLowerCase()\n .replace(/[^\\d_a-z\\-]+/g, ' ')\n .trim()\n .replace(/\\s+/g, sep);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { getParameterizeFeatureFlags, getUrlSync, IActionContext, IParameterizeFeatureFlags } from '@msdyn365-commerce/core';\n\nimport { parameterize } from './parameterize';\n\ninterface ICategoryMap {\n [RecordId: number]: CategoryHierarchy;\n}\n\n/**\n * Builds slugs for category.\n * @param category\n * @param categoryMap\n * @param parameterizeFeatureFlags\n */\nexport function getCategorySlug(\n category: CategoryHierarchy,\n categoryMap: ICategoryMap,\n parameterizeFeatureFlags?: IParameterizeFeatureFlags\n): string {\n if (!category || !category.Name) {\n // Invalid category\n return '';\n }\n const categoryName = parameterize(category.Name, undefined, parameterizeFeatureFlags, category.NeutralizedName);\n if (!category.ParentCategory || category.ParentCategory === 0) {\n // Base case assign url\n category.Slug = category.Slug || `/${categoryName}`;\n } else if (category.ParentCategory) {\n category.Slug =\n category.Slug ||\n `${getCategorySlug(categoryMap[category.ParentCategory], categoryMap, parameterizeFeatureFlags)}/${categoryName}`;\n }\n\n return category.Slug || '';\n}\n\n/**\n * Gets Url for category hierarchy. Returns string and adds url to Url property of category hierarchy.\n * @param category Category to generate URL for.\n * @param ctx\n * @param categoryMap Dictionary of all categories.\n */\nexport function getCategoryUrl(category: CategoryHierarchy, ctx?: IActionContext, categoryMap?: ICategoryMap): string | undefined {\n if (!category.Url && ctx && categoryMap) {\n if (!category.Slug) {\n const parameterizeFeatureFlags: IParameterizeFeatureFlags = ctx.requestContext ? getParameterizeFeatureFlags(ctx) : {};\n category.Slug = getCategorySlug(category, categoryMap, parameterizeFeatureFlags);\n }\n category.Url = getUrlSync('category', ctx, { category });\n }\n return category.Url;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Syncronously creates a product url.\n * @param product Simple product to get url from.\n * @param ctx\n * @param category Category to add to product url.\n */\nexport function getProductUrlSync(product: SimpleProduct, ctx: IActionContext, category?: CategoryHierarchy): string {\n const selectedProduct = { ...product, RecordId: product.MasterProductId || product.RecordId };\n\n return getProductPageUrlSync(selectedProduct.Name || '', selectedProduct.RecordId, ctx, category)!;\n}\n\n/**\n * Syncronously creates a product detail page url.\n * @param name Simple product name.\n * @param recordId Record id of product.\n * @param ctx\n * @param category\n */\nexport function getProductPageUrlSync(name: string, recordId: number, ctx: IActionContext, category?: CategoryHierarchy): string {\n return getUrlSync('product', ctx, {\n product: { Name: name || '', RecordId: recordId },\n category\n })!;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { Cart, ChannelConfiguration, LoyaltyCard, LoyaltyPointRedemptionEstimate } from '@msdyn365-commerce/retail-proxy';\nimport { getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { getOrgUnitConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\n\nimport { buildCacheKey, getLoyalty, GetLoyaltyCardInput } from '.';\n\n/**\n * Input class for the getLoyaltyCard data action.\n */\nexport class GetLoyaltyTransactionEstimationInput implements IActionInput {\n public userAccountNumber?: string;\n\n public apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings, userAccountNumber?: string) {\n this.userAccountNumber = userAccountNumber;\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey(`GetLoyaltyCardTransactionEstimation-${this.userAccountNumber}`, this.apiSettings);\n\n public getCacheObjectType = () => 'GetLoyaltyCardTransactionEstimation';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CreateInput method for the getLoyaltyCard method.\n * @param inputData The input data passed to the createInput method.\n */\nexport const createGetLoyaltyTransactionEstimationInput = (inputData: ICreateActionContext): GetLoyaltyTransactionEstimationInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n return new GetLoyaltyTransactionEstimationInput(inputData.requestContext.apiSettings);\n }\n\n return new GetLoyaltyTransactionEstimationInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * The action method for the getLoyaltyCard data action.\n * @param input The action input.\n * @param ctx The action context.\n */\nexport async function getLoyaltyTransactionEstimationAction(\n input: GetLoyaltyTransactionEstimationInput,\n ctx: IActionContext\n): Promise {\n if (!ctx.requestContext.user.isAuthenticated) {\n return {};\n }\n\n const promises: [Promise, Promise, Promise] = [\n _getCart(ctx),\n _getLoyalty(input, ctx),\n _getOrgUnits(ctx)\n ];\n return Promise.all(promises)\n .then(result => {\n if (result && result.length >= 2 && result[1].CardNumber) {\n return getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(\n { callerContext: ctx },\n result[0].Id,\n result[1].CardNumber,\n result[2].Currency || ''\n )\n .then(points => {\n return points;\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('Error getting Loyalty Point Redemption Estimate');\n throw new Error('Error getting Loyalty Point Redemption Estimate');\n });\n }\n return {};\n })\n .catch(error => {\n return {};\n });\n}\n\nasync function _getCart(ctx: IActionContext): Promise {\n const cartState = await getCartState(ctx);\n\n return cartState.cart;\n}\n\nasync function _getLoyalty(input: GetLoyaltyTransactionEstimationInput, ctx: IActionContext): Promise {\n const loyaltyCardInput = new GetLoyaltyCardInput(input.apiSettings);\n return getLoyalty(loyaltyCardInput, ctx);\n}\n\nasync function _getOrgUnits(ctx: IActionContext): Promise {\n return getOrgUnitConfigurationAsync({ callerContext: ctx, queryResultSettings: {} });\n}\n\n/**\n * The getLoyaltyTransactionEstimation data action\n * Returns the loyalty card belonging to the customer.\n */\nexport const getLoyaltyTransactionEstimationActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-loyalty-transaction-estimation',\n action: >getLoyaltyTransactionEstimationAction,\n input: <(args: ICreateActionContext) => IActionInput>createGetLoyaltyTransactionEstimationInput\n});\n\nexport default getLoyaltyTransactionEstimationActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\n\nexport * from '@msdyn365-commerce/core-internal';\nexport { ITelemetry, LogLevel, TelemetryEvent, TelemetryEventContent } from '@msdyn365-commerce/telemetry-internal';\nexport {\n ActionContext,\n buildHydratedMockActionContext,\n createDataAction,\n createObservableDataAction,\n createDataActionHook,\n getCatalogName,\n getMediaLocationsForProductAction,\n MediaLocationsInput,\n MediaLocationType,\n getAdditionalMediaLocationsForProductAction,\n getCustomerActionDataAction,\n GetCustomerInput,\n createGetCustomerInput\n} from '@msdyn365-commerce/action-internal';\nexport * from '@msdyn365-commerce/retail-proxy/dist/async-result';\nexport * from '@msdyn365-commerce/retail-proxy/dist/data-types';\n// Workaround to export ProudctList type found in retail-proxy to add additional typed properties so that users dont have to\n// update their retail-proxy to take advantage of these new typed properties\nexport interface IProductList {\n products: ProductSearchResult[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n listMetadata: any;\n listType: string;\n recommendationListId: string;\n}\n\nexport default msdyn365Commerce;\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Default mount point name\n */\nexport const LAYOUT_MOUNT_POINT = 'renderPage';\n\n/**\n * Default Proxy Address\n */\nexport const DEFAULT_PROXY_HOST = 'http://127.0.0.1';\n\n/**\n * Default Proxy Port\n */\nexport const DEFAULT_PROXY_PORT = 8888;\n\n/**\n * Default request timeout in ms (1m default);\n */\nexport const DEFAULT_REQUEST_TIMEOUT: number = parseInt(process.env.REQUEST_TIMEOUT || '60000', 10);\n\nexport const GLIMPSE_LOGGER_NAME = '__INTERNAL_GLIPMPSE_LOGGER_!@';\nexport const PAGE_LOGGER_NAME = '__PAGE_LOGGER__';\n\n/**\n * appCacheSetting Name\n */\n\nexport const CACHE_SETTING = '__CACHE_SETTINGS';\n\n/**\n * const for client entry points type\n */\nexport const CLIENT_ENTRY_POINTS_TYPE = '__CEP__';\n\n/**\n * PDP PageType Name\n */\nexport const PDP_PAGE_NAME = 'product';\n\n/**\n * Product recommendtion list\n */\nexport const PRODUCT_RECOMMENDATION_LIST = 'pal';\n\n/**\n * Frequently bought together recommendation list\n */\nexport const FREQUENTLY_BOUGHT_TOGETHER_LIST = 'fbt';\n\n/**\n * Picks for you recommendation list\n */\nexport const PICKS_FOR_YOU_LIST = 'picks';\n\n/**\n * Category PageType Name\n */\nexport const CATEGORY_PAGE_NAME = 'category';\n\n/**\n * List PageType Name\n */\nexport const LIST_PAGE_NAME = 'list';\n\n/*\n * Cache key for module\n */\nexport const MODULE_CACHE_KEY: string = '__M';\n\n/**\n * Cache key for module config\n */\nexport const MODULE_CONFIG_KEY: string = '__MC';\n\n/**\n * Cache key for module disabled properties\n */\nexport const MSDYN365_WYSIWYG_DISABLED_PROPS = '__MDP';\n\n/**\n * Cache key for module disabled properties\n */\nexport const MSDYN365_WYSIWYG_CANADDMODULE = '__MCA';\n\n/**\n * Cache key for module config errors\n */\nexport const MODULE_CONFIG_ERRORS_KEY: string = '__MCE';\n\n/**\n * Cache key for module data\n */\nexport const MODULE_DATA_KEY: string = '__MD';\n\n/**\n * Cache key for module resources\n */\nexport const MODULE_RESOURCES_KEY: string = '__MR';\n\n/**\n * Cache key for module action\n */\nexport const MODULE_ACTION_KEY: string = '__MA';\n\n/**\n * Cache key for module deferred render\n */\nexport const MODULE_DEFERRED_KEY: string = '__MDR';\n\n/**\n * Cache key for module view cache\n */\nexport const MODULE_VIEW_CACHE_KEY = '__VIEWCACHEKEY__';\n\n/**\n * Cache key for module render to string result\n */\nexport const MODULE_RENDER_RESULT_CACHE_KEY = '__MODULE_RENDER_RESULT__';\n\n/**\n * Server Render Error Cache key type\n */\nexport const SERVER_RENDER_ERROR_CACHE_KEY = '__SERVER_RENDER_ERROR__';\n\n/**\n * Cache key for page render results\n */\nexport const PAGE_RENDER_RESULT_CACHE_KEY = '__PAGE_RENDER_RESULT__';\n\n/**\n * Cache key for page insights view extensions\n */\nexport const PAGE_INSIGHTS_VIEWS_KEY = '__VIEW_INSIGHTS__';\n\n/**\n * Cache key for page insights view extensions\n */\nexport const PAGE_INSIGHTS_COMPONENTS_KEY = '__COMPONENT_INSIGHTS__';\n\n/**\n * Cache key for page insights view extensions\n */\nexport const PAGE_INSIGHTS_ACTIONS_KEY = '__ACTION_INSIGHTS__';\n\n/**\n * Cache key for page insights retail api data\n */\nexport const PAGE_INSIGHTS_API_KEY = '__API_INSIGHTS__';\n\n/**\n * The Prefix for the module lazyload feature switch\n */\nexport const LAZYLOAD_SWITCH_PREFIX = 'lazyload_';\n\n/**\n * DEPRECATED Client Render Complete Event Name\n */\nexport const DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT = '_msdyn365_client_render_complete';\n\n/**\n * Client Data Update Event Name\n */\nexport const CLIENT_DATA_UPDATE_EVENT = '_msdyn365_client_data_update';\n\n/**\n * Client Render Complete Event Name\n */\nexport const CLIENT_RENDER_START_EVENT = '_msdyn365_client_render_start';\n\n/**\n * Client Render Complete Event Name\n */\nexport const CLIENT_RENDER_COMPLETE_EVENT = '_msdyn365_client_render_complete';\n\n/**\n * Event that fires when Authoring module or fragment add operation completes rendering\n */\nexport const AUTHORING_ADD_RENDER_COMPLETE_EVENT = '_msdyn365_authoring_add_render_complete';\n\n/**\n * User Consent Given Event Name\n */\nexport const USER_CONSENT_GIVEN_EVENT = '_msdyn365_user_consent_given';\n\n/**\n * Field name of the module layout that authoring sends\n */\nexport const MODULE_LAYOUT_FIELD = 'msdyn365__moduleLayout';\n\n/**\n * Process type enum\n */\nexport const enum PROCESS_TYPE {\n server = 'server',\n client = 'client'\n}\n/**\n * The retail server base URL request header key.\n */\nexport const RETAIL_SERVER_BASE_URL_HEADER_KEY = `x-rs-base-url`;\n/**\n * Error message for when the provider get experiments function fails.\n */\nexport const PROVIDER_GET_EXPERIMENTS_FAIL = 'Provider get experiments call failed. Retail Server Base URL: \"{retailServerBaseUrl}\"';\n\n/**\n * Error message for when the retail server api call fail.\n */\nexport const GET_FEATURE_STATES_API_CALL_FAIL = 'The retail server getFeatureStatesAsync API call failed.';\n\n/**\n * Error message for when the internal get feature states data action fail.\n */\nexport const GET_FEATURE_STATES_INTERNAL_DATA_ACTION_FAIL = 'The internal get feature states data action failed.';\n\n/**\n * Error message for when the internal get feature states data action fail.\n */\nexport const ERROR_PROCESSING_APP_SETTINGS = 'Error processing application settings.';\n\n/**\n * Error message for missing required chunks\n */\nexport const ERROR_MISSING_REQUIRED_CHUNKS = `Failed to get required chunks for module '{moduleId}' of type '{moduleType}'. List of missing chunks: '{listOfMissingChunks}'`;\n\n/**\n * The feature states.\n */\nexport const FEATURE_STATE = {\n ON: 'ON',\n OFF: 'OFF'\n};\n\n/**\n * Application settings configs feature management properties.\n */\nexport const APP_SETTINGS_CONFIG_PROPS = {\n DISABLED_WITH_FEATURE_FLAGS: 'disabledWithFeatureFlags',\n HIDDEN_WITH_FEATURE_FLAGS: 'hiddenWithFeatureFlags',\n DISABLED: 'disabled',\n HIDDEN: 'hidden'\n};\n\n/**\n * Cache type name for module css chunks\n */\nexport const MODULE_CSS_CACHE_TYPENAME = '__ModuleCssChunks__';\n\n/**\n * Cache key name for module css chunks\n */\nexport const MODULE_CSS_CACHE_KEY = 'module-css-chunks';\n\n/**\n * Cache key name for module css chunks\n */\nexport const INLINE_MODULE_CSS_CACHE_KEY = 'inline-module-css-chunks';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RatingsSummary } from '@msdyn365-commerce/commerce-entities';\nimport {\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric,\n sendRequest\n} from '@msdyn365-commerce/core';\n\nimport { GetRatingsSummaryInput, getSelectedProductIdFromActionInput } from '.';\nimport { getRnrEndpointId, getRnrPartnerId } from './utilities/getRnrKeys';\n\nexport const createInput = (input: ICreateActionContext>): IActionInput => {\n const productId = getSelectedProductIdFromActionInput(input);\n if (productId) {\n return new GetRatingsSummaryInput(productId, getRnrPartnerId(input), getRnrEndpointId(input));\n }\n throw new Error('[GetRatingsSummary] Not all necessary parameters found while creating Input for getRatingsSummaryApi');\n};\n\n/**\n * This function gets the ratings summary.\n * @param input\n * @param ctx\n */\nexport async function getRatingsSummary(input: GetRatingsSummaryInput, ctx: IActionContext): Promise {\n if (!inputIsValid(input)) {\n ctx.trace('[GetRatingsSummary] Failed to get ratings summary for product');\n return {};\n }\n\n const requestUrl = `${input.serviceEndpoint}/v2.0/ratings/product/${input.productId}/summary?` + `tenantId=${input.tenantId}`;\n return sendRequest(requestUrl, 'get')\n .then(response => {\n return response.data;\n })\n .catch(error => {\n ctx.trace('[GetRatingsSummary] Failed to get ratings summary for product');\n throw error;\n });\n}\n\nfunction inputIsValid(input: GetRatingsSummaryInput): boolean {\n return input && input.productId.length > 0 && input.tenantId.length > 0;\n}\n\nexport const getRatingsSummaryDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-ratings-summary',\n action: >getRatingsSummary,\n input: createInput\n});\n\nexport default getRatingsSummaryDataAction;\n","\n/**\n * Copyright (c) 2018 Microsoft Corporation\n * Modules Registration\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\n */\n\n/**\n * Register all available modules\n */\nexport const registerAllModules = (requiredModules) => {\n let binding = { modules: {}, dataActions: {} };\n const { log, error } = console;\n const detailedWebpackError = (msg, errorObject) => { error(msg); error(errorObject); process.env.NODE_ENV !== 'development' && error('Run in dev mode to see full list of errors'); process.exit(50); }\n const handleError = (modPath, errObject) => {\n detailedWebpackError('Error with path: ' + modPath, errObject);\n }\n if (requiredModules) {\n requiredModules = requiredModules.map((module) => module.toLowerCase());\n }\n const isNotRegistered = (moduleName) => {\n return !requiredModules || requiredModules.length <= 0 || requiredModules.findIndex((module) => module === moduleName) !== -1;\n };\n\n \n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n try {\n\n\n isNotRegistered('brand-bar') && (binding.modules['brand-bar'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-brand-bar' */\n 'partner/modules/brand-bar/brand-bar.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'brand-bar',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/brand-bar'\n });\n \n\n isNotRegistered('brand-hero') && (binding.modules['brand-hero'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-brand-hero' */\n 'partner/modules/brand-hero/brand-hero.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'brand-hero',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/brand-hero'\n });\n \n\n isNotRegistered('cat-page-summary') && (binding.modules['cat-page-summary'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-cat-page-summary' */\n '@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'pageSummary', path:'modules/cat-page-summary/cat-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '__local__',\n n: 'cat-page-summary',\n p: '__local__',\n \n pdp: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.definition.json',\n \n \n md: 'src/modules/cat-page-summary'\n });\n \n\n isNotRegistered('connselmer') && (binding.modules['connselmer'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-connselmer' */\n 'partner/themes/connselmer/connselmer.tsx'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['header'],\n iNM: false,\n ns: '__local__',\n n: 'connselmer',\n p: '__local__',\n \n pdp: '',\n \n themeSettings: 'connselmer.theme.settings.json',\n md: 'src/themes/connselmer'\n });\n \n\n isNotRegistered('connselmer2') && (binding.modules['connselmer2'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-connselmer2' */\n 'partner/themes/connselmer2/connselmer2.tsx'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['header'],\n iNM: false,\n ns: '__local__',\n n: 'connselmer2',\n p: '__local__',\n \n pdp: '',\n \n themeSettings: 'connselmer2.theme.settings.json',\n md: 'src/themes/connselmer2'\n });\n \n\n isNotRegistered('dealer-locator') && (binding.modules['dealer-locator'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-dealer-locator' */\n 'partner/modules/dealer-locator/dealer-locator.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'dealer-locator',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/dealer-locator'\n });\n \n\n isNotRegistered('eplp-container') && (binding.modules['eplp-container'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-eplp-container' */\n 'partner/modules/eplp-container/eplp-container.tsx'),\n $type: 'containerModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'eplp-container',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/eplp-container'\n });\n \n\n isNotRegistered('finance-calculator') && (binding.modules['finance-calculator'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-finance-calculator' */\n 'partner/modules/finance-calculator/finance-calculator.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'finance-calculator',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/finance-calculator'\n });\n \n\n isNotRegistered('hp-video-player') && (binding.modules['hp-video-player'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-hp-video-player' */\n 'partner/modules/hp-video-player/hp-video-player.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'hp-video-player',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/hp-video-player'\n });\n \n\n isNotRegistered('image-render-block') && (binding.modules['image-render-block'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-image-render-block' */\n 'partner/modules/image-render-block/image-render-block.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'image-render-block',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/image-render-block'\n });\n \n\n isNotRegistered('language-selector') && (binding.modules['language-selector'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-language-selector' */\n 'partner/modules/language-selector/language-selector.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'language-selector',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/language-selector'\n });\n \n\n isNotRegistered('leblanc') && (binding.modules['leblanc'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-leblanc' */\n 'partner/themes/leblanc/leblanc.tsx'),\n $type: 'themeModule',\n da: [],\n definitionExtensions: ['header'],\n iNM: false,\n ns: '__local__',\n n: 'leblanc',\n p: '__local__',\n \n pdp: '',\n \n themeSettings: 'leblanc.theme.settings.json',\n md: 'src/themes/leblanc'\n });\n \n\n isNotRegistered('navigation-menu') && (binding.modules['navigation-menu'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-navigation-menu' */\n 'partner/modules/navigation-menu/navigation-menu.tsx'),\n $type: 'contentModule',\n da: [{name:'categories', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'navigation-menu',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/navigation-menu'\n });\n \n\n isNotRegistered('product-feature') && (binding.modules['product-feature'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-product-feature' */\n 'partner/modules/product-feature/product-feature.tsx'),\n $type: 'contentModule',\n da: [{name:'products', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-simple-products', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'product-feature',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/product-feature'\n });\n \n\n isNotRegistered('two-column-layout') && (binding.modules['two-column-layout'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-two-column-layout' */\n 'partner/modules/two-column-layout/two-column-layout.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'two-column-layout',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/two-column-layout'\n });\n \n\n isNotRegistered('warranty') && (binding.modules['warranty'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-warranty' */\n 'partner/modules/warranty/warranty.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'warranty',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/warranty'\n });\n \n\n { \n const actionPath = 'actions/get-brand-logo.action';\n binding.dataActions[actionPath] = require('partner/actions/get-brand-logo.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/cat-page-summary/cat-page-summary.action';\n binding.dataActions[actionPath] = require('partner/modules/cat-page-summary/cat-page-summary.action');\n registerActionId(actionPath);\n }\n\n if (isNotRegistered('cat-page-summary')){\n const sanitizedActionPath = 'modules/cat-page-summary/cat-page-summary.action';\n let dataAction = require('partner/modules/cat-page-summary/cat-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('navigation-menu')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('product-feature')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-simple-products';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-simple-products');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n } catch (e) {\n handleError('-', e);\n }\n \n return binding;\n};","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct, IRefineFullProductSearchOutput } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ProductRefinerValue, ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\nimport { refineSearchByCategoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n\nimport getFullProducts, { FullProductInput, ProductDetailsCriteria } from './get-full-products';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { getProductDetailsCriteriaFromActionInput } from './utilities/utils';\n\n/**\n * Refine search for full products input.\n */\nexport class FullProductsRefineSearchByCategoryInput implements IActionInput {\n public readonly categoryId?: number;\n\n public readonly channelId?: number;\n\n public readonly refinementCriteria: ProductRefinerValue[];\n\n public readonly catalogId: number;\n\n public ProductDetailsCriteria?: ProductDetailsCriteria;\n\n public readonly queryResultSettingsProxy: QueryResultSettingsProxy;\n\n constructor(\n queryResultSettingsProxy: QueryResultSettingsProxy,\n categoryId?: number,\n channelId?: number,\n refinementCriteria?: ProductRefinerValue[],\n catalogId?: number,\n criteria?: ProductDetailsCriteria\n ) {\n this.queryResultSettingsProxy = queryResultSettingsProxy;\n this.categoryId = categoryId;\n this.channelId = channelId;\n this.refinementCriteria = refinementCriteria || [];\n this.catalogId = catalogId ?? 0;\n this.ProductDetailsCriteria = criteria;\n }\n\n public getCacheKey = () => 'FullProductsRefineSearchByCategoryInputCache';\n\n public getCacheObjectType = () => 'FullProductsRefineSearchByCategoryInput';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Creates the input required to make the core action calls.\n * @param inputData\n */\nexport const createFullProductsRefineSearchByCategoryInput = (inputData: ICreateActionContext>): IActionInput => {\n const refinementCriteria = inputData.config && inputData.config.refinementCriteria;\n const queryResultSettingsProxy = QueryResultSettingsProxy.fromInputData(inputData);\n if (!Array.isArray(refinementCriteria)) {\n return new FullProductsRefineSearchByCategoryInput(queryResultSettingsProxy);\n }\n\n if (inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.categoryId) {\n const categoryId = Number(inputData.requestContext.query.categoryId);\n const channelId = inputData.requestContext.apiSettings.channelId;\n const productDetailsCriteria = getProductDetailsCriteriaFromActionInput(inputData);\n return new FullProductsRefineSearchByCategoryInput(\n queryResultSettingsProxy,\n categoryId,\n +channelId,\n refinementCriteria,\n undefined,\n productDetailsCriteria\n );\n }\n\n throw new Error('Please specify categoryId, refinerId, and refinerSourceValue query string in request.');\n};\n\n/**\n * Calls the refine-search-by-category action.\n * Based on search result calls get-full-products to get all the product details.\n * @param input\n * @param ctx\n */\nexport async function getFullProductsByRefineSearchCategoryAction(\n input: FullProductsRefineSearchByCategoryInput,\n ctx: IActionContext\n): Promise {\n if (!input || !input.refinementCriteria) {\n ctx.trace('[getFullProductsByRefineSearchCategoryAction] Invalid input.');\n return {};\n }\n\n const hasSortingColumn =\n input.queryResultSettingsProxy.QueryResultSettings &&\n input.queryResultSettingsProxy.QueryResultSettings.Sorting &&\n input.queryResultSettingsProxy.QueryResultSettings.Sorting.Columns &&\n input.queryResultSettingsProxy.QueryResultSettings.Sorting.Columns.length > 0;\n if (input.refinementCriteria.length === 0 && !hasSortingColumn) {\n ctx.telemetry.trace('[getFullProductsByRefineSearchCategoryAction] No refiners or sorting specified.');\n return {};\n }\n const { apiSettings } = ctx.requestContext;\n\n const catalogId = getCatalogId(ctx.requestContext);\n\n let refinementCriteria: ProductRefinerValue[] = [];\n const fullProductInputs = await refineSearchByCategoryAsync(\n { callerContext: ctx, queryResultSettings: input.queryResultSettingsProxy.QueryResultSettings },\n input.channelId || 0,\n input.catalogId || catalogId,\n input.categoryId || 0,\n input.refinementCriteria\n ).then(searchResults => {\n refinementCriteria = input.refinementCriteria;\n return searchResults.map(\n (product: ProductSearchResult): FullProductInput => {\n return new FullProductInput(\n product.RecordId,\n apiSettings,\n input.ProductDetailsCriteria || new ProductDetailsCriteria(),\n ctx.requestContext\n );\n }\n );\n });\n\n if (fullProductInputs.length > 0) {\n const productResult = await (>getFullProducts(fullProductInputs, ctx));\n return {\n productSearchResult: productResult,\n refinementCriteria\n };\n }\n return {\n productSearchResult: [],\n refinementCriteria\n };\n}\n\nexport const getFullProductsByRefineSearchCategoryActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-full-products-by-refine-search-category',\n action: >getFullProductsByRefineSearchCategoryAction,\n input: createFullProductsRefineSearchByCategoryInput,\n isBatched: false\n});\n\nexport default getFullProductsByRefineSearchCategoryActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary, IExpLogger, TelemetryEvent, TelemetryEventContent } from '@msdyn365-commerce/telemetry-internal';\nimport { ISecretManager } from '../interfaces';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * State of an experiment\n */\n\nexport const EXPERIMENTATION_CACHE_TYPE = 'EXPERIMENTATION';\nexport const EXPERIMENTATION_DATAFILE_CACHE_TYPE = 'EXPERIMENTATIONDATAFILE';\n\nexport enum State {\n Draft = 'Draft',\n Active = 'Active',\n Running = 'Running',\n Paused = 'Paused',\n Archived = 'Archived'\n}\n\nexport enum RefreshType {\n DataFile = 'DataFile',\n Experiments = 'Experiments'\n}\n\n/**\n * refresh options.\n * @param refreshFunction the call back function that refresh will trigger.\n * @param parameters the parameters for the refresh function. If no parameters need, pass an empty array.\n */\nexport interface IExperimentRefreshOptions {\n refreshType: RefreshType;\n parameters: any[];\n}\n\nexport interface IActiveExperiments {\n userId: string;\n activeExperiments: IVariants[];\n moduleIdToExperimentIdMap?: IDictionary;\n}\n\n/**\n * Variations on each experiment\n */\nexport interface IVariations {\n // friendly name of a variation\n // required\n friendlyName: string;\n\n // unique id or key for the variation\n // required\n id: string;\n\n // variation status\n // required. Can be defaulted to active\n status: State;\n\n // variation weight\n // Optional\n weight?: string;\n}\n\n/**\n * Experiments\n */\nexport interface IExperiments {\n // Friendly name\n // Required\n friendlyName: string;\n\n // unique id or key of the experiment\n // required\n id: string;\n\n // variation status\n // required\n status: State;\n\n // array of variations\n // required\n variations: IVariations[];\n\n // Created Date\n createdDate?: string;\n\n // Last modified date\n lastModifiedDate?: string;\n\n // Last modified by\n lastModifiedBy?: string;\n\n // Description\n description?: string;\n\n // Type\n type?: string;\n\n // Link url\n link?: string;\n\n resultLink?: string;\n}\n\n/**\n * Experiment results to display connector name and experiments[] related to the connector\n */\nexport interface IExperimentsResult {\n name?: string;\n experiments?: IExperiments[];\n}\n\n/**\n * Experiments\n */\n\nexport interface IVariants {\n // Unique Id or key of the variant\n // Required\n variantId: string;\n\n // unique id or key of the experiment\n // required\n experimentId: string;\n\n // unique id of the module that this experiment is associated with\n moduleId?: string;\n}\n\nexport interface IExperimentationProvider {\n /**\n * Allows the experimentation connector to do any startup related tasks\n * using the config provided by the partner.\n *\n * This method is only called once during server startup.\n * @param config The config provided by the partner in connector settings.\n * @param secretManager Class used to retrieve secrets stored in retail server key vault\n */\n initialize(config: any, secretManager?: ISecretManager): Promise;\n\n /**\n * Returns the configuration that should be passed to the experimentation connector\n * when it is initialized client-side\n */\n getConfigForClientSideInit(): Promise;\n\n /**\n * Initailizes the experimentation provider on the browser (client-side) so that\n * it may activate experiments for a user.\n *\n * @param config The config that is required to initialize the experimentation connector\n * client-side. The result of getConfigForClientSideInit() is passed into this method\n */\n initializeClientSide(config: any): boolean;\n\n /**\n * Returns a list of all the experiments currently configured whether active or not.\n * This list will be cached and periodically refreshed.\n * @param retailServerBaseUrl The retail server base URL.\n * @param connectorName The optimizely conector name.\n * @param page Optional argument that specifies the page to return.\n * @param items Optional argument that specifies the maximum number of objects to return per request.\n */\n getExperiments(retailServerBaseUrl: string, connectorName: string, page?: string, items?: string): Promise;\n\n /**\n * Returns a list of experiments and variants a user will be a part of based\n * off the userId. Optional attributes can provide the connector with additional criteria\n * to determine which experiments a user should be a part of.\n *\n * @param userId userId unique to a user if signed in or unique to a session if user is anonymous.\n * userId will be generated from hash if user is signed-in to deterministically generate sanatized userIds.\n * @param attributes Optional user related attributes\n */\n getVariantsForUser(userId: string, attributes?: { [index: string]: string }): IVariants[];\n\n /**\n * Activates experiment(s) a user is currently being served. This call will be made\n * client-side after the connector has been initialized client-side\n *\n * @param userId userId unique to a user if signed in or unique to a session if user is anonymous.\n * userId will be generated from hash if user is signed-in to deterministically generate sanatized userIds.\n * @param experiments The experiments the user is participating in.\n * @param attributes Optional user related attributes\n */\n activateExperiment(userId: string, experiments: IVariants[], attributes?: { [index: string]: string }): boolean;\n}\n\nexport interface IExperimentationListener {\n /**\n * Initailizes the experimentation listener on the browser (client-side) so that\n * it may keep track of any conversion events related to the current experiements.\n *\n * @param config The config that is required to initialize the experimentation connector\n * client-side. The result of getConfigForClientSideInit() is passed into this method\n * @param userId The current user being served the experiment and tracked.\n */\n initializeClientSide(config: any, userId: string): boolean;\n\n /**\n * Tracks a successful user conversion event.\n *\n * @param eventType The event type that occured\n * @param payload Any additional tags or data related to the conversion event\n */\n trackEvent(eventType: TelemetryEvent, payload: TelemetryEventContent): void;\n}\n\nexport interface IExperimentationConnector {\n name: string;\n provider: IExperimentationProvider;\n listener?: IExpLogger;\n connectorDomains: string[];\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRequestContext } from '../interfaces';\n\nexport const GEOLOOKUP_CACHE_TYPE = 'GEOLOOKUP';\nexport interface IGeoLookupProvider {\n /**\n * Allows the geoLocation connector to do any startup related tasks\n * using the config provided by the partner.\n *\n * This method is only called once during server startup.\n * @param config The config provided by the partner in connector settings.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n initialize(config: any): Promise;\n\n /**\n * Geolocation lookup connector will get location information based on the ip address\n * @param ip The ip address\n */\n getGeoInformation(ip: string, requestContext: IRequestContext, userId?: string): Promise;\n}\n\nexport interface IGeoLocationConnector {\n name: string;\n provider: IGeoLookupProvider;\n}\n\nexport interface IGeoLocation {\n country?: string;\n region?: string;\n city?: string;\n zipCode?: string;\n [otherProperty: string]: string | undefined;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IEditProps } from '../../utilities';\nimport { IDictionary } from '../types';\nimport { IImageSettings } from './IImageSettings';\n\nexport enum ImageFetchPriority {\n High = 'high',\n Low = 'low',\n Auto = 'auto'\n}\n\nexport interface IImageData {\n /* property to be edited, used to make image editable in site builder */\n editProps?: IEditProps;\n\n /* Image url */\n src?: string;\n\n /* Fallback Image url */\n fallBackSrc?: string;\n\n /* Alt text for image */\n altText?: string;\n\n /* Image caption */\n caption?: string;\n\n /* Image tittle */\n title?: string;\n\n /* Image width */\n width?: number;\n\n /* Image height */\n height?: number;\n\n /* Image Settings */\n imageSettings?: IImageSettings;\n /* dictionary with additional misc. properties*/\n additionalProperties?: IDictionary;\n\n /* URL */\n href?: string;\n\n /* External Provider */\n externalProvider?: string;\n\n /* Defines the hint given to browser on how it should prioritize the fetch of the image relative to other image. */\n fetchPriority?: ImageFetchPriority;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGeneric } from '../../interfaces';\n\nexport interface IHtmlHead {\n tags: HtmlHeadElement[];\n nonScriptTags: HtmlHeadElement[];\n scriptTags: {\n headStart: HtmlHeadElement[];\n headEnd: HtmlHeadElement[];\n bodyStart: HtmlHeadElement[];\n bodyEnd: HtmlHeadElement[];\n };\n hasFavIcon: boolean;\n}\n\nexport interface IHtmlHeadProps {\n children: React.ReactChild[];\n}\n\nexport type HtmlHeadElement = React.ReactElement>;\n\nexport const NON_SCRIPT_TAGS = 'non-script-tags';\nexport const DATA_LOAD_POINT = 'data-load-point';\nexport const HEAD_START_LOAD_POINT = 'headStart';\nexport const HEAD_END_LOAD_POINT = 'headEnd';\nexport const BODY_START_LOAD_POINT = 'bodyStart';\nexport const BODY_END_LOAD_POINT = 'bodyEnd';\nexport const HEAD_ELEMENT_IDENTIFIER_ATTR = 'data-ms-head';\nexport const META_CONTENT_APPEND_ATTR = 'data-append-content';\nexport const DATA_ACTION_ATTR = 'data-ms-action';\nexport const METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp', 'property', 'description', 'keywords'];\nexport const FAVICON_REL: string[] = ['shortcut icon', 'icon', 'apple-touch-icon-precomposed', 'mask-icon', 'apple-touch-icon'];\nexport const COMPONENT_TYPES = [NON_SCRIPT_TAGS, HEAD_START_LOAD_POINT, HEAD_END_LOAD_POINT, BODY_START_LOAD_POINT, BODY_END_LOAD_POINT];\nexport const ALLOWED_DUPLICATES = new Set([\n 'article:tag',\n 'og:description',\n 'og:image',\n 'og:image:alt',\n 'og:image:width',\n 'og:image:height',\n 'og:image:type',\n 'og:image:secure_url',\n 'og:image:url',\n 'description'\n]);\n\nexport const TAG_NAMES = {\n TITLE: 'title',\n BASE: 'base',\n META: 'meta',\n SCRIPT: 'script',\n LINK: 'link'\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { IGeneric } from '../../interfaces';\nimport {\n BODY_START_LOAD_POINT,\n DATA_LOAD_POINT,\n HEAD_ELEMENT_IDENTIFIER_ATTR,\n HEAD_START_LOAD_POINT,\n HtmlHeadElement,\n IHtmlHead\n} from './IHtmlHeadModel';\nconst DOMAttributeNames: IGeneric = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n\n/**\n * update title of the page\n * @function updateTitle\n * @param {HtmlHeadElement} title - final derived title component\n */\nconst updateTitle = (titleComponent: HtmlHeadElement): void => {\n let title: string = '';\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === 'string' ? children : '';\n }\n\n const initialData = window && (window).___initialData___;\n switch (titleComponent && titleComponent.props['data-ms-action']) {\n case 'format':\n if (initialData && initialData.pageRoot) {\n const titleTemplate = initialData.pageRoot.titleTemplate;\n title = titleTemplate.replace(/\\{0\\}/, title);\n }\n\n break;\n case 'append':\n title = document.title !== title ? `${document.title} ${title}` : title;\n break;\n case 'override':\n default:\n }\n\n if (document.title !== title) {\n document.title = title;\n }\n};\n\n/**\n * update head tag on change, on client side\n * @function reactElementToDOM\n * @param {HtmlHeadElement} element - final react element that needs to be added to DOM\n * @return {HTMLElement} - html dom element\n */\nconst reactElementToDOM = (element: HtmlHeadElement): HTMLElement => {\n const tagType = typeof element.type === 'string' ? element.type : '';\n const el = document.createElement(tagType);\n Object.keys(element.props).forEach((property: string) => {\n if (property !== 'children' && property !== 'dangerouslySetInnerHTML') {\n const attr = DOMAttributeNames[property] || property.toLowerCase();\n el.setAttribute(attr, element.props[property]);\n }\n });\n\n const { children, dangerouslySetInnerHTML } = element.props;\n if (el && dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (el && children) {\n el.textContent = typeof children === 'string' ? children : children.join('');\n }\n\n return el;\n};\n\n/**\n * Filters a script based on the filterFromBody parameter\n * If filterFromBody is true, only those scripts that have head load points will\n * return true. Otherwise, only scripts with body load points will return true.\n *\n * @param filterBody Set to true to filter out scripts in body. False to filter out scripts in the head\n * @param t The script node\n */\nconst filterScripts = (filterBody: boolean, t: Node): boolean => {\n const el = t;\n if (el.tagName === 'SCRIPT') {\n const attrVal = el.getAttribute(DATA_LOAD_POINT);\n if (attrVal === 'bodyStart' || attrVal === 'bodyEnd' || attrVal === null) {\n return filterBody ? false : true;\n }\n }\n return filterBody ? true : false;\n};\n\n/**\n * Adds an HTML node to a particular slot\n *\n * @param slot The parent Element to which the HTML node should be added\n * @param loadPointToLookFor The load point type to look for to determine if the node should be prepended to append to the parent node\n * @param t The HTML node to add\n */\nconst addElementToHtmlSlot = (slot: HTMLElement, loadPointToLookFor: string, t: Node) => {\n const loadPoint = (t).getAttribute(DATA_LOAD_POINT);\n if (loadPoint && loadPoint === loadPointToLookFor) {\n slot.prepend(t);\n } else {\n slot.appendChild(t);\n }\n};\n\n/**\n * update head tag on change, on client side\n * @function doUpdateHead\n * @param {HtmlHead} head - final list of merged tags\n * @return {HtmlHead} - final list of merged tags\n */\nconst updateElements = (tagType: string, components: HtmlHeadElement[]): void => {\n const headEl = document.getElementsByTagName('head')[0];\n const bodyEl = document.getElementsByTagName('body')[0];\n let oldTags: HTMLElement[] = Array.prototype.slice.call(headEl.querySelectorAll(`${tagType}.${HEAD_ELEMENT_IDENTIFIER_ATTR}`));\n // sepcial condition for scripts: read script tags from body tag as well\n if (tagType === 'script') {\n const bodyScriptTags = Array.prototype.slice.call(bodyEl.querySelectorAll(`script.${HEAD_ELEMENT_IDENTIFIER_ATTR}`));\n oldTags = oldTags.concat(bodyScriptTags);\n }\n const newTags = components.map(reactElementToDOM).filter((newTag: HTMLElement) => {\n const len = oldTags.length;\n for (let i = 0; i < len; i++) {\n const oldTag = oldTags[i];\n oldTag.removeAttribute('data-reactroot');\n if (oldTag.isEqualNode(newTag)) {\n oldTags.splice(i, 1);\n return false;\n } else if (\n oldTag.nodeName === 'SCRIPT' &&\n (oldTag.innerHTML === newTag.innerHTML || oldTag.getAttribute('src') === newTag.getAttribute('src'))\n ) {\n oldTags.splice(i, 1);\n return false;\n }\n }\n return true;\n });\n // Remove all the old tags and add new tags in the correct places\n oldTags.forEach((t: Node) => t.parentNode && t.parentNode.removeChild(t));\n // First, filter out all the script tags that are in the body and then reinsert\n // the new tags in the head in their appropriate locations based on the load-point (if applicable)\n newTags\n .filter((t: Node) => {\n return filterScripts(true, t);\n })\n .forEach((t: Node) => {\n addElementToHtmlSlot(headEl, HEAD_START_LOAD_POINT, t);\n });\n // If any script tags were defined in the body, add these script tags back into the body\n // based on their load-points\n newTags\n .filter((t: Node) => {\n return filterScripts(false, t);\n })\n .forEach((t: Node) => {\n addElementToHtmlSlot(bodyEl, BODY_START_LOAD_POINT, t);\n });\n};\n\n/**\n * update head tag on change, on client side\n * @function doUpdateHead\n * @param {HtmlHead} head - final list of merged tags\n */\nconst doUpdateHead = (head: IHtmlHead): void => {\n const tags: IGeneric = {};\n head.tags.forEach((h: HtmlHeadElement) => {\n const headType = h.type.toString();\n const components = tags[headType] || [];\n components.push(h);\n tags[headType] = components;\n });\n\n const titleTag = tags.title;\n updateTitle(titleTag && titleTag.length > 0 ? titleTag[0] : null);\n\n const types = ['meta', 'link', 'style', 'script'];\n types.forEach((tagType: string) => {\n updateElements(tagType, tags[tagType] || []);\n });\n};\n\n/**\n * update head on change, on client side\n * @function updateHead\n * @param {HtmlHead} head - final list of merged tags\n */\nexport const updateHead = (head: IHtmlHead): void => {\n doUpdateHead(head);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isEqual } from 'lodash';\nimport React, { Component } from 'react';\nimport withSideEffect from 'react-side-effect';\nimport { IDictionary, IGeneric } from '../../interfaces';\nimport { updateHead } from './html-head-utils';\nimport {\n ALLOWED_DUPLICATES,\n BODY_END_LOAD_POINT,\n BODY_START_LOAD_POINT,\n COMPONENT_TYPES,\n DATA_LOAD_POINT,\n FAVICON_REL,\n HEAD_ELEMENT_IDENTIFIER_ATTR,\n HEAD_END_LOAD_POINT,\n HEAD_START_LOAD_POINT,\n HtmlHeadElement,\n IHtmlHead,\n IHtmlHeadProps,\n META_CONTENT_APPEND_ATTR,\n METATYPES,\n NON_SCRIPT_TAGS,\n TAG_NAMES\n} from './IHtmlHeadModel';\n\nimport msdyn365Commerce from '../../msdyn365-commerce';\n\n/**\n * reduces props of various HtmlHeadInclude instances and deduces a final state value\n *\n * @function reduceComponents\n * @access public\n * @param {IHtmlHeadProps[]} props - props list of all the HtmlHeadInclude instances\n * @return {HtmlHead} - final list of merged tags\n */\nfunction reduceComponents(props: IHtmlHeadProps[]): IHtmlHead {\n const reducedComponents = props\n .map((component: IHtmlHeadProps) => {\n return component.children;\n })\n .reduce((a: React.ReactChild[], b: React.ReactChild[]) => {\n if (b instanceof React.createElement || Array.isArray(b)) {\n return a.concat(React.Children.toArray(b));\n }\n\n return a.concat(b);\n }, [])\n .reverse()\n .filter(Boolean)\n .filter(unique())\n .reverse();\n\n const mergedComponents: HtmlHeadElement[] = [];\n reducedComponents.forEach((child: React.ReactChild, index: number): void => {\n const childElement = child as HtmlHeadElement;\n\n // Append content for conflicting meta tags with same 'name' property\n if (childElement.type === TAG_NAMES.META) {\n for (let i = 0; i < mergedComponents.length; ++i) {\n if (\n mergedComponents[i].props.name === childElement.props.name &&\n (mergedComponents[i].props[META_CONTENT_APPEND_ATTR] || childElement.props[META_CONTENT_APPEND_ATTR])\n ) {\n mergedComponents[i] = React.cloneElement(mergedComponents[i], {\n content: `${mergedComponents[i].props.content}, ${childElement.props.content}`\n });\n\n return;\n }\n }\n }\n\n const className =\n (childElement.props && childElement.props.className ? `${childElement.props.className} ` : '') + HEAD_ELEMENT_IDENTIFIER_ATTR;\n const key = childElement.key || index;\n\n mergedComponents.push(React.cloneElement(childElement, { key, className }));\n });\n // Initialize dictionary to map all merged components into their respective slots\n const componentMap: IDictionary = {};\n for (let i = 0; i < COMPONENT_TYPES.length; i++) {\n componentMap[COMPONENT_TYPES[i]] = [];\n }\n let hasFavIcon: boolean = false;\n // Loop through the merged components and map the component to its appropriate slot\n mergedComponents.forEach((comp: HtmlHeadElement) => {\n if (comp.type === 'script') {\n switch (comp.props[DATA_LOAD_POINT]) {\n case HEAD_START_LOAD_POINT:\n componentMap[HEAD_START_LOAD_POINT].push(comp);\n break;\n case HEAD_END_LOAD_POINT:\n componentMap[HEAD_END_LOAD_POINT].push(comp);\n break;\n case BODY_START_LOAD_POINT:\n componentMap[BODY_START_LOAD_POINT].push(comp);\n break;\n default:\n componentMap[BODY_END_LOAD_POINT].push(comp);\n }\n } else if (comp.type !== 'script') {\n if (FAVICON_REL.indexOf(comp.props.rel) !== -1) {\n hasFavIcon = true;\n }\n componentMap[NON_SCRIPT_TAGS].push(comp);\n }\n });\n\n return {\n tags: mergedComponents,\n nonScriptTags: componentMap[NON_SCRIPT_TAGS],\n scriptTags: {\n headStart: componentMap[HEAD_START_LOAD_POINT],\n headEnd: componentMap[HEAD_END_LOAD_POINT],\n bodyStart: componentMap[BODY_START_LOAD_POINT],\n bodyEnd: componentMap[BODY_END_LOAD_POINT]\n },\n hasFavIcon: hasFavIcon\n };\n}\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like ,\n except we explicit allow it in ALLOWED_DUPLICATES array\n*/\nexport function unique(): (h: React.ReactChild) => boolean {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories: IGeneric<unknown> = {};\n\n return (tagComponent: React.ReactChild) => {\n const tagElement = tagComponent as HtmlHeadElement;\n\n if (tagElement instanceof React.createElement && tagElement.key) {\n if (keys.has(tagElement.key)) {\n return false;\n }\n\n keys.add(tagElement.key);\n }\n\n switch (tagElement.type) {\n case TAG_NAMES.TITLE:\n case TAG_NAMES.BASE:\n if (tags.has(tagElement.type)) {\n return false;\n }\n\n tags.add(tagElement.type);\n break;\n case TAG_NAMES.META:\n for (let i = 0; i < METATYPES.length; i++) {\n const metaType = METATYPES[i];\n if (tagElement.props[metaType]) {\n if (metaType === 'charSet') {\n if (metaTypes.has(metaType)) {\n return false;\n }\n\n metaTypes.add(metaType);\n } else {\n const category = tagElement.props[metaType];\n const categories = metaCategories[metaType] || new Set();\n if (categories.has(category) && !ALLOWED_DUPLICATES.has(category)) {\n return false;\n }\n\n categories.add(category);\n metaCategories[metaType] = categories;\n }\n }\n }\n\n break;\n case TAG_NAMES.LINK:\n tags.add(tagElement.type);\n break;\n default:\n }\n\n return true;\n };\n}\n\n/**\n * maps state on server\n * @function mapOnServer\n * @param {HtmlHead} head - final list of merged tags\n * @return {HtmlHead} - final list of merged tags\n */\nfunction mapOnServer(head: IHtmlHead): IHtmlHead {\n return head;\n}\n\n/**\n * state change handler\n * @function onStateChange\n * @param {HtmlHead} head - final list of merged tags\n */\nfunction onStateChange(head: IHtmlHead): void {\n updateHead(head);\n}\n\n/**\n * <HtmlHeadInclude>\n * <title>\n * \n * \n *