{"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/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:///./src/actions/get-experlogix-state.action.ts?883c","webpack:///./src/experlogix-d365commerce-core/commerceUtilities.ts?e1e4","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/get-business-partner-operation-requests.ts?bece","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:///../../src/refine-search-by-category.ts?3e65","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/own-keys.js?10c6","webpack:///./src/actions/get-product-experlogix-seriesmodel.action.ts?b6b9","webpack:///./src/experlogix-d365commerce-core/eCommerceProductHandler.ts?341b","webpack:///../../../src/order-templates/add-item-to-order-template.ts?fff3","webpack:///src/actions/inputs/get-product-reviews-input.ts?bfba","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/native-url.js?2ef3","webpack:///../../src/get-customer.ts?8319","webpack:///./src/modules/poc-search-result-container/list-page-state.ts?4e5c","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:///./src/modules/poc-search-result-container/actions/base-collection-action.ts?2161","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-buffer.js?e409","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:///../../src/search-org-unit-locations.ts?d18d","webpack:///src/modules/wishlist-items/actions/get-items-in-wishlists.ts?d05a","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/utilities/regex/phone-regex.ts?9ada","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:///./src/modules/poc-search-result-container/actions/get-product-refiner-hierarchy.ts?ffbd","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:///../../src/Entities/CommerceModels.g.ts?1e76","webpack:///src/actions/get-sales-order-details-by-confirmation-id.ts?11ab","webpack:///src/actions/get-sales-order-with-hydrations.ts?9c2c","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?5762","webpack:///../../src/delete-organization-user.ts?7f5d","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/ieee754.js?b081","webpack:///../../../src/utilities/QueryResultSettingsProxy.ts?5e44","webpack:///../../src/get-categories-hierarchy.ts?acde","webpack:///src/modules/order-template/actions/get-order-template.ts?4d59","webpack:///src/connectors/msdyn365-exp-test/msdyn365-exp-test.listener.ts?3fc6","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-slice-simple.js?846a","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/action-context.ts?0ab9","webpack:///../../src/mock-helper.ts?6126","webpack:///../../../src/actions/get-catalogs.ts?b35c","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/actions/get-org-unit-locations.ts?3eeb","webpack:///../../../src/order-templates/get-order-templates-preview.ts?b8c3","webpack:///../../src/get-channel-delivery-option-configuration.ts?a716","webpack:///src/actions/get-channels.ts?9c62","webpack:///src/actions/get-tender-types.ts?c899","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/experlogix-d365commerce-core/urlUtilities.ts?8d41","webpack:///src/data-actions/cart-state-data-action.ts?e4d5","webpack:///src/actions/get-sales-order-confirmation-with-hydrations.ts?d18e","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/modules/poc-search-result-container/actions/get-mapped-search-configuration.ts?9424","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:///src/actions/ratings-reviews-state-data-action.ts?6daf","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:///./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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.uint8-array.js?9fd3","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.uint32-array.js?6660","webpack:///../../src/get-dimension-availabilities-for-product-search-result.ts?5259","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/define-iterator.js?8b8c","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/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/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:///../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack:///../src/index.ts?6f37","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/an-instance.js?01b0","webpack:///../../src/DataActions/ChecklistsDataActions.g.ts?abe2","webpack:///../../src/exceptions/ErrorHelper.ts?deca","webpack:///../../src/get-current-business-partner-user.ts?1479","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:///../../../src/utilities/validate-cartlines-inventory.ts?8b82","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/modules/checkout-payment-instrument/actions/get-card-payment-accept-point.ts?e5ef","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:///../../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/invoice-url-builder.ts?d542","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:///src/actions/inputs/get-user-review-input.ts?f98a","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:///./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/helper.ts?18b4","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/create-iterator-constructor.js?5f91","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:///./src/modules/poc-search-result-container/actions/url-utils.ts?ea57","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/telemetry/telemetry.ts?920f","webpack:///../../../src/privacy/dynamics-privacy-helper.ts?4c7c","webpack:///../../../src/loggers/logging-helper.ts?d958","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/native-weak-map.js?3ab1","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-index.js?1cbd","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/actions/get-product-reviews.ts?ca83","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/modules/quick-order-grid/actions/get-product-list.ts?dfe9","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/invoices/get-invoice.ts?479e","webpack:///../src/DataServiceQuery.ts?8aab","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-inventory-refiners.ts?a682","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/get-related-products.ts?6f93","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/object-define-properties.js?8d4f","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/typed-array-constructor.js?2aff","webpack:///../../src/add-organization-user.ts?ed86","webpack:///../../src/get-current-category-hierarchy.ts?d48e","webpack:///src/actions/get-user-review.ts?1a29","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/array-buffer-native.js?258f","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/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/poc-search-result-container/actions/get-refiners-for-collection.ts?b9db","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/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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/native-symbol.js?eae6","webpack:///src/actions/get-state-provinces.ts?d329","webpack:///../../src/DataActions/ApplicableOperationsDataActions.g.ts?b88b","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-float.js?eb9f","webpack:///../../../../src/utilities/events/index.ts?d3a5","webpack:///../../src/get-media-locations-for-selected-variant.ts?fd54","webpack:///src/actions/get-address-purposes.ts?30ca","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/ICache.ts?b706","webpack:///../../src/cache-utils.ts?471a","webpack:///../../src/request-cache.ts?b274","webpack:///../../src/DataActions/TransferOrdersDataActions.g.ts?97d4","webpack:///src/actions/get-country-state.ts?3926","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/typed-array-constructors-require-wrappers.js?7125","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/typed-array-from.js?1c34","webpack:///./src/modules/poc-search-result-container/actions/get-inventory-refiners.ts?66d9","webpack:///./src/modules/poc-search-result-container/actions/get-full-products-by-collection.ts?7d18","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/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/actions/get-country-regions.ts?a1d1","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/modules/wishlist-items/actions/get-product-availabilities-wishlist-items.ts?4a20","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:///./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:///./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:///src/modules/checkout-express/actions/get-card-payment-accept-point.ts?c8f5","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/is-integral-number.js?ada9","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/checkout/actions/get-products-in-active-checkout-cart.ts?e0ab","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:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/html.js?8a1f","webpack:///src/cart-state/update-cart-line-quantity.ts?ba37"],"names":["ProductDimensionsWithAvailabilitiesInput","constructor","productId","channelId","requestContext","getCacheKey","getCacheObjectType","dataCacheType","this","catalogId","getCatalogId","createProductDimensionsWithAvailabilitiesInput","inputData","getSelectedProductIdFromActionInput","apiSettings","Error","async","getProductDimensionsWithAvailabilitiesAction","input","context","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","dimensionValuesWithInventory","Promise","all","getProductDimensionsWithAvailabilities","createObservableDataAction","id","action","uncurryThis","toString","stringSlice","slice","module","exports","it","query","urlTokens","itemId","pageType","config","generateImageUrl","imageUrl","generateImageUrlFromSdk","DimensionTypes","DimensionSwatchDisplayTypes","checkIfShouldDisplayAsSwatch","dimensionType","displayType","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","buildCacheKeyWithUrlTokens","defaultCacheKey","recordId","generateKey","args","options","handler","separator","arg","join","getFallbackImageUrl","parsedItemId","trim","split","productUrl","convertProductDimensionTypeToDimensionTypes","productDimensionType","ProductDimensionType","Color","color","Configuration","configuration","Size","size","Style","style","convertDimensionTypeToProductDimensionType","None","setDimensionValuesToQuery","inputUrl","productDimensions","searchParams","set","DimensionValue","Value","window","history","replaceState","state","replace","host","location","parseDimensionsFromUrl","urlParameters","parsedDimensions","localDimensionType","value","get","parseDimensionFromUrl","getDimensionValuesFromQuery","URL","toLocaleLowerCase","getAttributeValuesByConfiguration","attributeValues","channelInventoryConfiguration","filter","attribute","InventoryProductAttributeRecordId","getProductImageUrls","products","productsWithImageUrls","forEach","push","getProductsByCategoryListAction","categoryId","listMetadata","categoryIds","length","toLowerCase","CATEGORY_PAGE_NAME","categories","telemetry","debug","productSearchCriteria","Context","ChannelId","CategoryIds","SkipVariantExpansion","IncludeAttributes","searchByCriteriaAsync","Paging","Top","pageSize","catch","error","getProductsByRecentlyViewedListAction","ctx","searchCriteriaInput","cookieContext","CookieContext","getCatalogIdForSdk","cookieValue","productIds","Ids","ProductInput","createGetByIdsInput","key","DataServiceQuery","productsQuery","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","inputs","Array","isArray","trace","productIdMapping","idx","request","executeAction","getByIdsAsyncAction","mappedProducts","reduce","memo","find","isBatched","getProductIdForReco","recommendationCriteria","includeCart","cart","cookies","cartCookieParts","getCartCookie","user","isAuthenticated","readCart","readAsync","Id","getCart","CartLines","cartProductIds","element","includePageContext","PDP_PAGE_NAME","getProductsByNewSearchByCriteria","CustomerAccountNumber","customerAccountNumber","RecommendationListId","recommendationListId","versionGte","process","features","disable_sequential_call_for_recoProducts","getCategoryIdForReco","productSearchResults","productSearchResultsTmp","item","IsMasterProduct","e","getProductsByRecommendationListAction","PICKS_FOR_YOU_LIST","proxyContext","reccomendationListId","missingType","actionInputError","ProductIds","personalization","JSON","stringify","FREQUENTLY_BOUGHT_TOGETHER_LIST","getElementsAsync","recommendedElements","productInputs","productTypeId","catalogIdNumber","i","ElementId","ElementTypeValue","itemIds","unorderedProductSearchResults","result","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","msdyn365Commerce","isBrowser","shouldOptimizeHydrate","requestCache","cacheValue","typeName","MODULE_CONFIG_KEY","toJS","put","isCallable","definePropertyModule","makeBuiltIn","defineGlobalProperty","O","simple","enumerable","name","global","unsafe","f","configurable","nonConfigurable","writable","nonWritable","SelectedVariantInput","matchingDimensionValues","getSelectedVariantActionDataAction","url","requestUrl","hasUnmatchedDimension","matchedTargetDimension","targetDimension","checkIfHasUnmatchedDimensions","newImageUrl","fullDimensions","fullDimensionPromises","getFullDimensions","productVariant","variantProductId","variantImageUrl","getProductVariant","matchedTargetDimensionFromApi","selectedProduct","Deno","version","GetCartStateDataInput","getCartStateData","cartState","getCartState","retailActionDataAction","retailAction","createGetByCustomerInput","deleteAddressHandler","customer","address","Addresses","cur","doAddressManagementOperation","createAddressManagementInput","$","$parseFloat","forced","parseFloat","GetAttributeDefinitionsInput","attributeDefinitionCriteria","getAttributeDefinitionsActionDataAction","channel","CustomerAttributeGroupId","getAttributeDefinitionsAsync","response","AttributeGroupIdentifier","postfix","Math","random","createGetOrgUnitConfigurationInput","isObject","classof","MATCH","wellKnownSymbol","isRegExp","setPrototypeOf","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","prototype","ProductsDimensionAvailabilitiesInput","masterProductId","requestDimensionType","getDimensionAvailabilitiesForProductsAction","promise","productsDimensions","productDimension","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","Object","NASHORN_BUG","call","1","V","descriptor","createDataActionHook","actionId","postReaderHook","_inputs","simpleProduct","actionContext","resolve","productInfo","getProductInfoFromSimpleProduct","telemetryData","productSku","TelemetryEvent","ProductPageView","preReaderHook","GetExperlogixStateInput","experlogixSiteUrl","selectedProductId","selectedCartLineId","ExperlogixSiteUrl","SelectedProductId","SelectedCartLineId","randomBytesAsync","promisify","crypto","randomBytes","getActionContext","Msdyn365","appCache","getProductStateAsync","authNonce","isProductConfigurable","getSelectedVariant","getProductVariantAsync","ItemId","productItemId","getSeriesModel","GetProductExperlogixSeriesModelInput","isConfigurableAsync","authNonceBitStrength","updateExtensionProperties","newExtensionProperties","Key","StringValue","setCartTokenAsync","cartLineId","getSelectedCartLineIdFromActionInput","toObject","floor","charAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","n","GetFullOrderTemplateInput","orderTemplateId","getFullOrderTemplateActionDataAction","inputParams","GetOrderTemplatesInput","productLists","getOrderTemplates","inputLines","GetPaginatedOrderTemplateLinesInput","linesState","getPaginatedOrderTemplateLinesAction","OrderTemplate","lines","totalCount","fromInputData","QueryResultSettings","count","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","GetBusinessPartnerOperationRequestsInput","fromDate","toDate","getBusinessPartnerOperationRequestsAction","userInput","GetCurrentBusinessPartnerUserInput","getCurrentBusinessPartnerUser","StringExtensions","isNullOrEmpty","B2BUserId","getOperationRequestsAsync","Date","now","ICacheSource","commerceListsQuery","CommerceListClass","createCommerceListAsync","entity","create","createCreateInput","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","refinementCriteria","createRefineSearchByCategoryInput","Number","refinementCriterion","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","concat","keys","getOwnPropertySymbols","_productItemId","getHandlerUrl","getExperlogixRootUrl","ProductHandler","_experlogixSiteUrl","getBody","assembleUrlParams","status","data","AddItemToOrderTemplateInput","quantity","unitOfMeasure","addItemToOrderTemplateActionDataAction","productListLineToAdd","ProductListId","Quantity","UnitOfMeasure","productListLine","addProductListLinesAsync","GetProductReviewsInput","tenantId","localeListFilter","serviceEndpoint","orderBy","starFilters","skipItems","pageToken","dataSources","METHOD_NAME","regexp","error1","error2","GetDeliveryOptionsForSelectedVariantInput","featureState","getFeatureState","getFeatureStateActionDataAction","FeatureStateInput","createDeliveryOptionsForSelectedVariantInput","getDeliveryOptionsForSelectedVariantAction","IsEnabled","selectedVariantInput","productResult","getDeliveryOptionsAsync","ItemTypeValue","ReleasedProductType","Service","FilterDeliveryModeOption","FilterOutNonPickupDeliveryMode","message","getDeliveryOptionsForSelectedVariantActionDataAction","IS_PURE","pathname","toJSON","sort","href","String","URLSearchParams","username","hash","GetCustomerInput","accountNumber","cacheType","getCustomerActionDataAction","CustomersDataActions","token","ListPageState","activeFilters","sortingCritera","currentPageNumber","refiners","featureProduct","productPrices","__decorate","observable","ListPageStateInput","listPageStateAction","createListPageInput","Dictionary","_values","_length","entries","keyValuePair","setValue","removeValue","hasValue","getValue","getValueWithDefaultValue","defaultValue","isEmpty","clear","getValues","getKeys","getKeyValuePairs","re1","re2","regexpFlags","stickyHelpers","shared","getInternalState","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","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","arguments","toIntegerOrInfinity","min","argument","userAgent","test","AddOrderTemplateToCartInput","addOrderTemplateToCartActionDataAction","Skip","getPaginatedOrderTemplateLinesInput","orderTemplateLines","addedCartLines","skip","cartLines","productLine","fullProduct","ProductDetails","TrackingId","UnitOfMeasureSymbol","addCartLinesAsync","Version","refreshCart","getModuleBinder","moduleBinder","getBinder","lookupKey","view","componentBinder","lookupFunc","themeBinder","moduleNamespace","packageName","getComponent","cache","getAppCache","cacheKey","actionContextData","log","LogLevel","Debug","component","parentThemeName","getModuleName","parentDefinitionPath","parentThemeBinder","parentModuleBinder","defaultComponentLookupFunc","createComponent","componentObj","props","EXCEPTION_NOMODULEBINDER","values","asSystemMetadata","fileName","path","__filename","params","theme","componentView","Component","propsDictionary","addChunk","cn","React","cartsQuery","CartClass","createCartAsync","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","createReadAllAsync","readAllAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","SalesOrderClass","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","LoyaltyPointRedemptionEstimateClass","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","TenderLineClass","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","filterOption","SalesLineDeliveryOptionClass","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","CartDeliveryPreferencesClass","getDeliveryPreferencesAsync","createGetDeliveryOptionsInput","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","DeliveryOptionClass","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","amount","addChargeAsync","createOverrideChargeInput","chargeLineId","reasonCodeLines","overrideChargeAsync","createAddCartLineChargeInput","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","TenderDiscountLineClass","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","ReceiptClass","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","CardPaymentAcceptPointClass","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","CardPaymentAcceptResultClass","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","CartPromotionsClass","getPromotionsAsync","createGetAvailablePromotionsInput","CartPromotionLineClass","getAvailablePromotionsAsync","createRecallSalesInvoiceInput","invoiceId","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","CartLineUserAlertsClass","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","ChargeCodeClass","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","discountCode","addDiscountCodeAsync","createGetReturnOptionsInput","TenderTypeAmountClass","getReturnOptionsAsync","createValidateForCheckoutInput","CartLineValidationResultsClass","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","CreateOrderTemplateInput","templateName","createOrderTemplateActionDataAction","orderTemplate","ProductListTypeValue","createdProductList","createProductListAsync","CartTokenPrefix","getOrCreateActiveCart","Auth","Anon","setCartCookie","getCartFromCookie","wasReadFromCookie","getCartFromCustomer","anonCart","currentCart","anonCurrentCart","newCart","claimAuthCart","claimCart","mergedCart","sourceCart","destinationCart","updatedCart","cartLinesToDelete","hasShippingMethod","channelConfiguration","featureNames","cartline","newCartLine","IsGiftCardLine","buildGiftCardLine","featureStates","getFeatureStatesAsync","channelDeliveryOptionConfig","getChannelDeliveryOptionConfigurationAsync","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","FulfillmentStoreId","ShippingAddress","WarehouseId","PickupDeliveryModeCode","ExtensionProperties","Description","ReasonCodeLines","AttributeValues","LineId","Coupons","coupons","coupon","Code","addCartLines","claimAnonCart","createNewCart","LoyaltyCardId","card","getCustomerLoyaltyCardsAsync","CardNumber","authCarts","Sorting","Columns","ColumnName","IsDescending","IncludeAnonymous","CartTypeValue","searchCarts","EntryMethodTypeValue","Price","NetPrice","GiftCardBalance","IsPriceKeyedIn","ActiveImageInput","_cacheKey","activePoints","activePointData","createInput","getActiveImageproductAction","ItemIds","actionDataAction","BaseCollectionInput","includeAttributes","isUpdateRefinerPanel","refiner","RefinerRecordId","LeftValueBoundString","RightValueBoundString","convertToString","createBaseCollectionInput","inputClassConstuctor","queryRefiners","hydrateRefinersFromUrl","updateRefinerPanel","getUpdateRefinerPanel","sorting","parse","decodeURIComponent","Recommendation","DESCRIPTORS","NATIVE_ARRAY_BUFFER","FunctionName","createNonEnumerableProperty","defineBuiltIns","anInstance","toLength","toIndex","IEEE754","getPrototypeOf","getOwnPropertyNames","defineProperty","arrayFill","arraySlice","setToStringTag","InternalStateModule","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","setInternalState","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","ObjectPrototype","RangeError","fill","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","Constructor","isLittleEndian","intIndex","store","byteLength","bytes","start","byteOffset","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","j","testView","$setInt8","setInt8","getInt8","setUint8","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","USE_NATIVE_URL","defineBuiltIn","createIteratorConstructor","hasOwn","bind","$toString","createPropertyDescriptor","getIterator","getIteratorMethod","validateArgumentsLength","arraySort","getInternalParamsState","getterFor","getInternalIteratorState","URL_SEARCH_PARAMS","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","TypeError","shift","splice","plus","sequences","percentSequence","percentDecode","sequence","deserialize","replacements","replacer","serialize","URLSearchParamsIterator","kind","type","step","next","entry","done","URLSearchParamsState","init","parseObject","parseQuery","bindURL","entryIterator","entryNext","first","second","iteratorMethod","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","getAll","has","found","val","a","b","callback","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","body","dontCallGetSet","fetch","RequestConstructor","Request","getState","copyConstructorProperties","NativeSymbol","SymbolPrototype","description","EmptyStringDescriptionStore","SymbolWrapper","NATIVE_SYMBOL","symbolToString","symbolValueOf","valueOf","symbol","desc","salesOrder","_msdyn365","salesObject","saleLineProductUnits","SalesLines","getProductInfoFromCartLinesAsync","Purchase","affiliation","revenue","NetAmountWithoutTax","tax","TaxAmount","logEvent","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","el","fromIndex","createGetFeatureStateInput","getFeatureStateAction","StoreOperationsDataActions","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","mergeSort","array","comparefn","middle","insertionSort","merge","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","arraySpeciesConstructor","originalArray","GetInvoicesInput","CreateGetInvoicesInput","InvoicePaidStatusValues","InvoicePaidStatus","getInvoices","InvoiceTypeValues","InvoiceType","SalesOrderInvoice","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","AccountNumber","SalesOrdersDataActions","getInvoicesAsync","getInvoicesDataAction","getWrappedProxyObject","moduleName","getProxyHandler","disableChildModules","parentModule","slotKeys","modules","childModules","MSDYN365_WYSIWYG_DISABLED_PROPS","findModule","pageRoot","res","moduleType","target","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","State","Running","link","variations","Active","weight","Draft","createdDate","lastModifiedDate","lastModifiedBy","Paused","Archived","getVariantsForUser","userId","activateExperiment","initialize","secretManager","createSearchOrgUnitLocationsInputFunc","querySettingsProxy","createSearchOrgUnitLocationsInput","ActiveWishlistInput","getActiveWishlistItems","wishlists","currWishlist","CommerceListLines","commerceListLine","FullProductInput","getFullProducts","getActiveWishlistItemsDataAction","TO_STRING_TAG","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","imageItem","altText","width","height","createGetListInput","listData","pageData","list","items","_id","getInputListData","listItems","parentImageList","itemsPerPage","isNaN","getItemsPerPage","skipCount","getSkipCount","productItems","sum","clonedList","productItem","ListInput","getList","simpleProducts","GetScanResultInput","sku","skuNumber","scanResults","Product","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","ScanResult","ProductDimensionFull","$String","EventLevel","EventChannel","EventType","Utils","func","DebuggingConsoleSink","setSessionInfo","appSessionId","userSessionId","deviceId","deviceNumber","terminalId","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","errorFormat","errors","formatString","errorMessage","errorCode","errorString","ErrorMessage","EMPTY","ErrorCode","format","uniqueFunctionName","counter","Counters","PerformanceCounters","Count","getTime","Timers","startTime","pop","TotalTime","hasOwnProperty","Information","TracerDynamics","EmailRegex","html5EmailRegex","PasswordRegex","PhoneRegex","recommendationsQuery","RecommendationClass","RecommendedElementClass","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","getProductRefinerHierarchy","getProductSearchRefinersAsync","productRefiners","productRefiner","DOMIterables","DOMTokenListPrototype","handlePrototype","CollectionPrototype","COLLECTION_NAME","isConstructor","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","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","require","memoizeFormatConstructor","validation","methodName","argName","NAME_CULTURE_INFO_FORMATTER_EXCEPTION","EXCEPTION_INVALID_ARGUMENT","NAME","Prototype","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","proto","isTypedArray","klass","Function","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","isView","ProductListInventoryFilteringOptions","AttributesForSelectedVariantInput","createAttributesForSelectedVariantInput","getAttributesForSelectedVariantAction","getAttributeValuesAsync","productListInventoryDisplay","HideOOS","getInventoryConfigurationAsync","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","codeAt","entityDictionary","CategoryClass","odataObject","OfflineImage","ParentCategory","DisplayOrder","className","substr","lastIndexOf","MediaLocationClass","NameTranslations","TextValueTranslationClass","CommercePropertyClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValueBaseClass","BeginDateTime","jsonLightReadStringPropertyValue","BusinessDate","CancellationChargeAmount","EstimatedShippingAmount","CartLineClass","ChargeAmount","CustomerOrderRemainingBalance","ChargeLines","ChargeLineClass","TaxViewLines","TaxViewLineClass","Comment","InvoiceComment","CouponClass","CustomerOrderModeValue","DeliveryModeChargeAmount","DiscountAmount","DiscountAmountWithoutTax","DiscountCodes","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","SubtotalSalesAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","TotalItems","HasTaxCalculationTriggered","MerchantProperties","PaymentMerchantInformationClass","HasChargeCalculationTriggered","FiscalTransactions","FiscalTransactionClass","ShippingChargeAmount","OtherChargeAmount","PeriodicDiscountsCalculateScopeValue","CustomerClass","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","CustomerAffiliationClass","Attributes","CustomerAttributeClass","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","Contacts","ContactInfoClass","AllowOnAccountPayment","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","Tasks","ChecklistTaskClass","ProcessId","AssignedToChannelId","AssignedToWorkerPersonnelNumber","StatusValue","StartDateTime","EndDateTime","TargetDateTime","DocumentStatusValue","McrOrderStopped","Shipments","ShipmentClass","AggregateInventoryQuantities","InventoryQuantitiesClass","UnifiedDeliveryInformation","DeliveryInformationClass","PaymentStatusValue","DetailedOrderStatusValue","AffiliationLoyaltyTierLines","SalesAffiliationLoyaltyTierClass","CalculatedDepositAmount","CancellationCharge","ChannelReferenceId","ContactInformationCollection","ContactInformationClass","CustomerOrderTypeValue","EntryStatusValue","GrossAmount","HasLoyaltyPayment","InternalTransactionId","SuspendedTransactionId","InventoryLocationId","IsTaxIncludedInPrice","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmount","NetAmountWithNoTax","NetAmountWithTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","ReceiptId","SalesPaymentDifference","SalesLineClass","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","LanguageId","SalesAgreementRecordId","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OrgUnitClass","OrgUnitNumber","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductClass","ProductName","ProductNumber","IsKit","HasLinkedProducts","Rules","ProductRulesClass","DefaultUnitOfMeasure","Locale","IsRemote","ChangeTrackingInformation","ProductChangeTrackingInformationClass","Image","RichMediaLocationsClass","UnitsOfMeasureSymbol","LinkedProducts","LinkedProductClass","BasePrice","AdjustedPrice","RetailContext","ProjectionDomainClass","PrimaryCategoryId","DisplayOrderInCategories","DisplayOrderInCategoryClass","RelatedProducts","RelatedProductClass","ProductsRelatedToThis","ProductSchema","ProductProperties","ProductPropertyTranslationClass","CompositionInformation","ProductCompositionInformationClass","ParentKits","KitComponentClass","SearchName","ProductCatalogClass","IsSnapshotEnabled","ValidFrom","ValidTo","CreatedOn","ModifiedOn","PublishedOn","IsPrivate","IsCollaborative","DueDateTime","CommerceListTypeValue","CommerceListLineClass","CommerceListContributors","CommerceListContributorClass","CommerceListInvitations","CommerceListInvitationClass","ProductListClass","LastUpdated","DeletedDateTime","ProductListLines","ProductListLineClass","RecommendationTypeValue","TransferOrderClass","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","PickingListClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","ScanResultClass","ScannedText","MaskTypeValue","Barcode","BarcodeClass","SimpleProductClass","LoyaltyCard","LoyaltyCardClass","GiftCard","GiftCardClass","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","TransactionDate","BusinessPartnerClass","BusinessPartnerUserClass","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","super","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAttributeDataTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","FullAddress","Street","StreetNumber","County","CountyName","City","DistrictName","StateName","ZipCode","ThreeLetterISORegionName","EmailContent","TwoLetterISORegionName","Deactivate","AttentionTo","BuildingCompliment","Postbox","AddressTypeValue","IsPrimary","IsAsyncAddress","DirectoryPartyTableRecordId","DirectoryPartyLocationRecordId","DirectoryPartyLocationRoleRecordId","LogisticsLocationId","LogisticsLocationRecordId","LogisticsLocationExtRecordId","LogisticsLocationRoleRecordId","PhoneLogisticsLocationRecordId","PhoneLogisticsLocationId","EmailLogisticsLocationRecordId","EmailLogisticsLocationId","UrlLogisticsLocationRecordId","UrlLogisticsLocationId","ExpireRecordId","SortOrder","RoleCount","RetailAffiliationId","HideInChannels","CustomerBalancesClass","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","InvoiceAccountCreditLimit","OpenInvoiceBalance","OpenInvoiceCount","GlobalCustomerClass","FullName","AttributeValueClass","KeyName","DataTypeValue","BooleanValue","DateTimeOffsetValue","FloatValue","IntegerValue","TextValue","CurrencyValue","AttributeValueId","Swatches","AttributeSwatchClass","BarcodeId","BarcodePrice","EmployeeId","SalespersonId","EANLicenseId","DataEntry","DiscountCode","GiftCardNumber","LoyaltyCardNumber","ItemBarcode","ItemBarcodeClass","ItemType","EnterDimensions","ItemGroupId","ItemDepartmentId","ScaleItem","ZeroPriceValid","NegativeQuantity","DiscountNotAllowed","DateToBeBlocked","DateToBeActivated","CheckDigitValidated","CouponId","Message","IncludedInTotalDiscount","CostPrice","BatchId","BarcodeSetupId","ItemBarcodeValue","InventoryDimensionId","IsBlocked","Display","VariantId","UnitId","UseForInput","UseForPrinting","ButtonGridClass","DefaultColor","SpaceBetweenButtonsInPixels","Buttons","ButtonGridButtonClass","ButtonGridIds","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","PriceLines","PriceLineClass","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","QuantityRemained","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","Amount","Authorization","CardTypeInfoClass","TypeId","PaymentMethodId","CardTypeValue","Issuer","NumberFrom","NumberTo","CashBackLimit","AllowManualInput","CheckModulus","HasTenderDiscount","IsPinRequired","IsExpirationDateRequired","ConnectorName","PaymentProcessorMethod","CashDeclarationClass","CashTypeValue","IncludeInQuickPayShortcuts","IncomeExpenseAccountClass","AccountName","AccountNameAlias","AccountTypeValue","Message1Line","Message2Line","SlipText1Line","SlipText2Line","IncomeExpenseAccount","StoreNumber","Terminal","Shift","TransactionStatusValue","PaymentCard","PaymentCardClass","TokenizedPaymentCard","TokenizedPaymentCardClass","CardPaymentAcceptResult","IsLinkedRefund","LinkedPaymentStore","LinkedPaymentTerminalId","LinkedPaymentTransactionId","LinkedPaymentLineNumber","LinkedPaymentCurrency","TenderLineId","CashBackAmount","AmountInTenderedCurrency","AmountInCompanyCurrency","ExchangeRate","CompanyCurrencyExchangeRate","TenderTypeId","SignatureData","GiftCardPin","GiftCardExpirationYear","GiftCardExpirationMonth","CreditMemoId","CardTypeId","IsChangeLine","IsHistorical","IsVoidable","VoidStatusValue","AuthorizedAmount","PaymentRefRecId","CardPaymentAccountId","ProcessingTypeValue","CardProcessorStatusValue","LinkedPaymentRefRecId","IsPolicyBypassed","ChargeLineId","ChargeCode","ModuleTypeValue","IsHeaderChargeProrated","ChargeTypeValue","ChargeMethodValue","CalculatedAmount","TransactionId","MarkupAutoLineRecordId","MarkupAutoTableRecId","SaleLineNumber","FromAmount","ToAmount","Keep","AmountRefunded","ChargeLineOverrides","ChargeLineOverrideClass","IsRefundable","IsShipping","IsOverridden","IsInvoiced","CalculatedProratedAmount","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","ReturnTaxLines","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","CityInfoClass","StateId","CountyId","CommissionSalesGroupClass","GroupId","ContactInformationTypeValue","AttributeCategoryClass","CommercePropertyValueClass","Attribute","AttributeProductClass","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","ProductComparisonLineClass","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","OrderShipmentsClass","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","TransactionClass","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","ShiftReconciliationLineClass","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","SearchConfigurationClass","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","CustomerTimelineItemClass","EntityType","AttributeDefinitionClass","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","Languages","AttributeGroupDefinitionClass","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupIdentifiers","CountyInfoClass","CustomerGroupClass","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","PricingAttributeCombinationPriority","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","AllowPostInventoryAdjustment","AllowPostStockCounting","ByteValue","DecimalValue","LongValue","CountryRegionInfoClass","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CreditMemoClass","CurrencyClass","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","CurrencyAmountClass","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentConfigurationClass","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","DeviceConfigurationClass","UseInMemoryDeviceDataStorage","AllowItemsAggregation","AggregateItemsForPrinting","AggregatePayments","AlwaysExpandTransactionScreenLineDetails","AuditEnabled","DiscountAtTotal","ProductDiscount","ManuallyCalculateComplexDiscounts","DisplaySecondaryTotalCurrency","EndOfTransaction","ItemNotOnFile","LimitStaffListToStore","LineItemTaxChange","MarkUp","MaximumPrice","MaximumQuantity","MinimumPasswordLength","MustKeyInPriceIfZero","NfcEContingencyModeEnabled","NfcEVoided","FunctionalityProfileDescription","OverridePrice","PrintVoidTransactionReceipts","PrintReceiptsOnCardDecline","PrintXZReportsOnTerminal","PrintTenderDetailsOnXReport","ProfileId","RefundSale","ReturnProduct","SalesPerson","SecondaryTotalCurrency","SelectHardwareStationOnTendering","ShowStaffListAtLogOn","StaffBarcodeLogOn","StaffBarcodeLogOnRequiresPassword","StaffCardLogOn","StaffCardLogOnRequiresPassword","StartOfTransaction","EnableTimeRegistration","TenderDeclaration","TransactionTaxChange","VoidItem","VoidPayment","SalesModeDefaultsAsCustomerOrder","CreateOfflineCustomerOrders","CreateAsyncCustomers","EnableAxCustomerSearch","VoidTransaction","SystemLegalTermsUrl","SystemPrivacyStatementUrl","HideTrainingMode","StorePhone","StatementMethod","StoreTaxGroup","TaxIdNumber","TaxOverrideGroup","TenderDeclarationCalculation","AutoLogOffTimeoutInMinutes","AutoExitMethodValue","CustomerDisplayText1","CustomerDisplayText2","EFTStoreId","EFTTerminalId","ExitAfterEachTransaction","HardwareProfile","Placement","TerminalDescription","OpenDrawer","OpenDrawerAtLogOnLogOff","PrintTaxRefundChecks","StandAlone","TerminalStatement","VisualProfile","IncludeKitComponents","AccentColor","HeaderColor","Theme","FontScheme","ShowAppBarLabel","LogOnBackgroundPictureAsBase64","LogOnBackgroundPicturePortraitAsBase64","BackgroundPictureAsBase64","LogonBackgroundPictureId","LogonBackgroundPictureIdCompact","LogonBackgroundPictureIdPortrait","LogonBackgroundPictureIdCompactPortrait","BackgroundPictureId","RequireAmountDeclaration","DecimalNotRequiredForMinorCurrencyUnit","MaxTransactionSearchResults","OfflineProfileId","NewOfflineDatabaseCheckInterval","OfflineTransactionUploadInterval","ReconnectToOnlineInterval","SwitchToOfflineTimeout","OfflineSwitchApiPerformanceThresholdInSeconds","ReconnectFromPerformanceInducedOfflineIntervalInSeconds","RetentionDays","HardwareConfigurations","HardwareConfigurationsClass","CreateRecording","PlaybackRecording","ShouldUseDefaultCommisionSalesGroup","AskForSalesRepresentative","IsSalesRepRequired","ProhibitMixingSalesAndReturns","ApplyDiscountsToPriceKeyedIn","ApplyDiscountsToPriceOverrides","IsProductSuggestionsEnabled","ProductSearchType","TerminalRecId","DeviceRecId","DenominationsToDisplayValue","PromptOnSeamlessOffline","RetryCountToOffline","EnableAdvancedOfflineSwitching","SystemHealthCheckInterval","RejectOrderFulfillment","ManuallyCalculateTaxes","EmployeeLogonTypeValue","StartAmountCalculation","BankDropCalculation","GenerateLoyaltyCardNumber","FiscalRegistrationProcessId","IncludeSalesOrderInvoices","IncludeFreeTextInvoices","IncludeProjectInvoices","IncludeCreditNoteInvoices","DisplayTaxExemptInLineDetails","TaxExemptReceiptIndicator","ManuallyCalculateCharges","ChargeOverrideReasonCode","ShiftReconcilation","CustomerAccountFloorLimit","VoidSuspendedTransactionsOnCloseShift","ShowDateTime","UseAdvancedCashManagement","DefaultCustomerSearchModeValue","AllowManualOfflineBeforeSignIn","UseFinancialReconciliationInStore","RequirePaymentForFulfillmentValue","CardNotPresentProcessingConfigurationValue","EnableQuickPayShortcuts","ChangeDueBehaviorValue","VisualProfileClass","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","OperationalInsightsConfigurationClass","InstrumentationKey","DeviceClass","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","DiscountCodeClass","ConcurrencyMode","Disclaimer","DistrictInfoClass","CityName","HardwareProfileClass","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","FiscalIntegrationTechnicalProfileClass","CashDrawers","HardwareProfileCashDrawerClass","SupportedLanguageClass","UseShippingAddress","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","RequireShippingAddress","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","AccessCode","Settings","RetrievePaymentResultSettingsClass","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","Header","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","ReceiptMaskClass","IsIndependent","Mask","OriginLineId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Notes","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInTenderedCurrency","OverriddenTenderedAmountInTenderedCurrency","OverShortAmountOfTenderCurrency","OperationType","ProductRecordId","ItemName","Counted","EstimatedOnHandQuantity","OnHandCalculationDateTime","Unit","UserId","CountedDate","InventBatchId","WarehouseLocationId","InventoryStatus","WarehousePalletId","InventSiteId","ConfigId","InventSizeId","InventColorId","InventStyleId","InventSerialId","TrackingGuid","UpdatedInAx","IsExempt","TaxBasis","IsIncludedInPrice","TaxCode","RefundableAmount","CaptureToken","CardToken","IncomeExpenseAccountTypeValue","MaskedCardNumber","TenderDate","IsPreProcessed","IsDeposit","IsCustomerAccountFloorLimitUsed","AuthorizationReferenceId","IsIncrementalCaptureEnabled","IsReauthorizationEnabled","IncrementalOffsetAmount","RoundingDifference","Text","UnitOfMeasureClass","DecimalPrecision","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","ProductPriceClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","PriceSourceTypeValue","OrgUnitAvailabilityClass","OrgUnitLocation","OrgUnitLocationClass","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","ToProductId","ToInventoryDimensionId","ActionTypeValue","ModeValue","SourceDocumentId","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","DocumentStateValue","DocumentTypeValues","DocumentLineId","InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass","UpdatedLines","TotalLinesUpdated","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","InventoryDocumentValidationResultSummaryClass","DocumentVersion","CategorySummaries","InventoryDocumentValidationResultLineClass","DocumentValidationResultLineId","DocumentLongVersion","Categories","ProductDimensionValueInventoryAvailabilityClass","ProductDimensionValueClass","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","ProductRefinerClass","SourceValue","Values","ProductRefinerValueClass","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerClass","ClientBookRefinerValueClass","ProductRelationTypeClass","ComponentInSlotRelationClass","ComponentId","SlotId","IsSerialized","IsActiveInSalesProcess","DateOfBlocking","DateToActivate","DateToBlock","PriceKeyingRequirementValue","QuantityKeyingRequirementValue","MustKeyInComment","CanQuantityBecomeNegative","MustScaleItem","CanPriceBeZero","LocalizedStringClass","TextId","CardTenderTypeValue","CustomerAccount","LoyaltyGroups","LoyaltyGroupClass","RewardPoints","LoyaltyRewardPointClass","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","LoyaltyEnrollmentTime","LoyaltyEnrollmentTimeLocal","OmOperatingUnitId","ProductComponentClass","AdditionalChargeForComponent","Behavior","ProductBehaviorClass","ProductTypeValue","Components","IsGiftCard","SimpleLinkedProductClass","ItemServiceTypeValue","IsDiscountAllowed","IsManualDiscountAllowed","IsKitDisassemblyAllowed","IsNegativeQuantityAllowed","IsReturnAllowed","IsSaleAtPhysicalStoresAllowed","IsZeroSalePriceAllowed","KeyInPriceValue","KeyInQuantityValue","MustPrintIndividualShelfLabelsForVariants","MustPromptForSerialNumberOnlyAtSale","MustWeighProductAtSale","ValidFromDateForSaleAtPhysicalStores","ValidToDateForSaleAtPhysicalStores","IsStorageDimensionGroupLocationActive","IsStorageDimensionGroupLocationAllowBlankReceiptEnabled","AllowNegativePhysicalInventory","IsStockedProduct","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","ProductSearchResultClass","AverageRating","TotalRatings","SearchSuggestionClass","Value2","Value3","Value4","SuggestionType","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","LoyaltyCardTransactionClass","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationPermissionClass","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","StateProvinceInfoClass","TransactionLogClass","KitTransactionClass","KitTransactionLines","KitTransactionLineClass","SalesTaxGroupClass","TaxGroupName","ProductPropertyClass","ValueString","PropertyTypeValue","IsDimensionProperty","GroupTypeValue","GroupName","VariantInformation","ProductVariantInformationClass","KitDefinition","KitDefinitionClass","ActiveVariantProductId","Variants","ProductVariantClass","ProductDimensionSetClass","ChangeActionValue","RequestedActionValue","DimensionKey","DimensionValues","ProductDimensionValueSetClass","VariantSet","SwatchRefinerGroupValue","SwatchRefinerGroupTranslation","SwatchRefinerGroupImageUrl","SwatchRefinerGroupColorHexCode","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","ProductAssortmentIntervalClass","OrgUnitContactClass","Distance","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineId","DeliveryOptions","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelDeliveryOptionClass","ChannelIdentityClass","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelConfigurationClass","ChannelNaturalId","MinimumDepositPercentage","QuoteExpirationDays","CarryoutDeliveryModeCode","CancellationChargePercentage","InventLocationDataAreaId","BingMapsApiKey","BingMapsEnabled","CatalogDefaultImageTemplate","CompanyCurrency","PriceIncludesSalesTax","ChannelCountryRegionISOCode","DefaultLanguageId","TimeZoneInfoId","EmailDeliveryModeCode","GiftCardItemId","EnableProductRecommendations","RefundableShippingAmountWithoutApproval","RefundShippingCharges","ReceiptSettingsValue","ClientBookAttributeGroupId","NotificationRefreshInterval","AllowExchangeOnReturnOrders","IsInventoryAutomaticValidationEnabled","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","Channel","ChannelDeliveryOptionConfigurationClass","NonSalesTransactionClass","ForeignCurrency","DenominationDetails","DenominationDetailClass","DropAndDeclareTransactionClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","IncludeProductsFromDescendantCategories","SearchCondition","Barcodes","Refinement","DownloadProductData","IsOnline","SynchronizationToken","AsListings","Session","ReadChangedProductsSessionClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","ProductSearchCriteria","CustomerSearchCriteria","HitPrefix","HitSuffix","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","DecodeData","IsSharedShiftDrawer","TillLayoutClass","CashChangerLayoutXml","CustomerLayoutId","CustomerLayoutXml","Height","LayoutTypeValue","LayoutXml","LayoutXmlPortrait","ReceiptItemsLayoutXml","ReceiptPaymentLayoutXml","TotalId","TotalsLayoutXml","StartScreen","ButtonGridZones","ButtonGridZoneClass","ImageZones","ImageZoneClass","ReportZones","ReportZoneClass","SalesInvoiceClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","OrderInvoiceClass","InvoiceDueDate","InvoicePaidStatusValue","TaxOverrideClass","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","TenderTypeClass","ChangeTenderTypeId","AboveMinimumChangeAmount","AboveMinimumChangeTenderTypeId","UseSignatureCaptureDevice","MinimumSignatureCaptureAmount","IsOvertenderAllowed","IsUndertenderAllowed","MaximumOvertenderAmount","MaximumUndertenderAmount","MaximumAmountPerTransaction","MaximumAmountPerLine","MinimumAmountPerTransaction","MinimumAmountPerLine","RoundOff","TakenToBank","TakenToSafe","ConnectorId","GiftCardItem","GiftCardCashoutOutThreshold","ChangeLineOnReceipt","HideCardInputDetails","CashDrawerLimitEnabled","CashDrawerLimit","RestrictReturnsWithoutReceipt","DefaultCardTypeId","UseForDeclareStartAmount","ReasonCodeClass","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportDataSetClass","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipCodeInfoClass","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","PagingInfoClass","SortingInfoClass","NextPageToken","TranslationLanguage","TranslatedProperties","NumberSequenceSeedDataClass","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ReceiptNumberResetInfoClass","ResetDate","TypeValue","Enabled","DeviceActivationResultClass","Device","PurchaseHistoryClass","DatePurchased","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","FrameworkClass","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","RecordingClass","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","SelectedComponents","WarehouseLocationClass","IsLicensePlateControlled","TransDateTime","RegisterResponse","ReceiptCopy","RecordGUID","RegisterStoreId","RegisterTerminalId","RegistrationStatusValue","RegistrationProcessId","ConnectorGroup","ConnectorFunctionalityProfileId","RegisterInfo","DocumentNumber","RegistrationTypeValue","ServiceName","TenderLineAdjustments","FiscalTransactionTenderLineAdjustmentClass","SalesLineAdjustments","FiscalTransactionSalesLineAdjustmentClass","FulfillmentLineClass","SalesPersonStoreId","SalesPersonId","SalesPersonFirstName","SalesPersonLastName","SalesLineNumber","EmailAddress","DeliveryModeCode","FulfillmentDeliveryType","DeliveryTypeValue","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","ChannelTypeValue","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","IsBlocking","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","BusinessPartnerOperationRequestClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","JournalNameIds","AssortedProductIdentityClass","IsRemoteProduct","ProductExistenceIdClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","Priority","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","CustomerRefinerClass","TenderType","CardTokenInfo","CardTokenInfoClass","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","OrderStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","PersonnelNumber","ChecklistIds","StatusValues","TaskIds","FilterMyTasks","FilterOverdueTasks","ChecklistTaskTeamsIntegrationConfigurationClass","MicrosoftGraphResource","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartId","ExpectedCartVersion","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ExtensibleEAddressType","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","DeletedListingsResultClass","HasMorePublishedListings","DeletedListings","ListingIdentityClass","ProductRatingClass","RatingDistribution","ProductRatingCountClass","ProductDeliveryOptionsClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","InventoryLocationIds","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","HeaderPromotions","CartLinePromotions","Promotion","PromotionClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","InvoiceIds","AffiliationId","LoyaltyTierId","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","Changes","ClientBookChangeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","StoreSafeClass","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","CreateHardwareStationTokenResultClass","HardwareStationToken","PairingKey","ValidateHardwareStationTokenResultClass","MediaBlobClass","MediaType","Content","PictureId","OnlineChannelClass","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","RequiresDataInitialization","HasBeenInitializedBefore","DataDownloadParametersClass","DownloadInterval","DownloadSessions","DownloadSessionClass","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","DataUploadParametersClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","LoyaltyRewardPointActivityClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","AmountToConvert","HardwareStationProfileClass","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","LinkToExistingCustomerResultClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","OfflineSyncStatsLineClass","IsUploadJob","LastSyncDateTime","StorageAccessTokenClass","SasKey","TaskGuidesSearchResultClass","FrameworkPublisherName","AuditEventClass","EventId","EventIdString","Store","UploadType","EventDateTime","DurationInMilliseconds","Source","EventMessage","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","InventoryAvailableToPromiseClass","NotificationItemClass","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","FiscalIntegrationDocumentClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","FiscalIntegrationSequentialSignatureDataClass","FiscalIntegrationRegistrationProcessClass","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FiscalIntegrationSupportedEventsClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","ConnectorLocationValue","TechnicalProfile","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","ServiceProperties","FiscalIntegrationServiceStatusClass","IsReady","FiscalIntegrationServiceCommunicationResultClass","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathResultClass","CategoryPath","CategoryPathClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","CheckInForOrderPickupConfirmationClass","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryOutOfStockAttributeValueText","ChannelPurchaseConfigurationClass","AllowOverDelivery","AllowSubDelivery","InventoryJournalNameClass","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","UserDefinedSecretCertificateResultClass","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseInventoryInformationClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","SearchArea","QuantityUnitTypeValue","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","EmailReceiptSettingsClass","EmailBehaviorValue","SwatchValue","ProductImageUrls","UnitSymbol","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","CanApplyPriceAdjustments","PriceAdjustmentPriceLineClass","Concurrency","CanCompoundOnAdjustedPrice","AdjustedAmount","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxComponent","Path","UniqueCardId","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","ReturnLocationText","ReturnWarehouseText","ReturnReasonText","ReturnPalleteText","LoyaltyGroupRecordId","EntryDate","EntryTime","RewardPointRecordId","RewardPointIsRedeemable","RewardPointType","ServiceType","PackageWeight","WeightClass","ShippedOnDate","DeliveredOnDate","EstimatedDeliveryDate","PackagingType","DestinationAddress","OriginAddress","ShipmentProgress","ShipmentProgressClass","ShippingCharge","Location","DateTime","AddressComponentNameValue","IsDataEntryOnly","NewLine","Expand","Inactive","Special","NumberOfSpaces","Separator","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","ReportRecordId","InventTransactionId","DiscountPercent","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","MenuItemLabel","MenuItemName","MenuItemType","RecordingValueType","ExampleText","Hidden","IsReference","ValueLabel","PropertyName","UserActionType","ControlLabelId","NavigationPath","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","SerialNumberInLatestFulfillmentTransaction","LatestFulfillmentTransactionOperationTypeValue","Rating","MondayOpenTime","MondayCloseTime","IsClosedOnMonday","TuesdayOpenTime","TuesdayCloseTime","IsClosedOnTuesday","WednesdayOpenTime","WednesdayCloseTime","IsClosedOnWednesday","ThursdayOpenTime","ThursdayCloseTime","IsClosedOnThursday","FridayOpenTime","FridayCloseTime","IsClosedOnFriday","SaturdayOpenTime","SaturdayCloseTime","IsClosedOnSaturday","SundayOpenTime","SundayCloseTime","IsClosedOnSunday","PeriodId","StartingTime","EndingTime","IsTimeBounded","MondayStartingTime","MondayEndingTime","IsMondayTimeBounded","TuesdayStartingTime","TuesdayEndingTime","IsTuesdayTimeBounded","WednesdayStartingTime","WednesdayEndingTime","IsWednesdayTimeBounded","ThursdayStartingTime","ThursdayEndingTime","IsThursdayTimeBounded","FridayStartingTime","FridayEndingTime","IsFridayTimeBounded","SaturdayStartingTime","SaturdayEndingTime","IsSaturdayTimeBounded","SundayStartingTime","SundayEndingTime","IsSundayTimeBounded","IsEndTimeAfterMidnight","IsMondayEndTimeAfterMidnight","IsTuesdayEndTimeAfterMidnight","IsWednesdayEndTimeAfterMidnight","IsThursdayEndTimeAfterMidnight","IsFridayEndTimeAfterMidnight","IsSaturdayEndTimeAfterMidnight","IsSundayEndTimeAfterMidnight","FromStaffId","ToStaffId","RecId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","TransactionDateTime","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","TotalAvailableQuantity","PhysicalAvailableQuantity","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","UserAuthenticationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","ErrorContext","MemberNames","RemovedUnavailableItemIds","WorkingTerminalId","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","ActualLength","MinLength","PaymentConfigurationSdkErrors","OriginalTenderType","AllowedReturnTenderTypes","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","RedirectUri","GetSalesOrderDetailsByConfirmationInput","channelReferenceLookupCriteria","confirmationId","getSalesOrderDetailsByChannelReferenceIdAction","getOrderByChannelReferenceLookupCriteriaAsync","getSalesOrderDetailsByChannelReferenceIdDataAction","orderTypes","getSalesOrderDetailsByLookupCriteria","propertyName","propertyValue","addtionalLookupParameter","queryArray","additionalFieldName","additionalFieldValue","orderStatusLookUpParameterTypeName","orderStatusLookUpParameterValue","getQueryStringParameters","orderLookupExtensibleEnum","getExtensibleEnumerationsAsync","channelReferenceAdditionalLookupCriteria","retailProxyValue","retailProxyTypeValue","additionalItem","GetSalesOrderWithHydrationsInput","orderType","orderId","getSalesOrderWithHydrationsAction","signInUrl","assign","getSalesOrderDetailsBySalesIdAsync","getSalesOrderDetailsByTransactionIdAsync","SearchLocation","All","getSalesOrder","TransactionType","SalesInvoice","salesLine","getSimpleProducts","getProducts","validProducts","ObjectExtensions","isNullOrUndefined","deliveryOptions","getSalesOrderWithHydrationsActionDataAction","transaction","fixRegExpWellKnownSymbolLogic","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","matchStr","createTabStateInput","GenericInput","getGenericActionDataAction","getGenericAction","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","P","current","updateCustomerPersonalizationInput","userAccountNumber","isOptOut","preferenceType","updateCustomerPersonalizationActionDataAction","newCustomer","updatedCustomer","baseUrl","requestOptions","oun","cartTenderLineItem","billingAddress","requestBody","sendCommerceRequest","callRegExpExec","regexpExec","$push","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","ignoreCase","lastLastIndex","separatorCopy","splitter","unicodeMatching","z","originalExec","DeleteOrganizationUserInput","newUser","deleteOrganizationUserDataAction","$Array","abs","pow","LN2","mantissaLength","exponent","mantissa","c","exponentLength","eMax","eBias","rt","sign","Infinity","nBits","topHint","skipHint","sortingHintData","column","sortingHint","fromModuleData","sortingCriteria","platform","defaultPageSizeForAPI","CategoriesInput","mappedToHierarchy","_mappedToHierarchy","getLocale","mapCategoryToHierarchy","categoryList","categoryMap","localName","nameTranslations","nameTranslation","getFriendlyName","categoryHierarchy","NeutralizedName","zeroCategory","parentId","getCategoryUrl","createCategoriesHierarchyInput","topItems","topCategories","getCategoryHierarchyAction","getCategoryAction","RawCategoriesInput","getCategoryHierarchyActionDataAction","ActiveOrderTemplateLinesInput","getActiveOrderTemplateLines","getFullOrderTemplate","getActiveOrderTemplateLinesDataAction","connectorListener","eventName","payload","EditOrganizationUserInput","editOrganizationUserDataAction","updatedUser","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","createProperty","end","k","fin","InventoryLevels","InventoryLevelValues","getInventoryLevelCodeFromDimensionValue","inventoryLevel","totalAvailable","physicalAvailable","getInventoryLevelCodeFromProductAvailability","productAvailability","cartObject","addedProducts","AddToCart","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","preferredStore","_context","storeId","selectedStoreLocationId","storeName","writeToCookie","StoreName","_writeToCookie","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","MsDyn365","localStorage","removeItem","setItem","getItem","computed","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","searchContent","jsonp","getRandomValues","encodeURI","geolocationApiUrl","script","createElement","setAttribute","remove","resourceSets","resources","point","coordinates","appendChild","getElementById","lang","market","defer","src","mapAPIReady","isMapApiLoaded","addEventListener","createStoreSelectorStateInput","iterate","stat","fromEntries","obj","v","warehouseId","getSimpleProductsAction","getProductPromises","catalogIds","unique","flatten","bitmap","DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","getPartnerOverrideAction","partnerDataAction","isAction","registeredAction","dataAction","actionRegister","registration","registerHook","hookType","hook","StaticTelemetry","hooks","hookRegistration","Set","h","newRegistration","actionRegistration","pre","post","preRead","postRead","preReader","postReader","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","wrapDataAction","actionWrap","inputFunc","_action","registrationId","RegistrationId","_isBatched","newAction","setProperty","registerAction","wrappedAction","arg1","arg2","AsyncResult","chainAction","preHook","registerPreHook","postHook","registerPostHook","preReadonlyHook","registerPreReadOnlyHook","postReadonlyHook","registerPostReadOnlyHook","registerPreReaderHook","registerPostReaderHook","ActionError","shouldReadFromAppCache","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","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","checkVersionForFeature","platformSettings","shouldUseInstanceCache","uuidv1","masterInput","addInputs","bypassAppCache","refreshingInputs","_removeDuplicates","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","Trace","_saveResponseToCache","_checkShouldInteractWithCache","cacheItem","_runPostReadHooks","_runPostReaderHooks","inputA","inputB","inputsActionId","getActionId","_getActionFromId","resolveRegistration","unwrapAction","getPreReadHooks","hookTimeout","timer","previousTask","currentTask","race","actionResult","getPostReaderHooks","getPreReaderHooks","getPreHooks","prevInput","tmpNextInput","finalNextInput","getPostReadHooks","getPostHooks","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","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","cacheNamespace","proxyError","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","cachebypass","refreshActions","paramExecutor","actionInputs","disable_appcache_refresh_await","rf","refreshRequestCache","refreshContext","buildHydratedMockActionContext","CatalogsInput","getCatalogsAsync","isForced","inheritIfRequired","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","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","encode","currentValue","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","t","qMinusT","baseMinusT","label","encoded","labels","searchArea","GetOrgUnitLocationsInput","getOrgUnitLocationsAction","orgUnitLocations","getOrgUnitLocationsByAreaAsync","getOrgUnitLocations","getOrgUnitLocationsActionDataAction","GetOrderTemplatesPreviewInput","createGetOrderTemplatesPreviewInput","getOrderTemplatesPreview","getFullOrderTemplates","GetFullOrderTemplatesInput","getOrderTemplatesPreviewDataAction","GetChannelDeliveryConfigurationInput","GetChannelIdentitiesInput","getChannelsAction","channels","getChannelsAsync","getChannels","channelIdentities","getChannelsActionDataAction","createGetTenderTypesInput","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","dependencyName","RSRequestInterceptor","requestHeaders","caseInsensitiveHeaderMap","apiEndPoint","replaceString","requestIdVector","caseInsensitiveRequestIdHeaderName","currentRequestId","startTimer","rv","r","isUrlLocalizationEnabled","parameterizeFeatureFlags","enableUrlLocalization","getPageTypeContextByIdAction","pageTypeContext","ProductLinkInput","getByIdAsync","catalogid","getCategoriesAsync","rootCategory","rootCategoryWithNeutralizedName","slug","parameterize","parentCategory","parentCategoryWithLocalizedName","getCategorySlug","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","getVersionDependentFeatureInfo","_putRequestedModulesInCacheOnServer","_initThemeModulesList","moduleList","resultArray","chunkIndex","_constructModuleMetaData","loadData_optimization","moduleMetaData","setAppCacheEntries","appCacheEntries","CACHE_SETTING","setPlatformSettingsForClient","disableActionRegOptimization","imageFallbackOptimize","enableModuleEntryPoints","isModuleEntryPointsEnabled","enableImageOptimizeEvents","enableModuleCssOptimization","clientTimeoutMapInMs","getPlatformSettingsForClient","deferred","MODULE_DEFERRED_KEY","getResourceTextForPlaceholderPreview","resourceItem","MODULE_RESOURCES_KEY","clickToConfigure","markModuleAsDeferred","EXCEPTION_INITIALDATAFAIL","cacheBasedOnType","cachekey","_rehydrateAsyncResults","MODULE_CACHE_KEY","moduleItem","dataActions","_populateDataActionResultFromCache","promiseResult","_resolveCacheRef","cacheRefInfo","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","statusCode","RSErrorResponseHandler","CLIENT_HYDRATE_CACHE_KEY","resetClientHydrateContext","del","activateExperiments","experimentationConnector","experimentation","activeExperiments","experimentInfo","experimentsWithoutModuleId","experimentsWithModuleId","provider","device","experimentMap","experimentObserver","IntersectionObserver","observer","isIntersecting","intersectionRatio","activatedExpId","getAttribute","unobserve","threshold","currentExperiment","querySelector","observe","hydrateClient","pageContext","coreContext","defaultPageConfig","disable_moduleConfig_optimize","ReactDOM","CoreContext","Provider","SafeRenderModule","root","LAYOUT_MOUNT_POINT","initAuthoringHelper","themeSettings","___initialData___","AuthoringToolsHelper","dpEvent","updateDisabledProperties","clientRender","storeData","MESSAGE_CLIENT_RENDER_ERROR","removePlaceholderModules","modulesDictionary","slot","disableCookieCompliance","cartSessionExpiration","isConsentRequired","cartExpirationInDays","sameSiteRequired","urlSearchParams","search","freeze","getRequestContext","requestFormData","routes","checkout","requestContextUrl","isCheckoutRoute","pv","isPaymentVerification","__msdyn365__","oneDSWeb","expListener","appInsightsInstrumentationKey","telemetrySettings","msftClientAppInsightsJSLogger","ClientAppInsightsJSLogger","LoggerType","MSFTApplicationInsightsLogger","operationalInsightsInstrumentationKey","operationalClientAppInsightsJSLogger","OperationalApplicationInsightsLogger","internalTelemetry","enableDataAnalytics","registerWebAnalyticsPlugin","registerAttributeRenderer","expAttributeRenderer","setTelemetryRequestContext","siteId","pageId","correlationId","logWebVitals","targetId","tuid","missingSegments","canonicalDomain","neededMissingSegments","providerId","segmentProvider","segmentIds","cookieString","cookie","segmentRequestId","missingSegmentResolvingUrl","segRequestContext","requestContextObject","disable_segment_requestContext","segmentProviderList","resolveMissingSegmentsOnClient","registerExpLogger","contentSecurityPolicy","disableContentSecurityPolicy","enableReportOnlyMode","randomNumberGenerator","cspReport","blockedURI","documentURI","originalPolicy","violatedDirective","CONTENT_SECURITY_POLICY_ERROR","customTags","putRequestedModulesInCacheOnClient","EXCEPTION_CLIENT_CACHE_HYDRATE","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","setClientHydrate","pageName","telemetryPageName","PageView","deprecatedEvent","DEPRECATED_CLIENT_RENDER_COMPLETE_EVENT","CLIENT_RENDER_COMPLETE_EVENT","setClientHydrateContext","modulesRenderedOnServer","isLazyRenderModuleEnabled","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","perfAnalysisLibBinding","updatePrivateVariable","_env","addCreateComponentHook","initializeClientApp","skipConsoleWarn","clientPlatformSettings","originalBinder","moduleKey","binder","fetchComponent","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","listLine","QuickOrderTemplateLine","fullProductsInfo","line","toPositiveInteger","BYTES","getQuantityLimit","maxQuantityForCartLineItem","inputItem","quantityLimit","shouldEnableStockCheck","availableQuantity","getElementIndex","cartLineToAdd","elementFoundAt","productIdToFind","addProductsToCartWithoutSiteSettings","newCartLines","cartLine","addCartLinesResult","validationResults","addProductsToCartInternal","addProductToCartInternal","orderQuantityLimitsFeatureIsEnabled","enableStockCheck","isAddServiceItemToCart","isMaxByQuantityValidationFeatureDefined","shouldSkipSiteSettings","addProductsToCartValidateMaxAgainstDefaultOrderSettings","cartActionResult","addProductsToCartValidateMaxAgainstSiteSettings","internalObjectKeys","removeAllPromoCodes","getExperlogixUrl","anyExperlogixUrl","firstSlashPosition","protocol","getExperlogixConfigureItemUrl","urlParams","getExperlogixLaunchUrl","experlogixState","createGlobalStateDataAction","BaseCartState","GetSalesOrderConfirmationWithHydrationsInput","getSalesOrderConfirmationWithHydrationsAction","getSalesOrderConfirmationWithHydrationsActionDataAction","getDimensionsForSelectedVariantAction","dimensionValuesResults","newDimension","oldDimension","getDimensionsForSelectedVariantActionDataAction","objectKeys","propertyIsEnumerableModule","$assign","T","argumentsLength","notARegExp","correctIsRegExpLogic","searchString","ArrayBufferViewCore","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","GetCheckoutCartInput","getCheckoutCartDataAction","checkoutCartId","checkoutCart","setCheckoutCartCookie","Iterators","FinitePromiseQueueError","FinitePromiseQueue","PromiseQueue","maxQueueLength","InvalidMaxQueueLengthPassed","_maxQueueLength","promiseBody","totalElementsCount","_queue","_isBusy","ProcessWasDiscardedFromTheQueue","enqueue","F","createRatingsReviewsStateInput","filterKey","un$EndsWith","CORRECT_IS_REGEXP_LOGIC","endPosition","len","versions","v8","GetRatingsSummaryInput","PromiseCapability","$$resolve","$$reject","createGlobalState","ctor","addToUnscopables","defineIterator","iterated","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","mode","copyright","license","integer","updateCartLineDeliverySpecificationsInternal","cartLineDeliverySpecifications","_handlers","_attachHandler","_executeHandlers","onFail","onSuccess","_updateStatus","_reject","getType","onfinally","failed","toStringTag","newStatus","isError","createTypedArrayConstructor","componentDictionary","getRequestedModules","windowInitialData","getRequestedModuleNames","requestedPackageNames","filterToUsedAssets","requestedAssetKeys","partnerModule","removeCartLineIds","removedCartLineIds","activeCart","productTransaction","removedCartLines","removedProducts","RemoveFromCart","removeCartLinesParams","x","promiseCapability","NATIVE_BIND","FunctionPrototype","DimensionAvailabilitiesForProductSearchResultInput","dimensionContext","getDimensionAvailabilitiesForProductSearchResultDataAction","productsDimensionInputs","filteredProductAttributes","attributeValue","productionDimensionType","dimensionForProducts","productsDimensionAvailabilities","dimensionInput","inventoryLevelCode","isDisabled","outOfStock","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","getter","setter","EnumExtensions","enumClass","getNumericValues","isNumber","isString","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","arity","ceil","trunc","BaseCheckoutCartState","isInitialized","getCheckoutCart","_cart","_status","CartCookieName","CartCookie","Cookie","opt","pairs","dec","decode","pair","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","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","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","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","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","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetSearchConfigurationInput","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","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","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","is","y","thisNumberValue","$repeat","repeat","un$ToFixed","toFixed","acc","multiply","c2","divide","dataToString","fractionDigits","fractDigits","x2","compressedRefinerKeys","compressedRefinerArray","parseQueryParam","compressedRefiner","parsedRefiner","refinerKey","buildListPageUrl","fullUrl","sortingColumns","sortedRefiners","compressedRefiners","compressRefiners","getCurrentUrl","classList","regExpFlags","QuickOrderTemplate","quickOrderTemplateLines","totalLines","scanResultsQuery","scannedText","GENERICERRORMESSAGE","DeviceActivationErrorsForwardLinks","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","canRetry","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","SERVER_ERROR","requestUri","RETURN_NO_ORDERS_FOUND","SERVER_TIMEOUT","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","createGetCurrentBusinessPartnerUserInput","customerInput","ProxyErrorSDK","localizedErrorMessage","formatData","extraData","_canRetry","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","errorName","ProductPageSummaryInput","simpleProductsData","simpleProductData","productBrand","getProductUrlSync","productAttributes","productAttribute","getProductBrand","sharingImageUrl","canonicalUrl","faviconUrl","sharingImage","SPECIES","CONSTRUCTOR_NAME","updateCustomerAttributesInput","customerAttributes","phone","vatNumber","updateCustomerAttributesActionDataAction","validateCartLinesInventory","productAvailabilities","emailDeliveryModeCode","cartLineMap","isValid","productIdWithErrors","cartLineTotal","productAvailabilityMap","ProductAvailableQuantity","cartLineQty","cartLineProduct","isStockedItem","isEmailDelivery","IsProductAvailable","requiredModules","binding","handleError","modPath","errObject","errorObject","isNotRegistered","registerActionId","actionPath","exportName","registerSanitizedActionPath","sanitizedActionPath","$type","definitionExtensions","rnds8","rng","msCrypto","validate","uuid","REGEX","byteToHex","arr","v4","buf","rnds","uuidv4","_guid","cartLineProductUnits","CheckOut","GetFullAvailableInventoryNearbyInput","_productId","_latitude","_longitude","_radius","_DistanceUnitValue","_IgnoreLocation","radius","IgnoreLocation","createGetFullAvailableInventoryNearbyInput","getFullAvailableInventoryNearbyAction","retailMulitplePickupMFeatureState","pickup","getEstimatedAvailabilityAsync","productInventoryInformation","mapProductInventoryInformation","productWarehouseInformation","DeliveryModeTypeFilter","Pickup","storeMap","stores","locationDeliveryOptions","orgUnitChannel","channelCollection","channelIdList","getChannelDeliveryOptionsAsync","channelDeliveryOptions","_getLocationPickUpDeliveryModes","availabilityPromiseList","locationDeliveryOption","_channeldeliveryoption","orgUnitLocation","channelDeleiveryOptions","OrgUnitAvailability","getStoreHoursAsync","hours","itemAvailabilities","availability","ProductInventoryInformation","OrgUnitPickUpDeliveryModes","StoreHours","_getAvailabilityWithHours","getFullAvailableInventoryNearbyActionDataAction","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","forceStringMethod","uncurriedNativeMethod","$exec","checkCorrectnessOfIteration","IS_BROWSER","IS_DENO","V8_VERSION","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","GetCardPaymentAcceptPointInput","paymenTenderType","showBillingAddress","shouldEnableSinglePaymentAuthorizationCheckout","amountDue","createCheckoutPaymentInstrumentInput","getCardPaymentAcceptPointInput","showBillingAddres","getCardPaymentAcceptPointAction","checkoutState","getCheckoutState","origin","cardPaymentAcceptPoint","getCardPaymentAcceptPointActionDataAction","PriceForSelectedVariantInput","createActivePriceForSelectedVariantInput","getPriceForSelectedVariantAction","affliations","projectDomain","getActivePricesAsync","ProductType","Master","KitMaster","getPriceForSelectedVariantActionDataAction","productPromises","productPrice","productQuantity","productName","productChannelId","productChannelName","productCategoryId","productCategoryName","productCurrency","capability","accumulator","depth","prop","stringifyValue","isObjectNotEmptyOrNull","isNullOrWhitespace","returnValue","FullProductsRefineSearchByTextInput","criteria","productDetailsCriteria","getRefinedProducts","fullProductInputs","searchResults","ProductDetailsCriteria","productSearchResult","getRefinedFullProducts","refineSearchByTextAsync","searchInputData","doesNotExceedSafeInteger","flattenIntoArray","original","sourceLen","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","sep","neutralizedName","candidateName","enableUrlEncoding","getParameterizeFeatureFlags","categoryName","getInvoiceDetailsPageUrlSync","getProductPageUrlSync","GetLoyaltyTransactionEstimationInput","createGetLoyaltyTransactionEstimationInput","getLoyaltyTransactionEstimationAction","_getCart","_getLoyalty","_getOrgUnits","points","loyaltyCardInput","GetLoyaltyCardInput","getLoyalty","getOrgUnitConfigurationAsync","getLoyaltyTransactionEstimationActionDataAction","SERVER_RENDER_ERROR_CACHE_KEY","LAZYLOAD_SWITCH_PREFIX","AUTHORING_ADD_RENDER_COMPLETE_EVENT","USER_CONSENT_GIVEN_EVENT","MODULE_LAYOUT_FIELD","getRnrPartnerId","getRnrEndpointId","getRatingsSummaryDataAction","inputIsValid","sendRequest","aConstructor","defaultConstructor","FullProductsRefineSearchByCategoryInput","hasSortingColumn","refineSearchByCategoryAsync","RefreshType","GEOLOOKUP_CACHE_TYPE","ImageFetchPriority","METATYPES","FAVICON_REL","COMPONENT_TYPES","ALLOWED_DUPLICATES","TAG_NAMES","DOMAttributeNames","acceptCharset","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","headEl","getElementsByTagName","bodyEl","oldTags","querySelectorAll","bodyScriptTags","newTags","newTag","oldTag","removeAttribute","isEqualNode","nodeName","parentNode","removeChild","updateElements","mapOnServer","htmlHeadIncludeWithSideEffect","withSideEffect","reducedComponents","toArray","metaTypes","metaCategories","tagComponent","tagElement","metaType","mergedComponents","child","childElement","cloneElement","componentMap","hasFavIcon","comp","rel","nonScriptTags","scriptTags","headStart","headEnd","bodyStart","bodyEnd","updateHead","HtmlHeadInclude","WrappedComponent","canUseDOM","shouldComponentUpdate","nextProps","render","Fragment","_a","peek","mappedState","rewind","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","requestCnotext","nonceToken","enableNonce","messageTemplate","logOptions","logLevel","isVerboseLogEnabled","feature","originalConsole","showDebug","warn","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","SvgComponent","DEFAULT_PLACEHOLDER","LARGE_IMAGE_PLACEHOLDER","largePicturePlaceholder","SMALL_IMAGE_PLACEHOLDER","smallPicturePlaceholder","TEST_PLACEHOLDER","testPlaceholder","svgProps","divStyle","alignItems","svgConfig","svgPropety","margin","additionalProperties","domPurify","TextField","displayHtml","text","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","enabled","testCafeFlag","testCafe","RichText","Video","videoProps","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","media","formatMediaQuery","getMedia","srcSet","parsedQueryString","querystring","cropFocalRegion","siteCoreBaseUrl","externalCmsBaseUrls","imageName","validateBaseImageUrl","constructViewportInformationForImage","moduleLayout","themeSettingsForModule","themeSettingsForLayout","imageViewportProperties","key2","shouldUseDefaultSVGPlaceholder","enableDefaultPlaceholder","isDefaultPlaceholderFeatureOn","NativeImage","getSVGConfig","largestViewport","SVGHeight","SVGWidth","getPlaceholderAspectRatio","preserveAspectRatio","getSrcImage","stateSrc","fallBackSrc","urlSrc","urlFallBack","paramsSrc","paramsFallBack","defaultImage","lazyLoad","loaded","loadFailureBehavior","binaryHash","focalRegion","cropRegions","fileSize","imageStyle","isLocalizable","isDecorativeImage","orientation","_links","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","sourceTags","vp","ThumbnailImage","_thumbnailProps","thumbnailQuality","_defaultThumbnailQuality","sizeCompressingFactor","_defaultSizeCompressingFactor","minimumSizeDimensionValue","_defaultMinimumSizeDimensionValue","_updateImageDimension","minSize","newSize","minNewSize","defaultSize","imageDimension","newImageDimension","originalWidth","_extractParameterValue","originalHeight","_getCompressedSize","part","parameterName","currentWidthParameter","_thumbnailClassName","MainImage","renderOptimziedImageWithEvent","_mainImageClassName","renderPureHtmlOptimzedImage","pictureHtml","ReactDOMServer","renderToString","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","versionComparer","versionToCheck","versionToCompareAgainst","localeCompare","numeric","sensitivity","versionLt","PASSTHROUGH_QUERY_PARAMS","categorySegment","record","platformRoutes","categoryMoniker","productMoniker","ensureSlashConsistency","route","hostName","skipCatalogId","preview","newDomain","overrideDomain","appendQueryString","isB2b","getRoutePath","returnUrl","unshift","populateSitePath","appRoutes","pageRouteFromAppSettings","catalogidstr","fallbackCatalogId","rcsuVersion","getCategoriesUrlSync","categoriesPath","categoriesPathUrls","tempSegments","seg","getRichTextHtml","RichTextComponent","onEdit","onTextChange","linkText","linkUrl","links","l","requestHookRegistrar","RequestReaderAction","createHook","initialHook","preRenderHook","postRenderHook","buildMockSessionStorageContext","buildMockRequest","mockRequest","textDirection","isPreview","concatJs","isTruthy","optOutWebActivityTracking","eCommerceChannelId","ratingsReviewsEndpoint","retailServerProxyVersion","rnr","proxyUrl","siteTheme","cookiename","_cookieName","_cookieValue","removeCheckoutCartCookie","getAccountSelectionCookie","setAccountSelectionCookie","removeAccountSelectionCookie","isConsentGiven","setConsentCookie","deleteConsentCookie","getTargetIdCookie","themeOverride","disableDefault","eventHubAuthToken","eventHubEndPoint","environmentId","Checkout","Products","siteStylePreset","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","removePlaceholder","setRenderingHelper","movePlaceholder","_setAddModuleBoxToInsertState","currentModule","_movePlaceholder","setPlaceHolderOnPosition","dragModule","dropModule","placeholderInfo","_getPlaceholderPlacementInfo","_hasPlaceholderPositionChanged","placeBottom","onDrag","relativeIndex","_getAddModuleBox","foundBox","addModuleBoxElement","firstElementChild","dragModuleIndex","dropModuleIndex","dropModuleRelativeIndex","box","getBoundingClientRect","bottom","dragAndDropEvents","setModuleAsDraggable","sourceModuleId","rootModuleId","_setRootModuleId","_setRootModuleAsDroppable","_onDragStart","_onDrag","_onDragEnd","_clearCache","_cacheHasIsDroppableInfo","_getCacheKey","_isModuleDroppable","_checkIsDroppableAndAddToCache","_setModuleIsDroppable","canBeDrop","elementDataInfo","_onDragOver","isDragging","isCursorOnDroppableArea","dragEvent","dropElement","dragElement","clientY","pageX","pageY","_onDragEnter","_onDragLeave","_onDrop","onDrop","_removeDraggableEvents","draggableModule","removeEventListener","dataTransfer","setDragImage","_removeDroppableEvents","_clearAllCache","droppableModule","setDraggable","n$ToString","NOT_GENERIC","INCORRECT_NAME","updateCart","updatedCartObject","ProductDeliveryOptionsForCartLineItems","getDeliveryOptionsForCartLineItems","getActiveCartProductsAction","ActiveCartProductsInput","getDeliveryOptionsForCartLineItemsDataAction","checkoutStateDataAction","GlobalStateInput","BaseCheckoutState","ArrayPrototype","GetUserReviewInput","authorization","createProductAsync","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","getRecommendedProductsAsync","createRefineSearchByTextInput","createGetProductSearchRefinersInput","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","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","createGetPricesInput","inventoryDimensionId","barcode","unitOfMeasureSymbol","getPricesAsync","createGetProductAvailabilitiesInput","getProductAvailabilitiesAsync","createGetActivePricesInput","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","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","getMediaLocationsAsync","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","aPossiblePrototype","CORRECT_SETTER","__proto__","PromiseQueueElement","_dequeue","_canProcess","_processElement","_processNext","GetProductListInput","productListSearchCriteria","QuickOrder","AddressInput","createGetAddressInput","getAddressAction","getAddressActionDataAction","catalogsQuery","createProductCatalogAsync","createGetCatalogsInput","activeOnly","formatNumberWidth","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","timezone","year","ms","minutes","seconds","direction","parseTimezone","setUTCFullYear","setUTCHours","__edmType","__offset","__ns","propertyType","recognizeDates","EDM","years","months","days","parseDuration","dateStr","timezoneOffsetIndex","$promiseResolve","remaining","alreadyCalled","ProductsByCategoryInput","Reflect","displayLabelEnabled","inventoryCode","inventoryRanges","available","productsWarehouseInventory","physicalProductMap","mapInventoryWithPhysicalBufferEnabled","totalAvailableProductMap","mapInventoryWithTotalAvailableBufferEnabled","productMap","mapInventoryWithThresholdEnabled","productWarehouseInventoryAvailability","productQty","outOfStockThreshold","productAvailableQuantity","shouldRenderLabel","StockLevelCode","StockLevelLabel","isAggregatedInventory","warehouseAggregation","mapAggregatedProductInventoryInformation","productWarehouseInventoryInformation","isDefaultWareHouse","isFilterByChannelFulfillmentGroup","defaultDeliveryMode","shipping","inventoryAvailabilitySearchCriteria","ENUMERABLE_NEXT","GetOrgUnitLocationsByAreaInput","_Latitude","_Longitude","_Radius","createGetOrgUnitLocationsByAreaInput","getOrgUnitLocationsByArea","locationPromiseList","_getLocationWithHours","getOrgUnitLocationsByAreaDataAction","_getActivePrices","validProductIds","productCollection","validInputs","ProductPrice","_getProductRatings","productRating","ProductRating","getFullProductsActionDataAction","ratingsAndPricePromises","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","getSortCompare","stateConstructor","globalStateObject","commerceInsightsAttributeRenderer","telemetryId","additionalTelemetryData","NumericLogLevel","information","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","_logTrace","Critical","classificationLevel","isCustomerData","isRestrictedData","isPersonalData","__isDynamicsPrivacy","getFilteredData","safeStringify","getPropertiesFromContext","shouldSkipLogging","severityLevel","loggerType","loggertype","loggerProps","AppInsights","ApplicationInsights","enableCorsCorrelation","correlationHeaderDomains","_loggerProps","loadAppInsights","addTelemetryInitializer","_this","exceptionLog","trackException","operationalInsightsEventFilter","_globalErrors","_severityLevelMapping","buildPropertiesList","traceLog","trackTrace","fullMessage","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","WeakMap","businessPartnersQuery","businessPartnerId","getOrderHistoryAsync","createGetOrderHistoryInput","createProspectAsync","businessPartnerProspect","createCreateProspectInput","getUsersAsync","createGetUsersInput","firefox","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","toPrimitive","prim","BigInt","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","predicate","arrayLine","firstArray","secondArray","comparator","valueFromFirstArray","valueFromSecondArray","otherItem","newArray","functionToString","CategoryPageSummaryInput","currentCategoryResult","createGetCurrentCategoryInput","categoryUrl","createInputForProductReviews","getReviewsForGivenProduct","isTakenDown","pagingInfo","getReviewsForGivenProductDataAction","OrganizationUsersCountInput","createGetOrganizationUsersCountInput","getOrganizationUsersCount","users","ownKeys","getOwnPropertyDescriptorModule","exceptions","hasIndices","unicodeSets","endPos","getDescriptor","EXISTS","__webpack_public_path__","___publicPath___","orderTemplateLinesState","OrderTemplateLine","getPaginatedOrderTemplateLinesActionDataAction","GetFullProductListInput","getFullProductListActionDataAction","inputParameters","getProductList","getProductListLines","PrototypeOfArrayIteratorPrototype","arrayIterator","DefaultValues","RefinersByCollectionInput","searchProductId","defaultCategoryIdValue","searchObject","defaultProductIdValue","CONFIGURABLE_LENGTH","TEMPLATE","removeCartLinesInternal","ActiveProductListInput","getActiveProductList","fullProductListInput","getFullProductList","getActiveProductListDataAction","updateShippingAddress","CartsDataActions","ErrorParser","redirectUrl","RETAIL_SERVER_REDIRECT_ERROR","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","rdc","parseError","responseText","jsonResponse","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","localizedMessage","exceptionType","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","parseJSONError","$RegExp","GetInvoiceDetailsInput","CreateGetInvoiceDetailsInput","getInvoiceDetails","getInvoiceDetailsAsync","getInvoiceDetailsDataAction","GetInvoiceInput","CreateGetInvoiceInput","getInvoice","invoices","entitySet","returnType","tokens","filterSettings","expand","expands","inlineCount","_createODataParameters","_createRequest","setGetAllRecords","isGetAllRecords","operationName","HttpException","HttpRedirectException","clientRenderOptimizationEnabled","optimize_client_hydrate","clientRenderQsp","optimize_hydrate","getCurrency","disable_lazy_render_support","allModulesListArray","flat","check","globalThis","createCatalogsInput","getCatalogAction","CatalogsDataActions","getCatalogActionDataAction","createGetOrderTemplatesInput","getOrderTemplatesAction","getLoyaltyAction","cards","firstCard","getLoyaltyActionDataAction","InventoryInStockRefinerValueInput","inventoryProductAttributeRecordId","GetFullProductsByCollectionInput","isOutOfStock","returnProductsBasedOnInventoryInformation","SortOOS","inStockProducts","outOfStockProducts","sortsProductsBasedOnAvailability","returnProducts","metadataCount","productSearchResultsWithImages","inventoryConfiguration","channelInventoryConfigurationId","refinerValue","refinerInput","inventoryRefiner","getInventoryRefinersAction","getInventoryInStockRefinerValueAsync","totalProductCount","defaultOrderQuantityLimitsFeatureConfig","enableDefaultOrderQuantityLimits","isQuantityLimitsFeatureEnabledInHq","customerInfo","isOrderQuantityLimitsFeatureEnabled","productIdsByWarehouseId","resultProducts","entryWarehouseId","entryProductIds","accum","getActiveCartProductsActionWhenQuantityLimitsFeatureIsOn","hasInvoiceLine","getActiveCartProductsActionDataAction","handleMissingImplementationDetails","connectorName","connectorDictionary","connectorProviderImpl","connectorListenerImpl","connectorDomainsList","connectorDomains","validateConnectorRegistration","connectorImpl","verifyExperimentationReigstration","GetRelatedProductsInput","relationType","querySettings","productRelationTypes","productRelationTypeId","_productRelationType","foundProductRelationTypeId","productRelationType","searchProductRelationType","defineProperties","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","AddOrganizationUserInput","addOrganizationUserDataAction","createBusinessPartnerUserAsync","CurrentCategoryHierarchyInput","activeCategoryId","activeCategoryParsedId","findCategoryHierarchy","innerCategoryHierarchy","getCurrentCategoryHierarchyAction","fullCategoryHierarchy","getCategoriesHierarchy","getCurrentCategoryHierarchyActionDataAction","getUserReviewDataAction","userInfo","getRnrAuthEndpointId","tempActionContext","searchCategory","foundCategory","cat","matchingChild","getCurrentCategoryAction","categoryInput","getCategoryHierarchy","getCurrentCategoryActionDataAction","MediaLocationsByIdInput","createMediaLocationsByIdInput","getMediaLocationsByIdAction","mediaLocation","getMediaLocationsByIdActionDataAction","CreateProductListInput","templateType","createProductListActionDataAction","GetCategoryPathsInput","categoryPathLooksups","constructedCacheKey","categoryPath","getCategoryPathsAction","categoryPathResults","getCategoryPathsActionDataAction","RefinersByTextInput","clearCartLinesDeliveryInformation","matchingLines","pickupDeliveryModeCode","dM","copiedLines","targetProperty","sourceProperty","TARGET","GLOBAL","OrganizationUsersInput","createGetOrganizationUsersInput","getOrganizationUsers","getOrganizationUsersDataAction","CheckoutStorageKey","GlobalState","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_customerAccountAmount","_emailAddressFromExpressCheckout","_checkoutGenericData","_checkoutCart","_attributeValues","_extensionProperties","_shouldEnableSinglePaymentAuthorizationCheckout","_salesOrder","_orderedProducts","_tokenizedPaymentCard","_tenderLine","_billingAddress","_isBillingAddressSameAsShippingAddress","_shippingAddress","_hasShippingAddress","_hasCartDeliveryMode","_cardPrefix","_paymentTenderType","giftCardExtends","_loyaltyCardNumber","_hasGuestCheckoutEmail","_isTermsAndConditionAccepted","_isTermsAndConditionChecked","_shouldCollapsePaymentSection","_shouldTriggerPaymentWithPlaceOrder","_isPaymentSectionContainerReady","_cardPaymentAcceptResult","_isPaymentSectionContainerHasError","_redirectAdditionalContext","_isPlaceOrderEnabledInRedirection","_isPaymentVerificationRequired","_isCheckoutCallFailed","_shouldEnableExpressCheckoutInCheckout","_shouldEnableExpressCheckoutInCart","_shippingAddressFromExpressCheckout","_billingAddressFromExpressCheckout","_isExpressCheckoutApplied","_isExpressCheckoutAppliedInCartPage","updateSalesOrder","newSalesOrder","newOrderedProducts","newAttributeValues","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","newShippingAddress","newHasShippingAddress","newHasCartDeliveryMode","newIsTermsAndConditionAccepted","newIsTermsAndConditionChecked","newShouldCollapsePaymentSection","newShouldTriggerPaymentWithPlaceOrder","newIsPaymentSectionContainerReady","newCardPaymentAcceptResult","newIsPaymentSectionContainerHasError","newRedirectAdditionalContext","newIsCheckoutCallFailed","newIsPlaceOrderEnabledInRedirection","newIsPaymentVerificationRequired","updateBillingAddress","newBillingAddress","isBillingAddressSameAsShippingAddress","removeBillingAddress","updatePaymentTenderType","newPaymentTenderType","updateCardPrefix","newCardPrefix","removeGiftCard","giftCard","giftCardNumber","removeGiftCardExtend","addGiftCard","Pin","gitCardExtend","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","newGuestCheckoutEmail","updateReceiptEmail","newEmail","newHasGuestCheckoutEmail","removeCheckoutCartId","saveDataInStorage","BillingAddress","loyaltyCardNumber","loyaltyAmount","LoyaltyAmount","isTermsAndConditionAccepted","TermsAndCondition","paymentTenderType","PaymentTenderType","filtered","filteredData","SaveDataBeforeRedirect","CheckoutGenericData","checkoutGenericData","updateCustomerAccountAmount","newBillingAddressFromExpressCheckout","newShippingAddressFromExpressCheckout","newEmailAddressFromExpressCheckout","newShouldEnableExpressCheckoutInCheckout","newShouldEnableExpressCheckoutInCart","newIsExpressCheckoutApplied","setCheckoutGenericData","getCheckoutGenericData","setInitialData","cleanCheckoutData","isPaymentVerificationRedirection","PromotionOptionsForCartLineItems","getPromotionOptionsForCartLineItemsDataAction","_isProductAddedToCart","total","num","_doAsyncAction","refreshCartInternal","isPriceKeyedIn","customPrice","_buildAddressFromOrgUnitLocation","isAddEmailDeliveryItemToCart","_doCartOperationWithRetry","internalInput","PRODUCTASSERVICE","isStockCheckEnabled","addInvoicesToCartInternal","addOrderInvoiceToCartInternal","setInvoiceLinePriceInternal","removeCartLineInternal","clearCartLineDeliveryModeInternal","channelDeliveryOptionConfiguration","cartLineDeliverySpecification","deliveryModeId","cartLinesForShipping","deliverySpecifications","updateCartLineQuantityInternal","newQuantity","isUsingDefaultOrderSettingsMax","updateLoyaltyCardIdInternal","addPromoCode","addPromoCodeInternal","promoCode","removePromoCodesInternal","removeAllPromoCodesInternal","newCartObject","callbackResult","UNSCOPABLES","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","0","TO_OBJECT_BUG","PriceForProductSearchResultInput","getPriceForProductSearchResultDataAction","productRecIds","productResults","activePrice","$forEach","STRICT_METHOD","arrayMethodIsStrict","Target","viewDictionary","whitespace","ltrim","rtrim","updatedCartLines","updatedProducts","updateCartLinesParams","lambda","IssueLoyaltyInput","issueLoyaltyActionDataAction","issuedCard","hasPromoCode","GetCustomerBalanceInput","getCustomerBalanceAction","getCustomerBalanceActionDataAction","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","detection","normalize","POLYFILL","NATIVE","ProductAvailabilitiesForCartLineItems","getDeliveryMode","featureSate","pickupDeliveryMode","getAvailabilitiesForCartLineItems","shippingItems","bopisItems","retailMultiplePickUpOptionEnabled","shippingProductAvailabilities","bopisItem","productWarehouse","quantityUnitTypeSales","getProductWarehouseAvail","productWarehouseMapping","getAvailabilitiesForCartLineItemsDataAction","GetStateProvincesInput","getStateProvinceAction","n$ParseFloat","trimmedString","MediaLocationsForSelectedVariantInput","createMediaLocationsForSelectedVariantInput","getMediaLocationsForSelectedVariantAction","getMediaLocationsForSelectedVariantActionDataAction","GetAddressPurposesInput","getAddressPurposesAction","getAddressPurposesActionDataAction","documentId","itemsCount","ItemsCount","ItemsPerPage","SkipCount","ProductItems","getListDataDataAction","GetProducts","listitem","getInutListData","businessPartnerUsersQuery","b2BUserId","createRequestAccountStatementInput","accountStatementParameters","requestAccountStatementAsync","createRequestInvoiceCopyInput","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","createGetCurrentInput","normalizeCacheKey","deep","_value","toCache","flushAll","GetCountryStateInput","getCountryStateAction","countryInput","GetCountryRegionsInput","countryRegionsInfo","getCountryRegionsAction","marketISOCode","currentCountryRegion","countryRegion","stateInput","getCountryStateActionDataAction","ProductAvailabilitiesForSelectedVariantInput","createProductAvailabilitiesForSelectedVariantInput","getProductAvailabilitiesForSelectedVariantAction","shippingSearchCriteria","pickupSearchCriteria","shippingAvailability","shippingInventory","pickupAvailability","pickupInventory","mergeProductWarehouseToProductAvailabities","productAvailable","getProductAvailabilitiesForSelectedVariantActionDataAction","real","Pebble","un$StartsWith","ENTRIES","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","getFulfillmentLinesAsync","createGetReceiptsInput","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","searchLocationValue","createGetSalesOrderDetailsBySalesIdInput","createGetOrderByChannelReferenceLookupCriteriaInput","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","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","abort","handleTimeout","cancelToken","CancelToken","cancel","isAbsoluteUrl","authenticationCreds","password","axiosTimeout","timeoutMS","auth","axiosResponse","axiosError","ODataHttpRequest","useJsonLight","inferJsonLightFeedAsObject","maxDataServiceVersion","prepareRequest","jsonHandler","httpClient","invokeRequest","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","AddressOperationType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DeviceActivationStatus","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","CartType","CartStatus","PeriodicDiscountsCalculateScope","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","TaxCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","ElectronicAddressType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","PaymentConfigurationErrors","BusinessPartnerOperationDeliveryType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","usingIterator","NATIVE_WEAK_MAP","wmget","wmhas","wmset","STATE","deletePropertyOrThrow","FAILS_ON_UNDEFINED","FAILS_ON_NULL","itemsLength","arrayLength","clearCartLineDeliveryMode","copyCartLine","GetOrganizationWideOrderHistoryInput","getOrganizationWideOrderHistoryDataAction","innerResult","innerError","getCategoryActionDataAction","CategoriesDataActions","productListsQuery","createGetProductListLinesInput","createAddProductListLinesInput","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","onFinally","isFunction","DEFAULT_HEADER","Prefer","parseOdataResult","resultType","resultSet","hasNextPage","_actionId","getDataCacheType","overrideCacheType","recurseEverything","_hasOperationName","_method","getActionIdFromInput","getCacheObjectValueFromReturnType","entityIdentifier","buildCacheFromInput","_callerContext","batchRequestUri","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","odataRequest","_requestUri","toJson","__changeRequests","batchResponses","responses","__changeResponses","parseBatchResponses","parseErrorMessage","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","pad","getTimezoneOffset","formattedKey","parameter","paramValue","parameterSeparator","cacheKeyValue","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","buildBatchRequest","__batchResponses","Errors","formatKey","formatFunctionParameter","addParameter","orderByColumn","loadPageResults","headerName","tokenName","tokenValue","accessToken","cookieData","appSessionCookie","userSessionCookie","otherOdata","setMetadata","odataList","newData","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","accountSelectionCookie","isOBORequest","accountSelectionCookieOptions","setCookieFunction","optionsString","_appendCookieOptions","cookieOptions","req","createSearchStateInput","tail","getCountryRegionsActionDataAction","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","ProductAvailabilitiesForWishlistItems","getAvailabilitiesForWishlistItems","getAvailabilitiesForWishlistItemsDataAction","UpdateOrderTemplateInput","getLinesInput","getPaginatedOrderTemplateLines","linesToUpdate","lineToUpdate","updatedLines","updatedLine","EOF","defineBuiltInAccessor","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_AND_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","seenAt","seenBracket","seenPasswordToken","scheme","port","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","pieceIndex","parseIPv6","partsLength","numbers","ipv4","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","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","leftParts","rightParts","leftVersion","rightVersion","maxVersion","contentTypeObj","contentTypeToString","handlerRead","flush","last","toggle","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","nextTick","createTextNode","characterData","updateAddressHandler","updateAddressActionDataAction","webkit","AddressManagementInput","operationHandler","addAddressHandler","addAddressActionDataAction","AddControlMode","AsyncClientRenderComponent","loadScriptAsync","onload","onerror","moduleChunk","waitAndInitializeModule","__bindings__","mappedProps","retryCount","currentModuleArray","lazyLoadHandler","scriptInitCompleted","clientModuleChunks","chunksToBeAdded","chunk","scriptElements","chunkExistsOnPage","scriptEl","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","viewLookupFunc","getView","viewCacheKey","viewLookup","defaultViewLookupFunc","renderId","runPreRenderViewPerformanceHook","renderViewForModule","runPostRenderViewPerformanceHook","ErrorModule","getStandardErrorModuleMarkup","shouldDisplayErrors","isRenderAttrributeCalled","disableSSRErrorChecks","renderCallsCounter","isLazyLoaded","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","componentStack","moduleError","renderErrorOrPlaceHolderModules","LazyLoad","offsetTop","lazyload_offset","_generateDataInfo","_doServerSideRender","renderHtmlString","renderHtml","addFailingModuleServerRenderToCache","buildModuleServerRenderCacheKey","errorStack","getModuleServerRenderCacheKeyName","refNode","moduleConfig","getModuleConfig","Item","enableAddModuleControls","getSlotDictionary","slotDictionary","slotsWithAddModuleControls","addSiblingIndexDictionary","getNonPlaceholderModules","mods","parentProps","moduleConfigs","addSiblingIndices","canAddAtIndex","getRenderSlotComponent","EmptySlot","orgUnitsQuery","orgUnitNumber","deliveryModeTypeFilter","orgUnitLocationSearchCriteria","createGetStoreHoursInput","channelIds","createGetChannelDeliveryOptionsInput","endpoint","depthArg","SearchConfigurationInput","_cacheType","skipToken","baseCacheKey","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","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","runner","postMessage","port2","port1","onmessage","importScripts","createAccordionStateInput","ArrayIteratorMethods","ArrayValues","getFullOrderTemplatesActionDataAction","orderTemplates","AddItemToProductListInput","addItemToProductListActionDataAction","shouldShowBillingAddress","$fill","toBigInt","actualValue","isInteger","callActionOrExecute","updatePrimaryAddressActionDataAction","setPrimaryAddress","primaryAddresses","addresses","addr","ActiveCheckoutCartProductsInput","getActiveCheckoutCartProductsAction","getActiveCheckoutCartProductsActionDataAction","ActionRuntime","complexDataTypesPromises","dataActionMetadataList","lazyLoadModuleIds","tempMetadataList","storeLazyloadModuleId","loadDataProcessing","tempResultCacheItem","tempMetadata","firstInput","dataActionFunction","tempInput","storeTemporaryAsyncResults","processDataActionMetadataList","moduleContract","moduleBinderInitial","originalModuleBinder","themeDataActionsForModule","moduleDataActions","newDataAction","customizer","originAction","combineExtendedDataActionToModule","lookupId","newLookUpId","fetchDataActionWithActionid","processModuleDataAction","convertRunOnToString","server","serverOnly","renderingContext","switchName","dataActionMetadata","disable_inst_action_await","isServerInstanceAction","runtime","client","updateCartLineQuantityValidateMaxAgainstDefaultOrderSettings","updateCartLineQuantityValidateMaxAgainstSiteSettings"],"mappings":";skCAmBO,MAAMA,EAQTC,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,KA4BnC,MAAMO,EAAkDC,IAC3D,MAAMV,EAAYW,8CAAoCD,GAEtD,GAAIV,EACA,OAAO,IAAIF,GAA0CE,GAAYU,EAAUR,eAAeU,YAAYX,UAAWS,EAAUR,gBAE/H,MAAM,IAAIW,MAAM,4GASbC,eAAeC,EAClBC,EACAC,GAAuB,MAEvB,MAAMC,EAAiBC,kBAAgBC,kBAC7BC,sBAAoBC,cAAc,CACpCC,cAAeN,EACfO,oBAAqBC,IAAyBC,qCAAqCT,IACpFD,EAAMf,UAAW,CAACe,EAAMhB,WAAY,KAHjC,UAGuCgB,EAAMT,iBAH7C,QAG0D,IAEpE,IAAKY,kBAAgBQ,YAAYT,GAC7B,MAAO,GAGX,MAAMU,EAAgBV,EAAe,GAErC,IAAKC,kBAAgBQ,YAAYC,EAAcC,YAC3C,MAAO,GAGX,MAAMC,EAAWF,EAAcC,WAAWE,IAAIC,IAC1C,MAAMC,EAAiCC,YAA0CjB,EAAS,IAAI,OAAMkB,OAAWA,GACzGC,EACN,CACIC,4BAA6BL,EAAUM,mBACvCC,wBAAyB,GACzBC,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAW3B,EAAMT,WAkBrB,OAf+Bc,sBAAoBuB,mDAC/C,CAAErB,cAAeN,EAASO,oBAAqBC,IAAyBC,qCAAqCT,IAE7GW,EAAciB,gBAAkBjB,EAAciB,gBAAkBjB,EAAckB,SAC9EV,GAGgDW,KAAKC,GAClC,OACZhB,GADY,IAEfiB,6BAA8BD,OAQ1C,aAAaE,QAAQC,IAAIrB,GAOtB,MAAMsB,EAAyCC,YAA2B,CAC7EC,GAAI,uFACJC,OAAQxC,EACRC,MAAOP,IAGI2C,a,uBC1If,IAAII,EAAc,EAAQ,QAEtBC,EAAWD,EAAY,GAAGC,UAC1BC,EAAcF,EAAY,GAAGG,OAEjCC,EAAOC,QAAU,SAAUC,GACzB,OAAOJ,EAAYD,EAASK,GAAK,GAAI,K,+3CCWhC,MAoCMnD,EAAuCD,IAAuE,MACvH,MAAMO,EAAUP,EAAUR,eAC1B,iBAAIe,EAAQ8C,aAAZ,OAAI,EAAe/D,UACRiB,EAAQ8C,MAAM/D,UAEdiB,EAAQ+C,WAAatD,EAAUR,eAAe8D,UAAUC,QAA0D,YAAhDvD,EAAUR,eAAe8D,UAAUE,SACrGjD,EAAQ+C,UAAUC,OAClBvD,GAAaA,EAAUyD,QAAUzD,EAAUyD,OAAOnE,UAClDU,EAAUyD,OAAOnE,eADrB,GAYEoE,EAAmB,CAACC,EAA8BzD,IACpD0D,YAAwB1D,EAAayD,GAuBzC,IAAKE,EAWAC,GAXZ,SAAYD,GACRA,cACAA,gBACAA,gCACAA,cACAA,gBALJ,CAAYA,MAAc,KAW1B,SAAYC,GACRA,oBACAA,4BAFJ,CAAYA,MAA2B,KAYhC,MAAMC,EAA+B,SACxCC,EACAzD,GAC2F,IAA3F0D,EAA2F,uDAAhDH,EAA4BI,QAGvE,GAAID,IAAgBH,EAA4BK,YAAa,CACzD,MAAMC,EAAmC7D,EAAQ8D,IAAIZ,OAAOa,wBAC5D,IAAK7D,IAAgBQ,YAAYmD,IAC7BA,EAAiCG,SAASV,EAAeW,QACxDJ,EAAiCG,SAASP,GAC3C,OAAO,EAIf,MAAMS,EAA8BlE,EAAQ8D,IAAIZ,OAAOiB,uBACvD,OAAOjE,IAAgBQ,YAAYwD,KAC9BA,EAA4BF,SAASV,EAAeW,OACrDC,EAA4BF,SAASP,IAShCW,EAAyB,CAAChB,EAAkBzD,IACjDyD,EAASiB,WAAW,QACbjB,EAGJzD,EAAY2E,aAAeC,mBAAmBnB,GAS5CoB,EAA0B,CACnCC,EACA9E,IAEOwD,EAAiBsB,EAAQC,gBAAiB/E,GA8BxCgF,EAAoB,CAAC5F,EAAmB6F,EAAoBC,KAC9D,CACHC,eAAgBD,EAChBE,UAAWhG,EACXiG,WAAYJ,IAQPK,EAA4CxF,GACjDA,GAAaA,EAAUyD,OAChB,CACHgC,UAAWzF,EAAUyD,OAAOiC,UAC5BC,WAAY3F,EAAUyD,OAAOmC,YAG9B,CACHH,UAAU,EACVE,WAAW,GAkBNE,EAAgB,CAACC,EAAc5F,EAAmC6F,IACrE,GAAN,OAAUD,EAAV,mBAAyB5F,EAAYX,UAArC,kBAAwDW,EAAYL,WAApE,OAAgFkG,EAAM,WAAOA,GAAW,IAG/FC,EAA6B,CAACF,EAActG,KACrD,MAAM8D,EAAY9D,EAAe8D,UAC3B2C,EAAkBJ,EAAcC,EAAMtG,EAAeU,YAAaV,EAAeuG,QACvF,OAAOzC,EAAS,UAAM2C,EAAN,YAAyB3C,EAAUC,OAAnC,YAA6CD,EAAU4C,SAAvD,YAAmE5C,EAAUE,UAAayC,GAejGE,EAAc,CAACC,EAAmBC,KAC3C,MAAM,QAAEC,EAAF,UAAWC,GAAX,OAAmD,CAAEA,UAAW,IAAKD,aAAS7E,IAAiB4E,GAAW,IAChH,OAAOD,EACF/E,IAAImF,GACGA,SACIF,EACOA,EAAQE,GAGhBA,GAEVC,KAAKF,IAQDG,EAAsB,CAACnD,EAA4BrD,KAC5D,IAAKqD,EACD,MAAO,GAGX,MAAMoD,EAAepD,EAAOqD,OAAOC,MAAM,KAAK,GAExCC,EAAU,mBAAeH,EAAf,gBAChB,OAAOjD,EAAiBoD,EAAY5G,IAQ3B6G,EAA+CC,IACxD,OAAQA,GACJ,KAAKC,uBAAqBC,MACtB,OAAOrD,EAAesD,MAC1B,KAAKF,uBAAqBG,cACtB,OAAOvD,EAAewD,cAC1B,KAAKJ,uBAAqBK,KACtB,OAAOzD,EAAe0D,KAC1B,KAAKN,uBAAqBO,MACtB,OAAO3D,EAAe4D,MAC1B,QACI,OAAO5D,EAAeW,OASrBkD,EAA8C1D,IACvD,OAAQA,GACJ,KAAKH,EAAesD,MAChB,OAAOF,uBAAqBC,MAChC,KAAKrD,EAAewD,cAChB,OAAOJ,uBAAqBG,cAChC,KAAKvD,EAAe0D,KAChB,OAAON,uBAAqBK,KAChC,KAAKzD,EAAe4D,MAChB,OAAOR,uBAAqBO,MAChC,QACI,OAAOP,uBAAqBU,OAS3BC,EAA4B,CAACC,EAAeC,KACrD,IAAK,MAAMxG,KAAawG,EAAmB,CAAC,IAAD,IACvCD,EAASE,aAAaC,IAClBjB,EAA4CzF,EAAUM,oBAD1D,oBAC+EN,EAAU2G,sBADzF,aAC+E,EAA0BC,aADzG,QACkH,IAGtHC,OAAOC,QAAQC,aAAaF,OAAOC,QAAQE,MAAO,GAAIT,EAAS9E,WAAWwF,QAAQV,EAASW,KAAML,OAAOM,SAASD,QA6B/GE,EAA0BC,IAC5B,MAMMC,EAN4C,CAC9C3B,uBAAqBC,MACrBD,uBAAqBG,cACrBH,uBAAqBK,KACrBL,uBAAqBO,OAEkBnG,IAAIC,GA3BrB,EAACqH,EAAgC3B,KAC3D,MAAM6B,EAAqB9B,EAA4CC,GACjE8B,EAAQH,EAAcI,IAAIF,GAChC,GAAKC,EAGL,MAAO,CACHlH,mBAAoBoF,EACpBiB,eAAgB,CACZ7F,SAAU,EACV8F,MAAOY,KAiB6CE,CAAsBL,EAAerH,IACjG,OAAOb,IAAgBC,YAAYkI,IAQ1BK,EAA+BpB,IACxC,MACMc,EADqB,IAAIO,IAAIrB,EAAS9E,WAAWoG,qBACdpB,aAEzC,OADuCW,EAAuBC,IAUrDS,EAAoC,CAC7CC,EAA0CC,IACrCD,EAGAC,EAIED,EAAgBE,OAAOC,GAAaA,EAAUpH,WAAakH,EAA8BG,mCAHrFJ,EAHA,I,mNChYR,MAoBMK,EAAsB,CAC/BC,EACAzJ,KAEA,MAAM0J,EAAiE,GAUvE,OARAD,GACIA,EAASE,QAAQ7E,IACTA,GAAWA,EAAQ5C,WACnB4C,EAAQC,gBA7BQ,EAACtB,EAA8BzD,IACvDyD,EAEIA,EAASiB,WAAW,QACbjB,EAIJzD,EAAY2E,aAAeC,mBAAmBnB,QAGrD,EAkBkCD,CAAiBsB,EAAQC,gBAAiB/E,GACpE0J,EAAsBE,KAAK9E,MAIhC4E,GCMEG,EAAkCpH,YAA2B,CACtEE,OAzCqCzC,MAAOE,EAAyBC,KACrE,IAAIyJ,EACJ,MAAM1G,EAAY/C,EAAQf,eAAe8D,UAGzC,GAAIhD,EAAM2J,aAAaC,aAAe5J,EAAM2J,aAAaC,YAAYC,OAAS,EAC1EH,EAAa1J,EAAM2J,aAAaC,YAAY,QACzC,GAAI5G,GAAaA,EAAUE,UAAYF,EAAUE,SAAS4G,gBAAkBC,KAAsB/G,EAAU4C,SAC/G8D,GAAc1G,EAAU4C,aACrB,MAAI5C,GAAaA,EAAUgH,YAAchH,EAAUgH,WAAWH,OAAS,GAI1E,MAAM,IAAIhK,MAAM,kDAHhB6J,GAAc1G,EAAUgH,WAAW,GAKvC/J,EAAQgK,UAAUC,MAAlB,2DAA4ER,IAC5E,MAAMS,EAA+C,CACjDC,QAAS,CACLC,WAAYrK,EAAMf,UAClB0C,WAAY3B,EAAMT,WAEtB+K,YAAa,CAACZ,GACda,sBAAsB,EACtBC,mBAAmB,GAGvB,OAAOC,gCACH,CAAElK,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC/FT,GAECpI,KAAMsH,IACHpJ,EAAQgK,UAAUC,MAAM,gDAAiDb,GAClED,EAAoBC,EAAUpJ,EAAQf,eAAeU,eAE/DiL,MAAMC,IAEH,MADA7K,EAAQgK,UAAUa,MAAlB,kDAAmEA,IAC7D,IAAIjL,MAAMiL,MAMxBxI,GAAI,4C,gBCzCD,MA6BMyI,EAAwC1I,YAA2B,CAC5EE,OA9B2CzC,MAAOE,EAAyBgL,KAC3E,MAAMC,EAA6C,GAC7CC,EAA+B,IAAIC,IACnC5L,EAAY6L,YAAmBJ,EAAI9L,eAAgB,MACzD+L,EAAoBb,QAAU,CAC1BC,UAAWW,EAAI9L,eAAeU,YAAYX,UAC1C0C,UAAWpC,GAEf0L,EAAoBT,mBAAoB,EACxCS,EAAoBV,sBAAuB,EAC3C,MACMc,EAAcH,EAAczC,IADP,wCACuED,MAC5F8C,GAAaD,aAAA,EAAAA,EAAapC,OAAOT,GAASA,EAAMjJ,YAAcA,GAAWwB,IAAIyH,GAASA,EAAMxJ,aAAc,CAAC,GAGjH,OAFAiM,EAAoBM,IAAMD,EAEnBb,gCACH,CAAElK,cAAeyK,EAAKxK,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC3FK,GAEClJ,KAAMsH,IACH2B,EAAIf,UAAUC,MAAM,sDAAuDb,GACpED,EAAoBC,EAAU2B,EAAI9L,eAAeU,eAE3DiL,MAAMC,IAEH,MADAE,EAAIf,UAAUa,MAAd,wDAAqEA,IAC/D,IAAIjL,MAAMiL,MAMxBxI,GAAI,mD,oFClBD,MAAMkJ,EAMTzM,YAAYC,EAA4BY,EAAmCL,GAOpE,KAAAJ,YAAc,IApBH,EAACqG,EAAc5F,EAAmCL,IAC9D,GAAN,OAAUiG,EAAV,mBAAyB5F,EAAYX,UAArC,kBAAwDM,GAmB7BgG,CAAc,YAAD,OAAajG,KAAKN,UAAUyD,YAAcnD,KAAKM,YAAaN,KAAKC,WAClG,KAAAH,mBAAqB,IAAM,gBAC3B,KAAAC,cAAgB,IAAiB,cARpCC,KAAKM,YAAcA,EACnBN,KAAKN,WAAaA,EAClBM,KAAKL,UAAYW,EAAYX,UAC7BK,KAAKC,UAAYA,GAazB,SAASkM,EACLjL,EACAvB,EACAqM,EACA/L,GAGA,OAZJ,SAAuBqG,GACnB,MAAM8F,EAAM9F,EAAW,CAAE9D,SAAU8D,GAAa,KAChD,OAAO,IAAI+F,mBAAiB,WAAY,UAAW,eAAgBD,GASrDE,GAAgBC,eAAerL,GAChCsL,qCACT,YACA,EACA,qBACA,OACA,CAAEC,YAAa,OAAQC,aAAc,iBACrC,CAAE/M,UAAWA,EAAWqM,WAAYA,EAAY/L,UAAWA,IAsDpD8C,YAA2B,CACtCE,OArCGzC,eAAuCmM,EAAwBjB,GAClE,IAAKiB,IAAWC,MAAMC,QAAQF,IAA6B,IAAlBA,EAAOpC,OAE5C,OADAmB,EAAIoB,MAAM,6DACH,GAGX,MAAMC,EAAwC,GACxCf,EAAaW,EAAOlL,IAAI,CAACf,EAAOsM,KAClCD,EAAiBrM,EAAMhB,WAAasN,EAC7BtM,EAAMhB,YAGjB,OA1BJ,SACIiB,EACAhB,EACAqM,EACA/L,GAGA,MAAMgN,EAAUd,EAAyBxL,EAAQO,oBAAqBvB,EAAWqM,EAAY/L,GAC7F,OAAOiN,wBAA+BD,EAAStM,GAkBxCwM,CAAoB,CAAElM,cAAeyK,GAAOiB,EAAO,GAAGhN,UAAWqM,EAAYW,EAAO,GAAG1M,WAAWwC,KAAKsH,IAC1G,IAAKA,EACD,MAAO,GAEX,MAAMqD,EAAmCtD,EAAoBC,EAAU2B,EAAI9L,eAAeU,aAAc+M,OACpG,CAACC,EAAuBlI,KACpB,IAAKA,EACD,OAAOkI,EAIX,OADAA,EADYP,EAAiB3H,EAAQ5C,WACzB4C,EACLkI,GAEX,IAIJ,OAAOX,EAAOlL,IAAIf,GACO0M,EAAeG,KAAKnI,GAAWA,GAAWA,EAAQ5C,WAAa9B,EAAMhB,YACpD,OAO9CsD,GAAI,yCACJwK,WAAW,IChGf,MA0EMC,EAAsBjN,MAAOkN,EAAgDhN,EAAyBC,KACxG,IAAIqL,EAAuB,GAE3B,GAAItL,EAAM2J,aAAasD,YAAa,CAChC,MAAMC,OAlCEpN,WACZ,IAAIoN,EACJ,GAAIlC,EAAI9L,gBAAkB8L,EAAI9L,eAAeiO,QAAS,CAClD,MAEMC,GAFUpC,EAAI9L,gBAAkB8L,EAAI9L,eAAeiO,SAC9BE,gBACQ9G,MAAM,KACzC,GAAI6G,GAA8C,IAA3BA,EAAgBvD,SAE9BmB,EAAI9L,eAAeoO,KAAKC,iBAAqC,MAAlBH,EAAgB,KAC1DpC,EAAI9L,eAAeoO,KAAKC,iBAAqC,MAAlBH,EAAgB,IAC/D,CACE,MAAMI,QAAiBC,oBAAU,CAAElN,cAAeyK,GAAOoC,EAAgB,IACrEI,GAAYA,EAASE,KACrBR,EAAOM,IAKvB,OAAON,GAgBgBS,CAAQ1N,GAC3B,GAAIiN,GAAQA,EAAKU,UAAW,CACxB,MACMC,EADiBX,EAAKU,UAAU3E,OAAO6E,QAAiC3M,IAAtB2M,EAAQ9I,WAC1BjE,IAAI2D,GAAWA,EAAQM,WAC7D/E,EAAQgK,UAAUC,MAAlB,4BAA6C2D,IAEzCA,GAAkBA,EAAehE,OAAS,IAC1CyB,EAAkBuC,SAGvB,GAAI7N,EAAM2J,aAAaoE,qBAAuB/N,EAAM2J,aAAa2B,YAAuD,IAAzCtL,EAAM2J,aAAa2B,WAAWzB,OAAc,CAC9H,MAAM7G,EAAY/C,EAAQf,eAAe8D,UAErCA,GAAaA,EAAU4C,UAAY5C,EAAUE,UAAYF,EAAUE,SAAS4G,gBAAkBkE,MAC9F1C,EAAa,EAAEtI,EAAU4C,gBAIzB5F,EAAM2J,aAAa2B,YAActL,EAAM2J,aAAa2B,WAAWzB,OAAS,IACxEyB,EAAa,CAACtL,EAAM2J,aAAa2B,WAAW,KAIpD,OAAOA,GAGL2C,EAAmCnO,MAAOE,EAAyBO,KAA2D,QAChI,MAAMN,EAA0BM,EAAcA,cAGxCa,EAAwC,CAE1C8M,sBAHAjO,EAAQf,gBAAkBe,EAAQf,eAAeoO,MAAQrN,EAAQf,eAAeoO,KAAKa,sBAIrFC,qBAAsBpO,EAAM2J,aAAa0E,qBACzCjE,QAAS,CACLC,WAAYpK,EAAQf,eAAeU,YAAYX,UAC/C0C,WAAY3B,EAAMT,WAEtBgL,sBAAsB,EACtBC,mBAAmB,GAWvB,GADsC8D,aAL5BC,SAKkD,UACvB,UAACtO,EAAQf,sBAAT,iBAAC,EAAwBsP,gBAAzB,QAAC,EAAkCC,0CACpE,IAhHqB,EAACzB,EAAgDhN,EAAyBC,KACnG,IAAI2J,EAAwB,GAE5B,GAAI5J,EAAM2J,aAAaoE,qBAAuB/N,EAAM2J,aAAaC,aAAyD,IAA1C5J,EAAM2J,aAAaC,YAAYC,OAAc,CACzH,MAAM7G,EAAY/C,EAAQf,eAAe8D,UAErCA,GAAaA,EAAUE,UAAYF,EAAUE,SAAS4G,gBAAkBC,KACpE/G,EAAU4C,WACVgE,EAAc,EAAE5G,EAAU4C,gBAK9B5F,EAAM2J,aAAaC,aAAe5J,EAAM2J,aAAaC,YAAYC,OAAS,IAC1ED,EAAc5J,EAAM2J,aAAaC,aAIzCoD,EAAuB1C,YAAcV,GA+F7B8E,CAAqBtN,EAAgBpB,EAAOC,GAC5CmB,EAAemK,UAAYwB,EAAoB3L,EAAgBpB,EAAOC,GACtE,IAAI0O,QAA6BlE,gCAC7B,CAAElK,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC/FxJ,GAEJ,GAAIuN,EAAqB9E,OAAQ,CAC7B,IAAI+E,EAAiD,GASrD,GARAA,EAA0BD,EAAqB1F,OAAO4F,MAExBA,EAAKC,iBAA4C,IAAzBD,EAAKhN,kBAG3D8M,EAAuBC,EAGnBD,EAAqB9E,OAAS,EAE9B,OADAT,EAAoBuF,EAAsB1O,EAAQf,eAAeU,aAC1D+O,GAGjB,MAAOI,GAEL9O,EAAQgK,UAAUa,MAAlB,mDAAoEiE,IAG5E,MAAO,IAwGEC,EAAwC3M,YAA2B,CAC5EE,OAtG2CzC,MAAOE,EAAyBC,KAE3E,MAAMkO,EACFlO,EAAQf,gBAAkBe,EAAQf,eAAeoO,MAAQrN,EAAQf,eAAeoO,KAAKa,sBACzF,GAAInO,EAAM2J,aAAa0E,uBAAyBY,MAAuBd,EACnE,MAAO,GAGX,MAAMnB,EAAiD,GACjDkC,EAAyB,CAAE3O,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAG9H,IAAIuE,EAFJnC,EAAuBrL,UAAY3B,EAAMT,UAGrCS,EAAM2J,aAAa0E,qBACnBc,EAAuBnP,EAAM2J,aAAa0E,qBA7KxBe,KACtB,MAAM,IAAIvP,MAAJ,gBAAmBuP,EAAnB,0EA8KFC,CAAiB,4CAErBrC,EAAuBsC,iBAAmBvC,EAAoBC,EAAwBhN,EAAOC,IAExFD,EAAM2J,aAAa4F,iBAAmBJ,IAAyBF,MAAuBd,IACvFnB,EAAuBkB,sBAAwBC,EAC/Ce,EAAanD,YAAc,OAG/B,MAAM1C,QAAiB4E,EAAiCjO,EAAOkP,GAC/D,OAAI7F,EAASQ,OAAS,EACXR,GAGXpJ,EAAQgK,UAAUC,MAAlB,mCAAoDsF,KAAKC,UAAUzC,KAG/DmC,IAAyBO,KAErB1C,EAAuBsC,YACsB,IAA7CtC,EAAuBsC,WAAWzF,QAClCmD,EAAuB1C,aACuB,IAA9C0C,EAAuB1C,YAAYT,OAE5B,GAIR8F,YAAiBT,EAAcC,EAAsBnC,GACvDjL,KAAKjC,UACF,GAAI8P,EAAqB,CACrB,MAAMC,EAAgC,GAChCC,EAA0B,GAC1BC,EAAkB3E,YAAmBnL,EAAQf,eAAgB,MAEnE,IAAK,IAAI8Q,EAAI,EAAGA,EAAIJ,EAAoB/F,OAAQmG,IAAK,CACjD,MAAMlC,EAAU8B,EAAoBI,GAEhClC,EAAQmC,WAA0C,IAA7BnC,EAAQoC,mBAC7BL,EAAcG,GAAK,IAAIxE,GAAcsC,EAAQmC,UAAWhQ,EAAQf,eAAeU,YAAamQ,GAC5FD,EAAcE,GAAKlC,EAAQmC,WAOnC,GAJAhQ,EAAQgK,UAAUC,MAAlB,iDAAkElK,EAAM2J,aAAa0E,uBACrFpO,EAAQgK,UAAUC,MAAlB,uCAAwD4F,EAAcjG,SACtE5J,EAAQgK,UAAUC,MAAM,uBAAwB4F,GAE5CD,EAAchG,OAAQ,CACtB,MAAMsG,EAAoBN,EAAc9O,IAAIyH,GAASA,EAAMxJ,WACrDmL,EAA+C,CACjDoB,IAAK4E,EACL/F,QAAS,CACLC,WAAYpK,EAAQf,eAAeU,YAAYX,UAC/C0C,WAAY3B,EAAMT,WAEtBgL,sBAAsB,EACtBC,mBAAmB,GAEvB,IACI,IAAImE,QAA6BlE,gCAC7B,CAAElK,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC/FT,GAKJ,GADAlK,EAAQgK,UAAUC,MAAM,kCAAmCsF,KAAKC,UAAUd,IACtEA,EAAqB9E,OAAS,EAG9B,OAFAT,EAAoBuF,EAAsB1O,EAAQf,eAAeU,aJ/MzFwQ,EIgNkFzB,EAA1DA,EAAiDwB,EJ9MtDxD,OAAO,CAAC0D,EAA+BpN,KACtD,MAAMyB,EAAU0L,EAA8BvD,KAAKiB,GAAWA,EAAQhM,WAAamB,GAInF,OAHIyB,GACA2L,EAAO7G,KAAK9E,GAET2L,GACR,IIyM4B1B,EAEb,MAAOI,GAEL9O,EAAQgK,UAAUa,MAAlB,mDAAoEiE,MJvNnD,IAErCqB,EIyNQ,MAAO,KAEVvF,MAAMC,IAEH,MADA7K,EAAQgK,UAAUa,MAAlB,wDAAyEA,IACnE,IAAIjL,MAAMiL,OAMxBxI,GAAI,kDClRF+M,EAAoBD,IACtB,MAAM,IAAIvP,MAAJ,gBAAmBuP,EAAnB,sEAwCGkB,EAAwCjO,YAA2B,CAC5EE,OAtC2CzC,MAAOE,EAAyBC,KAC3E,IAAIjB,EACAuR,EAkBJ,OAhBIvQ,EAAM2J,aAAa2B,YAActL,EAAM2J,aAAa2B,WAAWzB,OAAS,EACxE7K,EAAYgB,EAAM2J,aAAa2B,WAAW,GACnCrL,EAAQf,eAAe8D,WAAa/C,EAAQf,eAAe8D,UAAUC,OAC5EjE,GAAaiB,EAAQf,eAAe8D,UAAUC,OAE9CoM,EAAiB,aAGjBrP,EAAM2J,aAAa4G,eACnBA,GAAkBvQ,EAAM2J,aAAa4G,eAErClB,EAAiB,kBAErBpP,EAAQgK,UAAUC,MAAlB,4DAA6ElL,IAC7EiB,EAAQgK,UAAUC,MAAlB,iEAAkFqG,IAE3EC,kCACH,CAAEjQ,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC/F5L,EACAgB,EAAMf,UACNe,EAAMT,UACNgR,GAECxO,KAAMsH,IACHpJ,EAAQgK,UAAUC,MAAM,iDAAkDb,GACnED,EAAoBC,EAAUpJ,EAAQf,eAAeU,eAE/DiL,MAAMC,IAEH,MADA7K,EAAQgK,UAAUa,MAAlB,mDAAoEA,IAC9D,IAAIjL,MAAMiL,MAMxBxI,GAAI,mDCfKmO,EAAgCpO,YAA2B,CACpEE,OA7BmCzC,MAAOE,EAAyBC,KACnE,IAAIyQ,EACJ,GAAI1Q,EAAM2J,aAAa+G,WACnBA,EAAa1Q,EAAM2J,aAAa+G,eAC7B,MAAIzQ,EAAQf,eAAe6D,OAAS9C,EAAQf,eAAe6D,OAAS9C,EAAQf,eAAe6D,MAAM4N,GAGpG,MAAM,IAAI9Q,MACN,4HAHJ6Q,EAAazQ,EAAQf,eAAe6D,MAAM4N,EAO9C,OAAOC,4BACH,CAAErQ,cAAeN,EAASO,oBAAqB,CAAEkK,OAAQ,CAAEC,IAAK3K,EAAM2J,aAAaiB,UAAY,MAC/F5K,EAAMf,UACNe,EAAMT,UACNmR,GAEC3O,KAAMsH,IACHpJ,EAAQgK,UAAUC,MAAM,gDAAiDb,GAClED,EAAoBC,EAAUpJ,EAAQf,eAAeU,eAE/DiL,MAAMC,IAEH,MADA7K,EAAQgK,UAAUa,MAAlB,iDAAkEA,IAC5D,IAAIjL,MAAMiL,MAMxBxI,GAAI,0C,gBCjBD,MAAMuO,EAAqB/Q,MAC9BgR,EACA7Q,EACA8Q,EACAC,KAEA,IAAIzO,EACJ,MAAM0O,EAA8CH,EAGpD,OAFAG,EAAoB5H,SAAW,GAEvB6H,IAAgBJ,EAAaK,WACjC,KAAKD,IAAgBE,gBACjB7O,EAASkO,EACT,MACJ,KAAKS,IAAgBG,kBACjB9O,EAASkH,EACT,MACJ,KAAKyH,IAAgBI,gBACjB/O,EAAS+N,EACT,MACJ,KAAKY,IAAgBK,uBACjBhP,EAASwI,EACT,MACJ,KAAKmG,IAAgBM,UACrB,KAAKN,IAAgBO,KACrB,KAAKP,IAAgBQ,eACjBnP,EAASyM,EACT,MACJ,QACI/O,EAAQgK,UAAUa,MAAM6G,IAA2Bb,EAAaK,UAChEF,EAAoBtH,aAAe,CAAEmB,MAAO6G,KAGpD,QAAexQ,IAAXoB,EACA,OAAOA,EAAO,IAAIqP,IAAiBd,EAAc7Q,GAAUA,GACtD8B,KAAK8P,IACFZ,EAAoB5H,SAAWwI,UAAe,GAC9CZ,EAAoB5H,SAAW4H,EAAoB5H,SAASJ,OAAO4F,GAAQA,GAAQA,EAAKiD,MACxFC,EAA6B9R,EAAS4R,EAAad,EAAUC,KAEhEnG,MAAMC,IACH7K,EAAQgK,UAAUa,MAAMkH,KACxB/R,EAAQgK,UAAUgI,UAAUnH,GAC5BmG,EAAoBtH,aAAe,CAAEmB,MAAOkH,KAC5CD,EAA6B9R,EAASgR,EAAoB5H,SAAU0H,EAAUC,MAcxFe,EAA+B,CACjC9R,EACAoJ,EACA0H,EACAC,KAEA,GAAIkB,IAAiBC,WAAaC,YAAsBnS,EAAQf,iBAAmB6R,GAAYC,EAAuB,CAElH,MAAMqB,EAA6BpS,EAASoS,aACtCC,EAAaD,EAAa5J,IAAsD,CAClF8J,SAAUC,IACV9G,IAAKqF,IAET,GAAIuB,EAAY,CACZ,MAAMnP,EAASsP,YAAKH,EAAWzD,MAC/B1L,EAAO6N,GAAuB3H,SAAWA,EACzC,IAAKlG,EAAQ,CAAC6N,GAAwB7N,EAAO6N,IAC7CqB,EAAaK,IAAI,CAAEH,SAAUC,IAAmB9G,IAAKqF,GAAY,CAAElC,KAAM1L,Q,uBCpGrF,IAAIwP,EAAa,EAAQ,QACrBC,EAAuB,EAAQ,QAC/BC,EAAc,EAAQ,QACtBC,EAAuB,EAAQ,QAEnClQ,EAAOC,QAAU,SAAUkQ,EAAGrH,EAAKlD,EAAOzC,GACnCA,IAASA,EAAU,IACxB,IAAIiN,EAASjN,EAAQkN,WACjBC,OAAwB/R,IAAjB4E,EAAQmN,KAAqBnN,EAAQmN,KAAOxH,EAEvD,GADIiH,EAAWnK,IAAQqK,EAAYrK,EAAO0K,EAAMnN,GAC5CA,EAAQoN,OACNH,EAAQD,EAAErH,GAAOlD,EAChBsK,EAAqBpH,EAAKlD,OAC1B,CACL,IACOzC,EAAQqN,OACJL,EAAErH,KAAMsH,GAAS,UADED,EAAErH,GAE9B,MAAOZ,IACLkI,EAAQD,EAAErH,GAAOlD,EAChBoK,EAAqBS,EAAEN,EAAGrH,EAAK,CAClClD,MAAOA,EACPyK,YAAY,EACZK,cAAevN,EAAQwN,gBACvBC,UAAWzN,EAAQ0N,cAErB,OAAOV,I,o2BCGJ,MAAMW,EAWT3U,YACIC,EAAmBC,EAAmB0U,EACtC5H,EAA2B7M,GAgBxB,KAAAC,YAA4B,IAAM,kBAMlC,KAAAC,mBAAmC,IAAM,gBAMzC,KAAAC,cAAgB,IAAiB,OA1BpCC,KAAKN,UAAYA,EACjBM,KAAKL,UAAYA,EACjBK,KAAKqU,wBAA0BA,EAC/BrU,KAAKyM,YAAcA,EAEf7M,IACAI,KAAKC,UAAYC,YAAaN,KAyMnC,MAAM0U,EAAqCvR,YAA2B,CACzEC,GAAI,iEACJC,OA1DJzC,eAAwCE,EAA6BC,GAAuB,QACxF,MAAM0T,EAAuB,UAAG3T,EAAM2T,+BAAT,QAAoChL,YAA4B1I,EAAQf,eAAe2U,IAAIC,YAOxH,IAAIpP,SALiBrE,sBAAoBC,cAAc,CACnDC,cAAeN,EACfO,oBAAqBC,IAAyBC,qCAAqCT,GACnF8L,YAAa/L,EAAM+L,aACpB/L,EAAMf,UAAW,CAACe,EAAMhB,WAAY,KAJlB,UAIwBgB,EAAMT,iBAJ9B,QAI2C,IAC3C,GAOrBmF,EAAO,KAAQA,GACf,MAAMqP,EAnH4B,EAACrP,EAAwBiP,KAC3D,IAAII,GAAiC,EACrC,GAAIrP,EAAQ7D,WAAY,CACpB6D,EAAQ7D,WAAa6D,EAAQ7D,WAAWE,IAAIC,GACjC,EAAP,GAAYA,IAEhB,IAAK,MAAMA,KAAa0D,EAAQ7D,WAAY,CACxC,MAAMmT,EAAyBL,EAAwB9G,KACnDoH,GAAmBA,EAAgB3S,qBAAuBN,EAAUM,oBAEpE0S,EACAhT,EAAU2G,eAAiBqM,EAAuBrM,eAElDoM,GAAwB,GAIpC,OAAOA,GAkGuBG,CAA8BxP,EAASiP,GAE/DQ,EAAc1P,YAAwBC,EAASzE,EAAQf,eAAeU,aAExEuU,IACAzP,EAAQC,gBAAkBwP,GAG9B,MAAMC,OA/FgBtU,OAAO4E,EAAwBiP,EAA6C1T,EAAyBV,KAAsB,MACjJ,IAAI6U,EAA6D,GACjE,MAAMC,GAAwB,UAAC3P,EAAQ7D,kBAAT,QAAuB,IAAIE,IAAIC,IACzD,MAAMC,EAAiCC,YAA0CjB,EAAS,IAAI,OAAMkB,OAAWA,GACzGC,EACN,CACIC,4BAA6BL,EAAUM,mBACvCC,wBAAyBoS,EACzBnS,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAWpC,GAQf,OAN+Bc,sBAAoBuB,mDAC/C,CAAErB,cAAeN,EAASO,oBAAqBC,IAAyBC,qCAAqCT,IAC7GyE,EAAQ7C,gBAAkB6C,EAAQ7C,gBAAkB6C,EAAQ5C,SAC5DV,GAG0BW,KAAKC,GACZ,OACZhB,GADY,IAEfiB,6BAA8BD,OAM1C,OADAoS,QAAuBlS,QAAQC,IAAIkS,GAC5BD,GAmEkEE,CAAkB5P,EAASiP,EAAyB1T,EAASD,EAAMT,WAGtIgV,EAA4CpU,kBAAgBQ,YAAYgT,QA5DxD7T,OACtBE,EACAC,EACAmU,KAEA,IAAIG,EACJ,GAAIpU,kBAAgBQ,YAAYyT,IAC5BjU,kBAAgBQ,YAAYyT,EAAe,GAAGnS,+BAC9C9B,kBAAgBQ,YAAYyT,EAAe,GAAGnS,6BAA6B,GAAGqN,YAAa,CAAC,IAAD,EAC3F,MAAMkF,EAAmBJ,EAAe,GAAGnS,6BAA6B,GAAGqN,WAAW,GAMtFiF,SALqBlU,sBAAoBC,cAAc,CACnDC,cAAeN,EACfO,oBAAqBC,IAAyBC,qCAAqCT,GACnF8L,YAAa/L,EAAM+L,aACpB/L,EAAMf,UAAW,CAACuV,GAAmB,KAJnB,UAIyBxU,EAAMT,iBAJ/B,QAI4C,IACzC,GACxBgV,EAAc,KAAQA,GACtB,MAAME,EAAkBhQ,YAAwB8P,EAAgBtU,EAAQf,eAAeU,aAEnF6U,IACAF,EAAe5P,gBAAkB8P,GAIzC,OAAOF,GAqCPG,CAAkB1U,EAAOC,EAASmU,QAAkBjT,EAGpD,GAAIoT,WAAgB1T,YAAc6D,EAAQ7D,WACtC,IAAK,MAAMG,KAAa0D,EAAQ7D,WAAY,CACxC,MAAM8T,EAAgCJ,EAAe1T,WAAWgM,KAC5DoH,GAAmBA,EAAgB3S,qBAAuBN,EAAUM,oBAC/BqS,EAAwB9G,KAC7DoH,GAAmBA,EAAgB3S,qBAAuBN,EAAUM,qBAEhCqT,IACpC3T,EAAU2G,eAAiBgN,EAA8BhN,gBAKrE,IAAKoM,GAAyB5T,kBAAgBQ,YAAYgT,IAA4BY,EAClF,OAAOA,EAGX,MAAMK,EAAoClQ,EAE1C,OADAkQ,EAAgBL,eAAiBA,EAC1BK,GASP5U,MAhLiBN,IACjB,MAAMV,EAAYW,YAAoCD,GAEtD,GAAIV,EACA,OAAO,IAAI0U,GAAsB1U,GAAYU,EAAUR,eAAeU,YAAYX,eAC9EkC,OAAWA,EAAWzB,EAAUR,gBAExC,MAAM,IAAIW,MAAM,0FA4KL+T,a,qBC/PfhR,EAAOC,QAAyB,iBAARgS,MAAoBA,MAA+B,iBAAhBA,KAAKC,S,wLCazD,MAAMC,EAKThW,YAAYa,EAAmCV,GAOxC,KAAAC,YAAc,0CAAwBG,KAAKM,YAAYX,UAAzC,4BAA4DK,KAAKC,iBAAjE,QAA8E,IAE5F,KAAAH,mBAAqB,IAAM,OAE3B,KAAAC,cAAgB,IAAiB,OAVpCC,KAAKM,YAAcA,EACfV,IACAI,KAAKC,UAAYC,YAAaN,KAoBnCY,eAAekV,EAAiBhV,EAA8BgL,GAEjE,MAAMiK,QAAkBC,YAAalK,GACrC,GAAIiK,QAAmC9T,IAAtB8T,EAAU/H,KAAKQ,GAC5B,OAAOuH,EAMA5S,sBAA2B,CACtCC,GAAI,sDACJC,OAAmCyS,EACnChV,MAtBiBN,GACV,IAAIqV,EAAsBrV,EAAUR,eAAeU,YAAaF,EAAUR,mB,oCClCrF,sGAUA,MAeaiW,EAAyB9S,YAA2B,CAC7DC,GAAI,wEACJC,OAAiC6S,eACjCpV,MAlByBN,IACzB,GACIA,EAAUR,gBACVQ,EAAUR,eAAeoO,MACzB5N,EAAUR,eAAeoO,KAAKC,gBAE9B,OAAO8H,YAAyB,GAAI,MAGxC,MAAM,IAAIxV,MAAM,4EAYLsV,a,oFCrBR,SAASG,EAAqBC,EAAoBC,GAGrD,OAFAD,EAASE,UAAYF,EAASE,WAAa,GAC3CF,EAASE,UAAY,IAAIF,EAASE,UAAUxM,OAAOyM,GAAOA,EAAI5T,WAAa0T,EAAQ1T,WAC5EyT,EAakClT,YAAsC,CAC/EC,GAAI,2DACJC,OAZGzC,eAAmCE,EAAgCgL,GACtE,OAAO2K,YAA6B3V,EAAOgL,EAAKsK,IAYhDtV,MAA4D4V,IAC5D9I,WAAW,K,8CC9Bf,IAAI+I,EAAI,EAAQ,QACZC,EAAc,EAAQ,QAI1BD,EAAE,CAAE1C,QAAQ,EAAM4C,OAAQC,YAAcF,GAAe,CACrDE,WAAYF,K,kOCUP,MAAMG,EAKTlX,YAAYa,EAAmCsW,GAKxC,KAAA/W,YAAc,IAAMoG,YAAc,uBAAwBjG,KAAKM,aAE/D,KAAAR,mBAAqB,IAAM,oBAE3B,KAAAC,cAAgB,IAAiB,UARpCC,KAAK4W,4BAA8BA,EACnC5W,KAAKM,YAAcA,GAc3B,MAoBauW,EAA0C9T,YAA2B,CAC9EC,GAAI,kEACJC,OAbkCzC,MAAOE,EAAqCgL,IAC1EhL,GAASgL,EAAI9L,eAAekX,SAAWpL,EAAI9L,eAAekX,QAAQC,yBAC3DC,uCAA6B,CAAE/V,cAAeyK,GAAOhL,EAAMkW,6BAA+B,MAAMnU,KAAKwU,GACjGA,IAIfvL,EAAIoB,MAAM,2DACH,IAMPpM,MAvBiBN,IACjB,MAAM,YAAEE,EAAF,QAAewW,GAAY1W,EAAUR,eAC3C,IAAKkX,IAAYA,EAAQC,yBACrB,MAAM,IAAIxW,MAAM,qFAGpB,OAAO,IAAIoW,EAA6BrW,EAAa,CAAE4W,yBAA0BJ,EAAQC,8BAoB9EF,a,uBC/Df,IAAI3T,EAAc,EAAQ,QAEtBF,EAAK,EACLmU,EAAUC,KAAKC,SACflU,EAAWD,EAAY,GAAIC,UAE/BG,EAAOC,QAAU,SAAU6I,GACzB,MAAO,gBAAqBvK,IAARuK,EAAoB,GAAKA,GAAO,KAAOjJ,IAAWH,EAAKmU,EAAS,M,qFCNlF,+B,oCCDJ,wCAasCpU,YAA2B,CAC7DC,GAAI,uEACJC,OAAwC6S,eACxCpV,MAAO,IACI4W,iB,uBCjBf,IAAIC,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAGlBC,EAFkB,EAAQ,OAElBC,CAAgB,SAI5BpU,EAAOC,QAAU,SAAUC,GACzB,IAAImU,EACJ,OAAOJ,EAAS/T,UAAmC3B,KAA1B8V,EAAWnU,EAAGiU,MAA0BE,EAA0B,UAAfH,EAAQhU,M,uBCVtF,IAAI6P,EAAa,EAAQ,QACrBkE,EAAW,EAAQ,QACnBK,EAAiB,EAAQ,QAG7BtU,EAAOC,QAAU,SAAUsU,EAAOC,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEL,GAEAvE,EAAW2E,EAAYF,EAAMrY,cAC7BuY,IAAcD,GACdR,EAASU,EAAqBD,EAAUE,YACxCD,IAAuBF,EAAQG,WAC/BN,EAAeC,EAAOI,GACjBJ,I,8PCcF,MAAMM,EAQT1Y,YAAmB2Y,EAAyBC,EAA4CzY,GAajF,KAAAC,YAA4B,KAAK,MACpC,MAAM,mBAAN,OAA0BG,KAAKoY,gBAAgBjV,WAA/C,0BAA2EnD,KAAKqY,qBAAhF,qCAAuHrY,KAAKC,iBAA5H,QAAyI,IAOtI,KAAAH,mBAAqB,IAAc,uCAMnC,KAAAC,cAAgB,IAAiB,cA1BpCC,KAAKoY,gBAAkBA,EACvBpY,KAAKqY,qBAAuBA,EAExBzY,IACAI,KAAKC,UAAYC,YAAaN,KA8CnCY,eAAe8X,EAClB3L,EACAhM,GAEA,IAAKiM,MAAMC,QAAQF,KAAY9L,kBAAgBQ,YAAYsL,GAEvD,OADAhM,EAAQmM,MAAM,iFACP,GAGX,MAAMyL,EAAU5L,EAAOlL,IAAIf,IAEvB,MAAMiB,EAAiCC,YAA0CjB,EAAS,CAACD,EAAM0X,kBAAkB,OAAMvW,OAAWA,GAE9HC,EACN,CACIC,4BAA6BrB,EAAM2X,qBACnCpW,6BAAyBJ,EACzBK,qBAAsBP,EAA+BO,qBACrDC,gCAAiCR,EAA+BQ,gCAChEC,4BAA6BT,EAA+BS,4BAC5DC,UAAW3B,EAAMT,WASrB,OAN+Bc,sBAAoBuB,mDAC/C,CAAErB,cAAeN,EAASO,oBAAqBC,IAAyBC,qCAAqCT,IAC7GD,EAAM0X,gBACNtW,KAOR,aAAac,QAAQC,IAAI0V,GAOdxV,YAA2B,CACtCC,GAAI,sFACJC,OAAQqV,EACR5X,MA3DuDN,IAA2F,MAIlJ,OAFwB,UAAwBA,EAAUyD,cAAlC,aAAwB,EAAkB2U,oBAExC/W,IAAKgX,GACpB,IAAIN,EAAqCM,EAAiBL,gBAAiBK,EAAiBJ,qBAC/FjY,EAAUR,kBAsDlB4N,WAAW,K,uDCpIf,IAAIkL,EAAwB,GAAGC,qBAE3BC,EAA2BC,OAAOD,yBAGlCE,EAAcF,IAA6BF,EAAsBK,KAAK,CAAEC,EAAG,GAAK,GAIpFzV,EAAQwQ,EAAI+E,EAAc,SAA8BG,GACtD,IAAIC,EAAaN,EAAyB5Y,KAAMiZ,GAChD,QAASC,GAAcA,EAAWvF,YAChC+E,G,6FCgBJS,YAAqB,CACjBC,SAAU,mDACVC,eAjBiB7Y,MACjB8Y,EACAC,EACAC,KAKA,GAHAD,QAAsB3W,QAAQ6W,QAAQ7M,MAAMC,QAAQ0M,GAAiBA,EAAc,GAAKA,GAGrE,CACf,MAAMG,EAAcC,YAAgCJ,GACpDC,EAAc5Z,eAAega,cAAcF,EAAYG,YAAcH,EACrEF,EAAc5Z,eAAega,cAAcE,IAAeC,iBAAmBL,EAAc,CAACA,GAAe,KAO/GM,cAtBkBxZ,e,oYCqBhB,MAAOyZ,EAKTxa,YAAYya,EAA2BC,EAAqCC,GACxE,GAkBG,KAAAva,YAAc,IA7BR,kBA8BN,KAAAC,mBAAqB,IA/BR,0BAgCb,KAAAC,cAAgB,IAA0B,WApBxCma,EACD,MAAM,IAAI3Z,MAAJ,gEAIV,IACI,IAAI+I,IAAI4Q,GACV,MAAO1O,GACL,MAAM,IAAIjL,MAAJ,4EAA+EiL,IAGzFxL,KAAKqa,kBAAoBH,EACzBla,KAAKsa,kBAAoBH,GAAqBA,OAAoBtY,EAClE7B,KAAKua,mBAAqBH,GAalC,MAiBMI,EAAmBC,IAAUC,IAAOC,aASpC,SAAUC,EAAiBja,GAO7B,OANsB,IAAIka,IAAuB,CAC7C7X,GAAI,GACJpD,eAAgBe,EAAQ6Y,cAAc5Z,eACtCmT,aAAepS,EAAQ6Y,cAAsBzG,aAC7C+H,SAAU,OA+BXta,eAAeua,EAAqBra,EAAgCgL,GACvE,IAAIsP,EAAY,GACZC,GAAwB,EACxB7V,EAAgC,KACpC,MAAMuQ,QAAkBC,uBAAalK,GAER,MAAzBhL,EAAM4Z,oBACNlV,QAlDR5E,eAAsCd,EAAmBgM,GACrD,MAAMpL,EAAcoL,EAAI9L,eAAeU,YACvC,IAAI8E,EAAgC,KAEpC,OADAA,QAAgB8V,6BAAmB,IAAI9G,uBAAqB1U,GAAYY,EAAYX,WAAY+L,GACzFtG,EA8Ca+V,CAAuBza,EAAM4Z,kBAAmB5O,GAEhE,UAAItG,SAAJ,OAAI,EAASgW,SACTH,QAjCZza,eAAmC6Z,EAA2BgB,EAAuB3P,GAKjF,eAJqC4P,kBAAe,IAAIC,uCAAqClB,EAAmBgB,GAAgB3P,IAgC1F8P,CAAoB9a,EAAM2Z,kBAAmBjV,EAAQgW,OAAQ1P,KAKnG,GAAIuP,EAAuB,CAEvBD,SAhCRxa,eAAiCmV,GAE7B,MAAMqF,SAAmBR,EAAiBiB,MAA2BtY,SAAS,OAO9E,aAJMwS,EAAU+F,0BAA0B,CACtCC,uBAAwB,CAAC,CAAEC,IA7FT,0BA6FiCtT,MAAO,CAAEuT,YAAab,OAGtE,CACHrF,UAAWA,EACXqF,UAAWA,GAoBac,CAAkBnG,IACpBqF,UAG1B,MAAO,CACHA,YACApN,KAAM+H,EAAU/H,KAChBmO,WAAYrb,EAAM6Z,oBAAsB,KACxCnV,QAASA,GASV5E,eAAeyC,EAAOvC,EAAgCgL,GAEzD,aADqBqP,EAAqBra,EAAOgL,GAItCmP,cAAoC,CAC/C5X,OAAmDA,EACnDD,GAAI,qBACJtC,MAtGA8F,IACuB,MC1DyBpG,ED2DhD,aAAIoG,EAAK5G,eAAe6E,IAAIZ,cAA5B,OAAI,EAAgCqW,kBAChC,OAAO,IAAID,EACPzT,EAAK5G,eAAe6E,IAAIZ,OAAOqW,mBC7DS9Z,ED8DJoG,IC7D3BpG,EAAUR,gBAAkBQ,EAAUR,eAAe6D,OAASrD,EAAUR,eAAe6D,MAAM/D,UACnGU,EAAUR,eAAe6D,MAAM/D,UAC/BU,GAAaA,EAAUR,gBAAkBQ,EAAUR,eAAe8D,WAAatD,EAAUR,eAAe8D,UAAUC,OAClHvD,EAAUR,eAAe8D,UAAUC,OACnCvD,GAAaA,EAAUyD,QAAUzD,EAAUyD,OAAOnE,UAClDU,EAAUyD,OAAOnE,eADrB,EAW0CU,IAC7CA,GAAaA,EAAUR,gBAAkBQ,EAAUR,eAAe6D,OAASrD,EAAUR,eAAe6D,MAAMsY,WACnG3b,EAAUR,eAAe6D,MAAMsY,WAC/B3b,GAAaA,EAAUyD,QAAUzD,EAAUyD,OAAOkY,WAClD3b,EAAUyD,OAAOkY,gBADrB,ED4CCC,CAAqCxV,IAGzC,MAAM,IAAIjG,MAAJ,gF,uBEzEd,IAAI2C,EAAc,EAAQ,QACtB+Y,EAAW,EAAQ,QAEnBC,EAAQ9E,KAAK8E,MACbC,EAASjZ,EAAY,GAAGiZ,QACxBxT,EAAUzF,EAAY,GAAGyF,SACzBvF,EAAcF,EAAY,GAAGG,OAC7B+Y,EAAuB,8BACvBC,EAAgC,sBAIpC/Y,EAAOC,QAAU,SAAU+Y,EAASC,EAAKC,EAAUC,EAAUC,EAAeC,GAC1E,IAAIC,EAAUJ,EAAWF,EAAQ/R,OAC7BsS,EAAIJ,EAASlS,OACbuS,EAAUT,EAKd,YAJsBxa,IAAlB6a,IACFA,EAAgBT,EAASS,GACzBI,EAAUV,GAELzT,EAAQgU,EAAaG,GAAS,SAAUC,EAAOC,GACpD,IAAIC,EACJ,OAAQd,EAAOa,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOV,EACjB,IAAK,IAAK,OAAOlZ,EAAYmZ,EAAK,EAAGC,GACrC,IAAK,IAAK,OAAOpZ,EAAYmZ,EAAKK,GAClC,IAAK,IACHK,EAAUP,EAActZ,EAAY4Z,EAAI,GAAI,IAC5C,MACF,QACE,IAAIE,GAAKF,EACT,GAAU,IAANE,EAAS,OAAOH,EACpB,GAAIG,EAAIL,EAAG,CACT,IAAI9I,EAAImI,EAAMgB,EAAI,IAClB,OAAU,IAANnJ,EAAgBgJ,EAChBhJ,GAAK8I,OAA8Bhb,IAApB4a,EAAS1I,EAAI,GAAmBoI,EAAOa,EAAI,GAAKP,EAAS1I,EAAI,GAAKoI,EAAOa,EAAI,GACzFD,EAETE,EAAUR,EAASS,EAAI,GAE3B,YAAmBrb,IAAZob,EAAwB,GAAKA,O,wHCrBjC,MAAME,EAKT1d,YAAY2d,EAAyBlc,GAK9B,KAAArB,YAAc,mCAA8BG,KAAKod,iBAEjD,KAAAtd,mBAAqB,IAAM,uBAE3B,KAAAC,cAAgB,IAAiB,OARpCC,KAAKod,gBAAkBA,EACvBpd,KAAKkB,oBAAsBA,GAoD5B,MAAMmc,EAAuCta,YAA0C,CAC1FC,GAAI,oFACJC,OAvBGzC,eAA0CE,EAAkCgL,GAC/E,IAAKA,EAAI9L,eAAeoO,KAAKC,gBACzB,MAAM,IAAI1N,MAAM,iEAGpB,MAAM+c,EAAc,IAAIC,yBAAuB7c,EAAM0c,iBAC/CI,QAAoCC,4BAAkBH,EAAa5R,GAEzE,IAAK8R,GAAwC,IAAxBA,EAAajT,OAC9B,MAAM,IAAIhK,MAAM,oEAGpB,MAAMmd,EAAa,IAAIC,sCAAoCH,EAAa,GAAGpP,GAAI1N,EAAMQ,qBAC/E0c,QAAmBC,+CAAqCH,EAAYhS,GAC1E,OAAO,IAAIoS,IAAcN,EAAa,GAAII,EAAWG,MAAOH,EAAWI,aAUvEtd,MAxC2C,CAACN,EAAiCgd,KAC7E,MAAM,eAAExd,GAAmBQ,EAC3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,kEAEpB,MAAMW,EAA4CC,2BAAyB8c,cAAc7d,GAAW8d,oBAGpG,OAFAhd,EAAoBid,OAAQ,EAErB,IAAIhB,EAA0BC,EAAiBlc,MAmC3Cmc,O,uBCrFf,IAAIe,EAAa,EAAQ,QACrB/K,EAAa,EAAQ,QACrBgL,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAE5BC,EAAU1F,OAEdvV,EAAOC,QAAU+a,EAAoB,SAAU9a,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAIgb,EAAUJ,EAAW,UACzB,OAAO/K,EAAWmL,IAAYH,EAAcG,EAAQtG,UAAWqG,EAAQ/a,M,kGCIlE,MAAMib,EAOThf,YAAYif,EAAgCC,EAAoD1e,GAMzF,KAAAJ,YAAc,cAASG,KAAK4e,gBAAgB/e,cAA9B,YAA+CG,KAAKC,UAApD,YAAiED,KAAK2e,yBAAyBE,cAE7G,KAAA/e,mBAAqB,IAAM,iBAE3B,KAAAgf,kBAAoB,KAAM,EAT7B9e,KAAK2e,yBAA2BA,EAChC3e,KAAKC,UAAYA,GAAa,EAC9BD,KAAK4e,gBAAkBF,GAoDhB3b,YAA2B,CACtCC,GAAI,qEACJC,OApBGzC,eAA2CE,EAAgCgL,GAC9E,IAAItB,EAAa1J,EAAMke,gBAAgBxU,WACvC,GAAI1J,EAAMke,gBAAgBG,eAAiB3U,EAAY,CACnD,MAAMsU,QAAiBM,kBAAmBte,EAAMke,gBAAiBlT,GACjE,IAAKgT,EAED,OADAhT,EAAIoB,MAAM,yDACe,GAE7B1C,EAAasU,EAASlc,SAG1B,OAAOyc,qCACH,CAAEhe,cAAeyK,EAAKxK,oBAAqBR,EAAMie,yBAAyBT,qBAC1Exd,EAAMT,UACNmK,GAAc,IAOlB1J,MAzC0CN,IAC1C,GAAIA,GAAaA,EAAUR,eAAgB,CACvC,MAAMK,EAAYC,YAAaE,EAAUR,gBACnCgf,EAAkB,IAAIM,uBAAqB9e,EAAUR,gBAE3D,OAAO,IAAI6e,EACPG,EACAzd,IAAyB8c,cAAc7d,GACvCH,GAIR,MAAM,IAAIM,MAAM,0D,uBCnDpB,IAAIsT,EAAS,EAAQ,QACjBsL,EAAQ,EAAQ,QAChBjc,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnB6D,EAAO,EAAQ,QAA4BA,KAC3CoY,EAAc,EAAQ,QAEtBC,EAAYxL,EAAOyL,SACnBC,EAAS1L,EAAO0L,OAChBC,EAAWD,GAAUA,EAAOE,SAC5BC,EAAM,YACNC,EAAOzc,EAAYwc,EAAIC,MACvBC,EAA2C,IAAlCP,EAAUD,EAAc,OAAmD,KAApCC,EAAUD,EAAc,SAEtEI,IAAaL,GAAM,WAAcE,EAAUxG,OAAO2G,OAIxDlc,EAAOC,QAAUqc,EAAS,SAAkBC,EAAQC,GAClD,IAAIC,EAAI/Y,EAAK7D,EAAS0c,IACtB,OAAOR,EAAUU,EAAID,IAAU,IAAOH,EAAKD,EAAKK,GAAK,GAAK,MACxDV,G,oCCpBA,+B,iTCeG,MAAMW,EAOTvgB,YAAYa,EAAmC2f,EAAgBC,GAMxD,KAAArgB,YAAc,IAAMoG,YAAc,4CAA6CjG,KAAKM,aAEpF,KAAAR,mBAAqB,IAAM,oCAE3B,KAAAC,cAAgB,IAAiB,UATpCC,KAAKM,YAAcA,EACnBN,KAAKigB,SAAWA,EAChBjgB,KAAKkgB,OAASA,GAqBf1f,eAAe2f,EAA0Czf,EAAiDgL,GAC7G,GAAIhL,EAAO,CACP,MAAM0f,EAAY,IAAIC,qCAAmC3U,EAAI9L,eAAeU,aACtE0N,QAA8CsS,wCAA8BF,EAAW1U,GAE7F,OAAIsC,IAASuS,mBAAiBC,cAAcxS,EAAKyS,WACtCC,oCAA0B,CAAEzf,cAAeyK,GAAOsC,EAAKyS,UAAW/f,EAAMuf,SAAUvf,EAAMwf,QAG5F,GAIX,OADAxU,EAAIoB,MAAM,sEACgC,GAG/B/J,sBAA2B,CACtCC,GAAI,oFACJC,OAAoDkd,EACpDzf,MA1BiBN,IACjB,MAAM6f,EAAW,IAAIU,KAAKA,KAAKC,MAAS,QAElCV,EAAe,IAAIS,KAAKA,KAAKC,OACnC,OAAO,IAAIZ,EAAyC5f,EAAUR,eAAeU,YAAa2f,EAAUC,O,oCChCjG,IAAKW,GAAZ,SAAYA,GACRA,mCACAA,2BAFJ,CAAYA,MAAY,M,oCCXpB,kNAWA,SAASC,EAAmB9d,GACxB,IAAIoJ,EAAOpJ,EAAM,CAAEoL,GAAIpL,GAAO,KAC9B,OAAO,IAAIqJ,IAAiB,gBAAiB,eAAgB0U,IAAmB3U,GAO7E,SAAS4U,EAAwBrgB,EAAmBsgB,GACvD,MAAMhU,EALH,SAA2BgU,GAC9B,OAAOH,IAAqBI,OAAOD,GAInBE,CAAkBF,GAClC,OAAO/T,YAA4BD,EAAStM,GAuCzC,SAASoV,EAAyB7U,EAA2CqE,GAEhF,OADcub,IAAqBvU,eAAerL,GACrCsL,qCAAqC,iBAAiB,EAAMuU,IAAmB,OAAQ,CAACtU,YAAa,OAAQC,aAAc,gBAAiB,CAACnH,WAAYA,IAGnK,SAAS6b,EAAmBzgB,EAAmB4E,GAClD,MAAM0H,EAAU8I,EAAyBpV,EAAQO,oBAAqBqE,GACtE,OAAO2H,YAA8BD,EAAStM,GAQ3C,SAAS0gB,EAAc1gB,EAAmBqC,EAAYse,GACzD,MAAMrU,EANH,SAA6BjK,EAAYse,GAE5C,OADcR,EAAmB9d,GACpBwJ,qCAAqC,YAAY,EAAMuU,IAAmB,QAAS,CAACtU,YAAa,MAAOC,aAAc,gBAAiB,CAAC4U,kBAAmBA,IAIxJC,CAAoBve,EAAIse,GACxC,OAAOpU,YAA4BD,EAAStM,GAkBzC,SAAS6gB,EAAiB7gB,EAAmBqC,EAAYse,GAC5D,MAAMrU,EANH,SAAgCjK,EAAYse,GAE/C,OADcR,EAAmB9d,GACpBwJ,qCAAqC,eAAe,EAAMuU,IAAmB,QAAS,CAACtU,YAAa,MAAOC,aAAc,gBAAiB,CAAC4U,kBAAmBA,IAI3JG,CAAuBze,EAAIse,GAC3C,OAAOpU,YAA4BD,EAAStM,K,uBClGpD,EAAQ,S,sDCDR,8DAkFsCoC,YAA2B,CAC7DC,GAAI,qEACJC,OAAwC6S,IACxCpV,MAxBwBN,IACxB,MAAMshB,EAAqBthB,EAAUyD,QAAUzD,EAAUyD,OAAO6d,mBAEhE,GAAIthB,GAAaA,EAAUR,gBAAkBQ,EAAUR,eAAe6D,OAASrD,EAAUR,eAAe6D,MAAM2G,WAC1G,OAAOuX,4CACHxgB,IAAyB8c,cAAc7d,GAAW8d,qBACjD9d,EAAUR,eAAeU,YAAYX,UACtCS,EAAUyD,OAAS+d,OAAOxhB,EAAUyD,OAAO5D,WAAa,GACvDG,EAAUR,eAAe6D,MAAM2G,WAC/BwC,MAAMC,QAAQ6U,GAA2BA,EAAmBjgB,IAAKogB,GAA6CA,GAA1E,IAI7C,MAAM,IAAIthB,MAAM,6F,uBC1EpB,IAAI6d,EAAa,EAAQ,QACrBlb,EAAc,EAAQ,QACtB4e,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCC,EAAW,EAAQ,QAEnBC,EAAS/e,EAAY,GAAG+e,QAG5B3e,EAAOC,QAAU6a,EAAW,UAAW,YAAc,SAAiB5a,GACpE,IAAI0e,EAAOJ,EAA0B/N,EAAEiO,EAASxe,IAC5C2e,EAAwBJ,EAA4BhO,EACxD,OAAOoO,EAAwBF,EAAOC,EAAMC,EAAsB3e,IAAO0e,I,sJCNrE,MAAO3G,EAIT9b,YAAYya,EAA2BmB,GACnC,GAYG,KAAAxb,YAAc,IAAMG,KAAKoiB,eACzB,KAAAtiB,mBAAqB,IAAM,sCAC3B,KAAAC,cAAgB,IAA0B,cAG1C,KAAAsiB,cAAgB,IC1BJnI,IAAD,UACfoI,YAAqBpI,GADN,+CD0BWqI,CAAsBviB,KAAKwiB,oBACjD,KAAAC,QAAU,KAAMF,OCxBA5e,EDwB0B3D,KAAKoiB,eCxBZM,YAAkB,CAAEtW,IAAK,SAAUlD,MAAOvF,IAA7DA,QDMduW,EACD,MAAM,IAAI3Z,MAAJ,6EAGV,IAAK8a,EACD,MAAM,IAAI9a,MAAJ,yEAGVP,KAAKwiB,mBAAqBtI,EAC1Bla,KAAKoiB,eAAiB/G,GA8BfR,cAAoC,CAC/C5X,OAfJzC,eAAsBE,EAA6CgL,GAC/D,MAAMuL,QAAiB4D,IAA6Bna,EAAM2hB,gBAAiB,OAAQ3hB,EAAM+hB,WAEzF,GAAwB,MAApBxL,EAAS0L,OACT,OAAO1L,EAAS2L,MAAQ,KAG5BlX,EAAIf,UAAUgI,UACV,IAAIpS,MAAJ,+EAAkFG,EAAM2hB,gBAAxF,cAA6GpL,EAAS2L,SAQ1H5f,GAAI,qC,4GEnCD,MAAM6f,EASTpjB,YAAY2d,EAAyB1d,EAAmBojB,EAAkBC,GAOnE,KAAAljB,YAAc,IAAM,8BAEpB,KAAAC,mBAAqB,IAAM,8BAE3B,KAAAC,cAAgB,IAAiB,OAVpCC,KAAKod,gBAAkBA,EACvBpd,KAAKN,UAAYA,EACjBM,KAAK8iB,SAAWA,EAChB9iB,KAAK+iB,cAAgBA,GAAiB,MA8DvC,MAAMC,EAAyCjgB,YAA4C,CAC9FC,GAAI,uFACJC,OA/BGzC,eAA4CE,EAAoCgL,GACnF,IACI,MAAMuX,EAAwC,CAC1CC,cAAexiB,EAAM0c,gBACrB1X,UAAWhF,EAAMhB,UACjByjB,SAAUziB,EAAMoiB,SAChBM,cAAe1iB,EAAMqiB,eAGnBM,QAA2CC,mCAAyB,CACtEriB,cAAeyK,GAChBhL,EAAM0c,gBAAiB,CAAC6F,IAE3B,GAAII,GAA8C,IAA3BA,EAAgB9Y,QAAgB8Y,EAAgB,IAAMA,EAAgB,GAAGH,cAC5F,OAAOG,EAAgB,GAG3B,MADA3X,EAAIf,UAAUa,MAAM,uEACd,IAAIjL,MAAM,uEAElB,MAAOiL,GAEL,MADAE,EAAIf,UAAUa,MAAM,4CAA6CA,GAC3DA,IAWV9K,MA/CuC,CACvCN,EAAiCgd,EAAyB1d,EAAmBojB,EAAkBC,KAE/F,MAAM,eAAEnjB,GAAmBQ,EAC3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,+DAEpB,OAAO,IAAIsiB,EAA4BzF,EAAiB1d,EAAWojB,EAAUC,MA2ClEC,O,oCCzEf,kCAAO,MAAMO,EAmDT9jB,YACIC,EACA8jB,EACAC,EACAC,GAMiC,IALjCC,EAKiC,uDALf,cAClBC,EAIiC,uDAJX,GACtBC,EAGiC,uDAHb,EACpBvY,EAEiC,uDAFd,GACnBwY,EACiC,uDADN,KAC3BC,EAAiC,uDAAJ,KAiB1B,KAAAlkB,YAAc,cAASG,KAAKN,UAAd,YAA2BM,KAAKwjB,SAAhC,YAA4CxjB,KAAKyjB,iBAAjD,YAAqEzjB,KAAKsL,SAA1E,YAAsFtL,KAAK2jB,QAA3F,YAAsG3jB,KAAK4jB,YAA3G,YAA0H5jB,KAAK6jB,WAE7I,KAAA/jB,mBAAqB,IAAM,gBAE3B,KAAAC,cAAgB,IAAiB,UAnBpCC,KAAKN,UAAYA,EACjBM,KAAKwjB,SAAWA,EAChBxjB,KAAKyjB,iBAAmBA,EAIxBzjB,KAAKsL,SAAWA,EAAW,GAAK,GAAKA,EACrCtL,KAAK2jB,QAAUA,EACf3jB,KAAK4jB,YAAcA,EACnB5jB,KAAK6jB,UAAYA,EACjB7jB,KAAK8jB,UAAYA,EACjB9jB,KAAK+jB,YAAcA,EACnB/jB,KAAK0jB,gBAAkBA,K,uBCpG/B,IAEIjM,EAFkB,EAAQ,OAElBC,CAAgB,SAE5BpU,EAAOC,QAAU,SAAUygB,GACzB,IAAIC,EAAS,IACb,IACE,MAAMD,GAAaC,GACnB,MAAOC,GACP,IAEE,OADAD,EAAOxM,IAAS,EACT,MAAMuM,GAAaC,GAC1B,MAAOE,KACT,OAAO,I,0fCIJ,MAAMC,EAWT3kB,YAAYC,EAAmBC,EAAmB2V,EAAiC/P,EAAqB8e,GAQjG,KAAAxkB,YAAc,IAAM,oCAEpB,KAAAC,mBAAqB,IAAM,kBAE3B,KAAAC,cAAgB,IAAiB,OAXpCC,KAAKN,UAAYA,EACjBM,KAAKL,UAAYA,EACjBK,KAAKsV,gBAAkBA,EACvBtV,KAAKuF,WAAaA,GAAc,GAChCvF,KAAKqkB,aAAeA,GAcrB7jB,eAAe8jB,EAAgB3jB,GAClC,OAAO4jB,0CAAgC,IAAIC,oBAAqB7jB,GAO7D,MAAM8jB,EAAgDrkB,IACzD,MAAMV,EAAYW,8CAAoCD,GAEtD,GAAIV,EACA,OAAO,IAAI0kB,GACN1kB,GACAU,EAAUR,eAAeU,YAAYX,eACtCkC,OACAA,GAGR,MAAM,IAAItB,MAAM,gGAWbC,eAAekkB,EAClBhkB,EACAgL,GAEA,QAA2B7J,IAAvBnB,EAAM2jB,aAA4B,CAAC,IAAD,EAClC,MAAMA,QAAqBC,EAAgB5Y,GAC3ChL,EAAM2jB,aAAeA,SAArB,UAAqBA,EAAc9W,KAAKgC,GAAsB,oEAAdA,EAAKiD,aAArD,aAAqB,EAA6GmS,UAGtI,OAAO/hB,QAAQ6W,UACVhX,KAAK,KACF,MAAMnB,EAA2CZ,EAAM4U,gBAEvD,IAAKhU,EAAe,CAChB,MAAMsjB,EAAuB,IAAIxQ,uBAAqB1T,EAAMhB,UAAWgB,EAAMf,eACzEkC,OAAWA,EAAW6J,EAAI9L,gBAE9B,OAAOsb,6BAAmB0J,EAAsBlZ,GAGpD,OAAOpK,IAEVmB,KAAMoiB,IACH,MAAMvjB,EAAsEujB,EAE5E,GAAIvjB,EACA,OAAOwjB,kCACH,CAAE7jB,cAAeyK,EAAKxK,oBAAqBC,IAAyBC,qCAAqCsK,IACzG,CAACpK,EAAckB,UACf,GAGC9B,EAAM2jB,eAAgBQ,aAAA,EAAAA,EAAeE,iBAAkBC,IAAoBC,QAAWC,IAAyBC,+BAAiC,MACnJ1iB,KAAKwU,IACH,GAAIA,GAAYA,EAAS1M,OAAS,EAC9B,OAAO0M,EAAS,OAS/B1L,MAAOC,IAIJ,MAHAE,EAAIoB,MAAMtB,EAAM4Z,SAChB1Z,EAAIf,UAAUgI,UAAUnH,GACxBE,EAAIf,UAAUC,MAAM,sEACd,IAAIrK,MAAM,wEAIrB,MAAM8kB,EAAuDtiB,YAA2B,CAC3FC,GAAI,sFACJC,OAAqDyhB,EACrDhkB,MAAO+jB,IAGIY,a,uBCvIf,IAAIlG,EAAQ,EAAQ,QAChBzH,EAAkB,EAAQ,QAC1B4N,EAAU,EAAQ,QAElB9F,EAAW9H,EAAgB,YAE/BpU,EAAOC,SAAW4b,GAAM,WAEtB,IAAI5K,EAAM,IAAIjL,IAAI,gBAAiB,YAC/BnB,EAAeoM,EAAIpM,aACnB4I,EAAS,GAMb,OALAwD,EAAIgR,SAAW,QACfpd,EAAa8B,SAAQ,SAAUf,EAAOkD,GACpCjE,EAAqB,OAAE,KACvB4I,GAAU3E,EAAMlD,KAEVoc,IAAY/Q,EAAIiR,SAClBrd,EAAasd,MACD,2BAAblR,EAAImR,MACsB,MAA1Bvd,EAAagB,IAAI,MACuB,QAAxCwc,OAAO,IAAIC,gBAAgB,WAC1Bzd,EAAaqX,IAEsB,MAApC,IAAIlW,IAAI,eAAeuc,UACsC,MAA7D,IAAID,gBAAgB,IAAIA,gBAAgB,QAAQzc,IAAI,MAEpB,eAAhC,IAAIG,IAAI,eAAeV,MAEQ,YAA/B,IAAIU,IAAI,cAAcwc,MAEX,SAAX/U,GAEwC,MAAxC,IAAIzH,IAAI,gBAAYzH,GAAW+G,S,0MClB/B,MAAMmd,EAOTtmB,YAAmBa,EAAmC0lB,EAAwBC,GAUvE,KAAApmB,YAAc,IAAcoG,YAAc,YAAD,OAAajG,KAAK6O,uBAAyB7O,KAAKM,aAMzF,KAAAR,mBAAqB,IAAc,WAMnC,KAAAC,cAAgB,IACZC,KAAKimB,UAAYjmB,KAAKimB,UAAY,UAtBzCjmB,KAAK6O,sBAAwBmX,EAC7BhmB,KAAKM,YAAcA,EACnBN,KAAKimB,UAAYA,GA6BzB,MA8BaC,EAA8BnjB,YAA2B,CAClEC,GAAI,yDACJC,OAjBsBzC,MAAOE,EAAyBgL,IAClDhL,GAASgL,EAAI9L,eAAeoO,KAAKC,gBAE1BkY,uBAAqBhY,UAAU,CAAElN,cAAeyK,EAAKe,YAAa,OAAS/L,EAAMmO,uBAAyB,IAAIpM,KAAKwU,GAC/GrK,MAAMC,QAAQoK,GAAYA,EAAS,GAAKA,IAIvDvL,EAAIoB,MAAM,+CACO,IASjBpM,MAjCiBN,IACjB,MAAM,KAAE4N,EAAF,YAAQ1N,GAAgBF,EAAUR,eACxC,IAAKoO,EAAKoY,QAAUpY,EAAKC,gBACrB,MAAM,IAAI1N,MAAM,0DAGpB,OAAO,IAAIwlB,EAAiBzlB,MA8BjB4lB,a,sSChET,MAAOG,EAAb5mB,cACuB,KAAA6mB,cAA8C,KAE9C,KAAA1lB,eAAwC,GAExC,KAAA2lB,eAAqC,KAErC,KAAAC,kBAAmC,KAEnC,KAAAC,SAA8C,KAI9C,KAAAnb,SAAmB,GAEnB,KAAA1H,SAAyB,UAEzB,KAAA8iB,eAAuC,KAEvC,KAAAC,cAA4C,IAlBnDC,aAAXC,KAAW,oCAEAD,aAAXC,KAAW,qCAEAD,aAAXC,KAAW,qCAEAD,aAAXC,KAAW,wCAEAD,aAAXC,KAAW,+BAEAD,aAAXC,KAAW,wCAEAD,aAAXC,KAAW,+BAEAD,aAAXC,KAAW,+BAEAD,aAAXC,KAAW,qCAEAD,aAAXC,KAAW,oCAMV,MAAOC,EAAbrnB,cACW,KAAAI,YAAc,IAAM,gBAEpB,KAAAC,mBAAqB,IAAM,gBAE3B,KAAAC,cAAgB,IAAiB,WAGrCS,eAAeumB,EAAoBrmB,EAA2BgL,GACjE,OAAO,IAAI2a,EAOR,MAAMW,EAAuB5mB,GACzB,IAAI0mB,EAMA/jB,sBAA0C,CACrDE,OAAgC8jB,EAChCrmB,MAAOsmB,K,gFC1DJ,MAAMC,EAeTxnB,cACIO,KAAKknB,QAAU,GACflnB,KAAKmnB,QAAU,EAFuC,2BAApCC,EAAoC,yBAApCA,EAAoC,gBAGtDA,EAAQnd,QAAQod,IACZrnB,KAAKsnB,SAASD,EAAajb,IAAKib,EAAane,SAS9Cqe,YAAYnb,GACVpM,KAAKwnB,SAASpb,OAIjBpM,KAAKmnB,eACAnnB,KAAKknB,QAAQ9a,IAQjBqb,SAASrb,GACZ,OAAOpM,KAAKknB,QAAQ9a,GAUjBsb,yBAAyBtb,EAAUub,GAItC,OAHK3nB,KAAKwnB,SAASpb,IACfpM,KAAKsnB,SAASlb,EAAKub,GAEhB3nB,KAAKynB,SAASrb,GASlBkb,SAASlb,EAAUlD,QACRrH,IAAVqH,GAKClJ,KAAKwnB,SAASpb,MACbpM,KAAKmnB,QAGXnnB,KAAKknB,QAAQ9a,GAAOlD,GARhBlJ,KAAKunB,YAAYnb,GAgBlBob,SAASpb,GACZ,YAA6BvK,IAAtB7B,KAAKknB,QAAQ9a,GAOjBwb,UACH,OAAuB,IAAhB5nB,KAAKuK,OAQC,aACb,OAAOvK,KAAKmnB,QAMTU,QACH7nB,KAAKknB,QAAU,GACflnB,KAAKmnB,QAAU,EAOZW,YACH,OAAO9nB,KAAK+nB,UAAUtmB,IAAI2K,GAAOpM,KAAKknB,QAAQ9a,IAO3C2b,UACH,OAAclP,OAAOqJ,KAAKliB,KAAKknB,SAO5Bc,mBACH,OAAOhoB,KAAK+nB,UAAUtmB,IAAI2K,IACf,CAAEA,MAAKlD,MAAOlJ,KAAKknB,QAAQ9a,S,oCCrJ9C,IAoBM6b,EACAC,EArBFnP,EAAO,EAAQ,QACf7V,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBglB,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QACxBC,EAAS,EAAQ,QACjBnH,EAAS,EAAQ,QACjBoH,EAAmB,EAAQ,QAA+Bnf,IAC1Dof,EAAsB,EAAQ,QAC9BC,EAAkB,EAAQ,QAE1BC,EAAgBJ,EAAO,wBAAyB1C,OAAOzN,UAAUvP,SACjE+f,EAAaC,OAAOzQ,UAAUyH,KAC9BiJ,EAAcF,EACdvM,EAASjZ,EAAY,GAAGiZ,QACxB0M,EAAU3lB,EAAY,GAAG2lB,SACzBlgB,EAAUzF,EAAY,GAAGyF,SACzBvF,EAAcF,EAAY,GAAGG,OAE7BylB,GAEEZ,EAAM,MACVnP,EAAK2P,EAFDT,EAAM,IAEY,KACtBlP,EAAK2P,EAAYR,EAAK,KACG,IAAlBD,EAAIc,WAAqC,IAAlBb,EAAIa,WAGhCC,EAAgBZ,EAAca,aAG9BC,OAAuCrnB,IAAvB,OAAO8d,KAAK,IAAI,IAExBmJ,GAA4BI,GAAiBF,GAAiBT,GAAuBC,KAG/FI,EAAc,SAAc/I,GAC1B,IAII9O,EAAQoY,EAAQJ,EAAWhM,EAAOrM,EAAG0Y,EAAQC,EAJ7CC,EAAKtpB,KACL0I,EAAQ4f,EAAiBgB,GACzB/M,EAAMpZ,EAAS0c,GACf0J,EAAM7gB,EAAM6gB,IAGhB,GAAIA,EAIF,OAHAA,EAAIR,UAAYO,EAAGP,UACnBhY,EAASgI,EAAK6P,EAAaW,EAAKhN,GAChC+M,EAAGP,UAAYQ,EAAIR,UACZhY,EAGT,IAAIyY,EAAS9gB,EAAM8gB,OACfC,EAAST,GAAiBM,EAAGG,OAC7BC,EAAQ3Q,EAAKoP,EAAamB,GAC1BK,EAASL,EAAGK,OACZC,EAAa,EACbC,EAAUtN,EA+Cd,GA7CIkN,IACFC,EAAQ/gB,EAAQ+gB,EAAO,IAAK,KACC,IAAzBb,EAAQa,EAAO,OACjBA,GAAS,KAGXG,EAAUzmB,EAAYmZ,EAAK+M,EAAGP,WAE1BO,EAAGP,UAAY,KAAOO,EAAGQ,WAAaR,EAAGQ,WAA+C,OAAlC3N,EAAOI,EAAK+M,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,WAE7ChM,EAAQhE,EAAK2P,EAAYe,EAASN,EAASG,EAAIO,GAE3CJ,EACE1M,GACFA,EAAMrc,MAAQ0C,EAAY2Z,EAAMrc,MAAOkpB,GACvC7M,EAAM,GAAK3Z,EAAY2Z,EAAM,GAAI6M,GACjC7M,EAAMgN,MAAQT,EAAGP,UACjBO,EAAGP,WAAahM,EAAM,GAAGxS,QACpB+e,EAAGP,UAAY,EACbD,GAA4B/L,IACrCuM,EAAGP,UAAYO,EAAGzV,OAASkJ,EAAMgN,MAAQhN,EAAM,GAAGxS,OAASwe,GAEzDG,GAAiBnM,GAASA,EAAMxS,OAAS,GAG3CwO,EAAK0P,EAAe1L,EAAM,GAAIoM,GAAQ,WACpC,IAAKzY,EAAI,EAAGA,EAAIsZ,UAAUzf,OAAS,EAAGmG,SACf7O,IAAjBmoB,UAAUtZ,KAAkBqM,EAAMrM,QAAK7O,MAK7Ckb,GAASyM,EAEX,IADAzM,EAAMyM,OAASJ,EAASlI,EAAO,MAC1BxQ,EAAI,EAAGA,EAAI8Y,EAAOjf,OAAQmG,IAE7B0Y,GADAC,EAAQG,EAAO9Y,IACF,IAAMqM,EAAMsM,EAAM,IAInC,OAAOtM,IAIXzZ,EAAOC,QAAUqlB,G,oCCnHb,+B,uBCDJ,IAAIqB,EAAsB,EAAQ,QAE9BC,EAAM9S,KAAK8S,IAIf5mB,EAAOC,QAAU,SAAU4mB,GACzB,OAAOA,EAAW,EAAID,EAAID,EAAoBE,GAAW,kBAAoB,I,uBCP/E,IAAIC,EAAY,EAAQ,QAExB9mB,EAAOC,QAAU,qCAAqC8mB,KAAKD,I,oICoBpD,MAAME,EAGT7qB,YAAY2d,GAIL,KAAAvd,YAAc,IAAM,8BAEpB,KAAAC,mBAAqB,IAAM,8BAE3B,KAAAC,cAAgB,IAAiB,OAPpCC,KAAKod,gBAAkBA,GAqExB,MAAMmN,EAAyCxnB,YAAuC,CACzFC,GAAI,uFACJC,OA1CGzC,eAA4CE,EAAoCC,GACnF,MAAMgV,QAAkBC,uBAAajV,GAE/BO,EAA2C,CAC7CkK,OAAQ,CACJC,IAHW,IAIXmf,KAAM,IAGRC,EAAsC,IAAI9M,IAAoCjd,EAAM0c,gBAAiBlc,GAC3G,IAAIwpB,QAA2B7M,YAAqC4M,EAAqC9pB,GACrGgqB,EAA6B,GACjC,IAAK,IAAIC,EAVU,IAUSF,EAAmB3M,MAAMxT,OAAS,EAAGqgB,GAV9C,IAUkE,CACjF,MAAMC,EAAwBH,EAAmB3M,MAAMtc,IAAIqpB,IAAc,MAQrE,MAP2B,CACvB1P,OAAM,UAAE0P,EAAYC,mBAAd,aAAE,EAAyBC,eAAe5P,OAChD1V,UAAWolB,EAAYzH,gBAAgB3d,UACvCyd,SAAU2H,EAAYzH,gBAAgBF,SACtC8H,WAAY,GACZC,oBAAqBJ,EAAYzH,gBAAgBD,uBAInD+H,4BAAkB,CAAElqB,cAAeN,GAAWgV,EAAU/H,KAAKQ,GAAIyc,EAAWlV,EAAU/H,KAAKwd,SAAS7f,MAAMC,IAG5G,MAFA7K,EAAQgK,UAAUmC,MAAMtB,GACxB7K,EAAQgK,UAAUmC,MAAM,yCAClBtB,IAEVmf,EAAiBA,EAAe1I,OAAO4I,GACvCJ,EAAoCvpB,oBAAoBkK,OAAQof,KAAOI,EACvEF,QAA2B7M,YAAqC4M,EAAqC9pB,GAGzG,aADMgV,EAAU0V,YAAY,IACrBV,GAUPjqB,MAzDuC,CAACN,EAAiCgd,KACzE,MAAM,eAAExd,GAAmBQ,EAC3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,+DAEpB,OAAO,IAAI+pB,EAA4BlN,MAsD5BmN,O,6yBClFf,MAAMe,EAAmBrY,GAAuBL,IAA4D2Y,aAAatY,GAEnHuY,EAAaC,IACf,MAAMC,EAAS9Y,IAA4D+Y,gBAAgBF,GAC3F,GAAIC,EACA,MAAO,CAAEtf,IAAKqf,EAAWC,SAW3BE,EAAa,CAACL,EAAcM,EAAajY,KAC3CA,EAAOA,EAAKpJ,cAEPqhB,IACIL,EAAU,8BAAD,OAA+BK,EAAYjY,KAA3C,kBAAyD2X,EAAa3X,KAAtE,uBAAyFA,KAC/F4X,EAAU,8BAAD,OAA+BK,EAAYjY,KAA3C,6BAAoEA,KAC7E4X,EAAU,8BAAD,OAA+BK,EAAYjY,KAA3C,6BAAoE2X,EAAa3X,KAAjF,YAAyFA,KAClG4X,EAAU,GAAD,OACFK,EAAYC,gBADV,YAC6BD,EAAYE,YADzC,oBACgEF,EAAYjY,KAD5E,6BACqG2X,EAAa3X,KADlH,YAC0HA,KAEnI4X,EAAU,GAAD,OACFK,EAAYC,gBADV,YAC6BD,EAAYE,YADzC,oBACgEF,EAAYjY,KAD5E,6BACqGA,MAEtH4X,EAAU,GAAD,OAAID,EAAaO,gBAAjB,YAAoCP,EAAaQ,YAAjD,kBAAsER,EAAa3X,KAAnF,uBAAsGA,KAoBjHoY,EAAe,CAACpY,EAAM2X,EAAcM,EAAalrB,KACnD,IAAK4qB,EACD,MAAO,CAAEG,KAAM,MAInB,MAAMO,EAAiBrZ,IAAyBsZ,YAAYvrB,EAAQ6Y,cAAc5Z,gBAC5EusB,EAAsB,CACxB/f,IAAI,GAAD,OAAKwH,EAAL,YAAa2X,EAAa3X,KAA1B,YAAkCiY,EAAcA,EAAYjY,KAAO,YACtEX,SAAU,yBAERwY,EAAYQ,EAAMxE,SAAiB0E,GACnCC,EAAyBzrB,EAAQ6Y,cAEvC,GAAIiS,EAGA,OAFA9qB,EAAQgK,UAAU0hB,IAAIC,IAASC,MAA/B,oCAAmEJ,EAAS/f,IAA5E,yBAAgGqf,EAAhG,OACC7Y,IAAiBC,WAAauZ,EAAkBrZ,aAAaK,IAAI+Y,EAAU,CAAE5c,KAAMkc,IAC7ED,EAAUC,IAAc,CAAEC,KAAM,MAG3C,IAAIc,EAAYZ,EAAWL,EAAcM,EAAajY,GAGtD,IAAK4Y,GAAaX,EAAa,CAC3B,MAAMY,EAAkBC,YAAcb,EAAYc,sBAC5CC,EAAoBtB,EAAgBmB,GAC1CD,EAAYZ,EAAWL,EAAcqB,EAAmBhZ,GAQ5D,OAJK4Y,IACDA,EA3C2B,EAACjB,EAAc3X,KAC9C,MAAMiZ,EAAqBvB,EAAgBoB,YAAcnB,EAAaoB,uBAEtE,OACInB,EAAU,GAAD,OAAID,EAAaO,gBAAjB,YAAoCP,EAAaQ,YAAjD,kBAAsER,EAAa3X,KAAnF,uBAAsGA,KAC9GiZ,GACGrB,EAAU,GAAD,OACFqB,EAAmBf,gBADjB,YACoCe,EAAmBd,YADvD,kBAC4Ec,EAAmBjZ,KAD/F,uBACkHA,KAoCnHkZ,CAA2BvB,EAAc3X,IAGrD4Y,GACA7rB,EAAQgK,UAAU0hB,IAAIC,IAASC,MAA/B,oCAAmEJ,EAAS/f,IAA5E,yBAAgGogB,EAAUpgB,IAA1G,MACA6f,EAAM7Y,IAAI+Y,EAAU,CAAE5c,KAAMid,EAAUpgB,MACtCggB,EAAkBrZ,aAAaK,IAAI+Y,EAAU,CAAE5c,KAAMid,EAAUpgB,MACxDogB,GAGJ,CAAEd,KAAM,OAGNqB,EAAkB,CAAwCnZ,EAAcoZ,IAAqBC,IACtGA,EAAMtsB,QAAQgK,UAAU0hB,IAAIC,IAASC,MAArC,+BAAoE3Y,EAApE,4BAA4FqZ,EAAMjqB,GAAlG,YAAwGiqB,EAAMha,SAA9G,MACA,MAAMsY,EAAeD,EAAgB2B,EAAMha,UAC3C,IAAKsY,EAED,OADA0B,EAAMtsB,QAAQgK,UAAU0hB,IAAIC,IAAS/rB,MAAO2sB,IAA0B,CAAEC,OAAQ,CAACC,YAAiBH,EAAMha,aACjG,KAEX,IAAIoa,EAAWC,WAAcC,GACzBF,IACAA,EAAWA,EAAS1kB,QAAQ,iBAAkB,IAC9C0kB,EAAWA,EAAS1kB,QAAQ,gBAAiB,KAGjD,MAAMkjB,EAAcP,EAAgB2B,EAAMtsB,QAAQ6Y,cAAc5Z,eAAe4tB,OAAOC,OACtF,IAAIC,EAAgB1B,EAAaqB,EAAU9B,EAAcM,EAAaoB,EAAMtsB,SACvE+sB,EAAchC,OACfgC,EAAgB1B,EAAapY,EAAM2X,EAAcM,EAAaoB,EAAMtsB,UAExE,MAAM,KAAE+qB,GAASgC,EAEXC,GADkBjC,EAAI,OAAUsB,GAAwCtB,GAASsB,GACrDR,UAC5BoB,EAAkBX,EAKxB,OAJIW,EAAgBC,UAAYnC,GAC5BkC,EAAgBC,SAASnC,EAAKoC,IAG3BC,kBAACJ,EAAS9U,iBAAKoU,O,4DCxItB,k2PAWA,SAASe,EAAWhrB,GAChB,IAAIoJ,EAAOpJ,EAAM,CAAEoL,GAAIpL,GAAO,KAC9B,OAAO,IAAIqJ,IAAiB,QAAS,OAAQ4hB,IAAW7hB,GAGrD,SAAS+U,EAAkBF,GAC9B,OAAO+M,IAAa9M,OAAOD,GAGxB,SAASiN,EAAgBvtB,EAAmBsgB,GAC/C,MAAMhU,EAAUkU,EAAkBF,GAClC,OAAO/T,YAAoBD,EAAStM,GAGjC,SAASwtB,EAAkBlN,GAC9B,OAAO+M,EAAW/M,EAAO7S,IAAIggB,OAAOnN,GAGjC,SAASoN,EAAY1tB,EAAmBsgB,GAC3C,MAAMhU,EAAUkhB,EAAkBlN,GAClC,OAAO/T,YAAoBD,EAAStM,GAGjC,SAAS2tB,EAAkBrN,GAC9B,OAAO+M,EAAW/M,EAAO7S,IAAImgB,SAG1B,SAASC,EAAY7tB,EAAmBsgB,GAC3C,MAAMhU,EAAUqhB,EAAkBrN,GAClC,OAAO/T,YAA0BD,EAAStM,GAGvC,SAAS8tB,EAAgBzrB,GAC5B,OAAOgrB,EAAWhrB,GAAI0rB,OAGnB,SAASvgB,EAAUxN,EAAmBqC,GACzC,MAAMiK,EAAUwhB,EAAgBzrB,GAChC,OAAOkK,YAAoBD,EAAStM,GAGjC,SAASguB,EAAmBztB,GAC/B,OAAO8sB,IAAazhB,eAAerL,GAAqBwtB,OAGrD,SAASE,EAAajuB,GACzB,MAAMsM,EAAU0hB,EAAmBhuB,EAAQO,qBAC3C,OAAOgM,YAAsBD,EAAStM,GAGnC,SAASkuB,EAAkB3tB,EAA2C4tB,GAEzE,OADcd,IAAazhB,eAAerL,GAC7BsL,qCAAqC,UAAU,EAAMyhB,IAAW,OAAQ,CAACxhB,YAAa,OAAQC,aAAc,QAAS,CAACoiB,mBAAoBA,IAGpJ,SAASC,EAAYpuB,EAAmBmuB,GAC3C,MAAM7hB,EAAU4hB,EAAkBluB,EAAQO,oBAAqB4tB,GAC/D,OAAO5hB,YAAsBD,EAAStM,GAGnC,SAASquB,EAAoBhsB,EAAYisB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAEhN,OADcrB,EAAWhrB,GACZwJ,qCAAqC,YAAY,EAAM8iB,KAAiB,QAAS,CAAC7iB,YAAa,MAAOC,aAAc,cAAe,CAACuiB,aAAcA,EAAcC,qBAAsBA,EAAsBC,sBAAuBA,EAAuBC,gBAAiBA,EAAiBC,YAAaA,IAGnT,SAASE,EAAc5uB,EAAmBqC,EAAYisB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAC7N,MAAMpiB,EAAU+hB,EAAoBhsB,EAAIisB,EAAcC,EAAsBC,EAAuBC,EAAiBC,GACpH,OAAOniB,YAA0BD,EAAStM,GAGvC,SAAS6uB,EAA4DxsB,EAAYysB,EAA+BC,GAEnH,OADc1B,EAAWhrB,GACZwJ,qCAAqC,oDAAoD,EAAMmjB,KAAqC,QAAS,CAACljB,YAAa,OAAQC,aAAc,kCAAmC,CAAC+iB,cAAeA,EAAeC,aAAcA,IAG3Q,SAASE,EAAsDjvB,EAAmBqC,EAAYysB,EAA+BC,GAChI,MAAMziB,EAAUuiB,EAA4DxsB,EAAIysB,EAAeC,GAC/F,OAAOxiB,YAA8CD,EAAStM,GAG3D,SAASkvB,EAA8B3uB,EAA2C8B,GAErF,OADcgrB,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,sBAAsB,EAAMsjB,KAAiB,OAAQ,CAACrjB,YAAa,OAAQC,aAAc,cAAe,IAGvJ,SAASqjB,EAAwBpvB,EAAmBqC,GACvD,MAAMiK,EAAU4iB,EAA8BlvB,EAAQO,oBAAqB8B,GAC3E,OAAOkK,YAA4BD,EAAStM,GAGzC,SAASqvB,EAA6C9uB,EAA2C8B,EAAYitB,EAAqDtwB,EAAmBuwB,GAExL,OADclC,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,qCAAqC,EAAM2jB,KAA8B,OAAQ,CAAC1jB,YAAa,OAAQC,aAAc,2BAA4B,CAACujB,sBAAuBA,EAAuBtwB,UAAWA,EAAWuwB,aAAcA,IAGnR,SAASE,EAAuCzvB,EAAmBqC,EAAYitB,EAAqDtwB,EAAmBuwB,GAC1J,MAAMjjB,EAAU+iB,EAA6CrvB,EAAQO,oBAAqB8B,EAAIitB,EAAuBtwB,EAAWuwB,GAChI,OAAOhjB,YAAyCD,EAAStM,GAGtD,SAAS0vB,EAAkCnvB,EAA2C8B,EAAYitB,EAAsDC,GAE3J,OADclC,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,0BAA0B,EAAM2jB,KAA8B,OAAQ,CAAC1jB,YAAa,OAAQC,aAAc,2BAA4B,CAACujB,sBAAuBA,EAAuBC,aAAcA,IAGlP,SAASI,EAA4B3vB,EAAmBqC,EAAYitB,EAAsDC,GAC7H,MAAMjjB,EAAUojB,EAAkC1vB,EAAQO,oBAAqB8B,EAAIitB,EAAuBC,GAC1G,OAAOhjB,YAAyCD,EAAStM,GAGtD,SAAS4vB,EAAkCvtB,GAE9C,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,0BAA0B,EAAMgkB,IAA8B,QAAS,CAAC/jB,YAAa,OAAQC,aAAc,2BAA4B,IAGtL,SAAS+jB,EAA4B9vB,EAAmBqC,GAC3D,MAAMiK,EAAUsjB,EAAkCvtB,GAClD,OAAOkK,YAAuCD,EAAStM,GAGpD,SAAS+vB,EAA8BxvB,EAA2C8B,EAAY2tB,EAAkCC,EAA+BV,EAA8BW,GAEhM,OADc7C,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,sBAAsB,EAAMskB,KAAqB,OAAQ,CAACrkB,YAAa,OAAQC,aAAc,kBAAmB,CAACikB,gBAAiBA,EAAiBC,YAAaA,EAAaV,aAAcA,EAAcW,4BAA6BA,IAGrR,SAAS/L,EAAwBnkB,EAAmBqC,EAAY2tB,EAAkCC,EAA+BV,EAA8BW,GAClK,MAAM5jB,EAAUyjB,EAA8B/vB,EAAQO,oBAAqB8B,EAAI2tB,EAAiBC,EAAaV,EAAcW,GAC3H,OAAO3jB,YAAgCD,EAAStM,GAG7C,SAASowB,EAA4C/tB,EAAYguB,GAEpE,OADchD,EAAWhrB,GACZwJ,qCAAqC,oCAAoC,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACskB,2BAA4BA,IAGtL,SAASC,EAAsCtwB,EAAmBqC,EAAYguB,GACjF,MAAM/jB,EAAU8jB,EAA4C/tB,EAAIguB,GAChE,OAAO9jB,YAAoBD,EAAStM,GAGjC,SAASuwB,EAAuCluB,EAAYmuB,GAE/D,OADcnD,EAAWhrB,GACZwJ,qCAAqC,+BAA+B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACykB,sBAAuBA,IAG5K,SAASC,EAAiCzwB,EAAmBqC,EAAYmuB,GAC5E,MAAMlkB,EAAUikB,EAAuCluB,EAAImuB,GAC3D,OAAOjkB,YAAoBD,EAAStM,GAGjC,SAAS0wB,EAAqBruB,EAAYsuB,EAAyBC,EAA2BC,GAEjG,OADcxD,EAAWhrB,GACZwJ,qCAAqC,aAAa,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC4kB,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGrM,SAASC,EAAe9wB,EAAmBqC,EAAYsuB,EAAyBC,EAA2BC,GAC9G,MAAMvkB,EAAUokB,EAAqBruB,EAAIsuB,EAAiBC,EAAYC,GACtE,OAAOtkB,YAAoBD,EAAStM,GAGjC,SAAS+wB,EAA0B1uB,EAAY2uB,EAA6BH,EAAgBI,GAE/F,OADc5D,EAAWhrB,GACZwJ,qCAAqC,kBAAkB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACilB,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGrM,SAASC,EAAoBlxB,EAAmBqC,EAAY2uB,EAA6BH,EAAgBI,GAC5G,MAAM3kB,EAAUykB,EAA0B1uB,EAAI2uB,EAAcH,EAAQI,GACpE,OAAO1kB,YAAoBD,EAAStM,GAGjC,SAASmxB,EAA6B9uB,EAAY+Y,EAA2BuV,EAAyBC,EAA2BC,GAEpI,OADcxD,EAAWhrB,GACZwJ,qCAAqC,qBAAqB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACqP,WAAYA,EAAYuV,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGrO,SAASO,EAAuBpxB,EAAmBqC,EAAY+Y,EAA2BuV,EAAyBC,EAA2BC,GACjJ,MAAMvkB,EAAU6kB,EAA6B9uB,EAAI+Y,EAAYuV,EAAiBC,EAAYC,GAC1F,OAAOtkB,YAAoBD,EAAStM,GAGjC,SAASqxB,EAAkChvB,EAAY+Y,EAA2B4V,EAA6BH,EAAgBI,GAElI,OADc5D,EAAWhrB,GACZwJ,qCAAqC,0BAA0B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACqP,WAAYA,EAAY4V,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGrO,SAASK,EAA4BtxB,EAAmBqC,EAAY+Y,EAA2B4V,EAA6BH,EAAgBI,GAC/I,MAAM3kB,EAAU+kB,EAAkChvB,EAAI+Y,EAAY4V,EAAcH,EAAQI,GACxF,OAAO1kB,YAAoBD,EAAStM,GAGjC,SAASuxB,EAAgBlvB,EAAY4uB,EAA2CvC,GAEnF,OADcrB,EAAWhrB,GACZwJ,qCAAqC,QAAQ,EAAM8iB,KAAiB,QAAS,CAAC7iB,YAAa,MAAOC,aAAc,cAAe,CAACklB,gBAAiBA,EAAiBvC,YAAaA,IAGzL,SAAS8C,EAAUxxB,EAAmBqC,EAAY4uB,EAA2CvC,GAChG,MAAMpiB,EAAUilB,EAAgBlvB,EAAI4uB,EAAiBvC,GACrD,OAAOniB,YAA0BD,EAAStM,GAGvC,SAASyxB,EAAwBpvB,EAAY6nB,EAA+BwE,GAE/E,OADcrB,EAAWhrB,GACZwJ,qCAAqC,gBAAgB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACme,UAAWA,EAAWwE,YAAaA,IAGzK,SAASlE,EAAkBxqB,EAAmBqC,EAAY6nB,EAA+BwE,GAC5F,MAAMpiB,EAAUmlB,EAAwBpvB,EAAI6nB,EAAWwE,GACvD,OAAOniB,YAAoBD,EAAStM,GAGjC,SAAS0xB,EAA8BrvB,EAAYsvB,EAA0CC,EAAyClD,GAEzI,OADcrB,EAAWhrB,GACZwJ,qCAAqC,sBAAsB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC4lB,gBAAiBA,EAAiBC,gCAAiCA,EAAiClD,YAAaA,IAG7P,SAASmD,EAAwB7xB,EAAmBqC,EAAYsvB,EAA0CC,EAAyClD,GACtJ,MAAMpiB,EAAUolB,EAA8BrvB,EAAIsvB,EAAiBC,EAAiClD,GACpG,OAAOniB,YAAoBD,EAAStM,GAGjC,SAAS8xB,EAA2BzvB,EAAY6nB,EAA+BwE,GAElF,OADcrB,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACme,UAAWA,EAAWwE,YAAaA,IAG5K,SAASqD,EAAqB/xB,EAAmBqC,EAAY6nB,EAA+BwE,GAC/F,MAAMpiB,EAAUwlB,EAA2BzvB,EAAI6nB,EAAWwE,GAC1D,OAAOniB,YAAoBD,EAAStM,GAGjC,SAASgyB,EAAyB3vB,EAAY6nB,GAEjD,OADcmD,EAAWhrB,GACZwJ,qCAAqC,iBAAiB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACme,UAAWA,IAGlJ,SAAS+H,GAAmBjyB,EAAmBqC,EAAY6nB,GAC9D,MAAM5d,EAAU0lB,EAAyB3vB,EAAI6nB,GAC7C,OAAO3d,YAAoBD,EAAStM,GAGjC,SAASkyB,GAA2B7vB,EAAY4tB,GAEnD,OADc5C,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACkkB,YAAaA,IAGtJ,SAASkC,GAAqBnyB,EAAmBqC,EAAY4tB,GAChE,MAAM3jB,EAAU4lB,GAA2B7vB,EAAI4tB,GAC/C,OAAO1jB,YAAoBD,EAAStM,GAGjC,SAASoyB,GAAyB/vB,EAAYgwB,EAAwC3D,GAEzF,OADcrB,EAAWhrB,GACZwJ,qCAAqC,iBAAiB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACsmB,eAAgBA,EAAgB3D,YAAaA,IAGpL,SAAS4D,GAAmBtyB,EAAmBqC,EAAYgwB,EAAwC3D,GACtG,MAAMpiB,EAAU8lB,GAAyB/vB,EAAIgwB,EAAgB3D,GAC7D,OAAOniB,YAAoBD,EAAStM,GAGjC,SAASuyB,GAAmClwB,EAAYmwB,EAAgC9D,GAE3F,OADcrB,EAAWhrB,GACZwJ,qCAAqC,2BAA2B,EAAM4mB,KAAyB,QAAS,CAAC3mB,YAAa,MAAOC,aAAc,sBAAuB,CAACymB,WAAYA,EAAY9D,YAAaA,IAGlN,SAASgE,GAA6B1yB,EAAmBqC,EAAYmwB,EAAgC9D,GACxG,MAAMpiB,EAAUimB,GAAmClwB,EAAImwB,EAAY9D,GACnE,OAAOniB,YAAkCD,EAAStM,GAG/C,SAAS2yB,GAAqCtwB,EAAYuwB,EAA4ClE,GAEzG,OADcrB,EAAWhrB,GACZwJ,qCAAqC,6BAA6B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6mB,uBAAwBA,EAAwBlE,YAAaA,IAGhN,SAASmE,GAA+B7yB,EAAmBqC,EAAYuwB,EAA4ClE,GACtH,MAAMpiB,EAAUqmB,GAAqCtwB,EAAIuwB,EAAwBlE,GACjF,OAAOniB,YAAoBD,EAAStM,GAGjC,SAAS8yB,GAAoCzwB,EAAYmwB,GAE5D,OADcnF,EAAWhrB,GACZwJ,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACymB,WAAYA,IAG9I,SAASO,GAA8B/yB,EAAmBqC,EAAYmwB,GACzE,MAAMlmB,EAAUwmB,GAAoCzwB,EAAImwB,GACxD,OAAOjmB,YAA0BD,EAAStM,GAGvC,SAASgzB,GAAqC3wB,EAAY4wB,EAA8BC,GAE3F,OADc7F,EAAWhrB,GACZwJ,qCAAqC,6BAA6B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACknB,aAAcA,EAAcC,cAAeA,IAG9L,SAASC,GAA+BnzB,EAAmBqC,EAAY4wB,EAA8BC,GACxG,MAAM5mB,EAAU0mB,GAAqC3wB,EAAI4wB,EAAcC,GACvE,OAAO3mB,YAAoBD,EAAStM,GAGjC,SAASozB,GAA2C7yB,EAA2C8B,EAAYuwB,EAA4CS,GAE1J,OADchG,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,mCAAmC,EAAMynB,KAAc,OAAQ,CAACxnB,YAAa,OAAQC,aAAc,WAAY,CAAC6mB,uBAAwBA,EAAwBS,yBAA0BA,IAGzO,SAASE,GAAqCvzB,EAAmBqC,EAAYuwB,EAA4CS,GAC5H,MAAM/mB,EAAU8mB,GAA2CpzB,EAAQO,oBAAqB8B,EAAIuwB,EAAwBS,GACpH,OAAO9mB,YAAyBD,EAAStM,GAGtC,SAASwzB,GAAgBnxB,EAAYoxB,GAExC,OADcpG,EAAWhrB,GACZwJ,qCAAqC,QAAQ,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC0nB,eAAgBA,IAG9I,SAASC,GAAU1zB,EAAmBqC,EAAYoxB,GACrD,MAAMnnB,EAAUknB,GAAgBnxB,EAAIoxB,GACpC,OAAOlnB,YAAoBD,EAAStM,GAGjC,SAAS2zB,GAAuCC,EAA8BC,GAEjF,OADcxG,IACDxhB,qCAAqC,+BAA+B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6nB,cAAeA,EAAeC,sBAAuBA,IAG1M,SAASC,GAAiC9zB,EAAmB4zB,EAA8BC,GAC9F,MAAMvnB,EAAUqnB,GAAuCC,EAAeC,GACtE,OAAOtnB,YAAoBD,EAAStM,GAGjC,SAAS+zB,GAAoC1xB,EAAY2xB,GAE5D,OADc3G,EAAWhrB,GACZwJ,qCAAqC,4BAA4B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACioB,+BAAgCA,IAGlL,SAASC,GAA8Bj0B,EAAmBqC,EAAY2xB,GACzE,MAAM1nB,EAAUynB,GAAoC1xB,EAAI2xB,GACxD,OAAOznB,YAAoBD,EAAStM,GAGjC,SAASk0B,GAA0B7xB,EAAY4wB,EAA8BhC,EAA2CkD,EAAiCC,GAE5J,OADc/G,EAAWhrB,GACZwJ,qCAAqC,kBAAkB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACknB,aAAcA,EAAchC,gBAAiBA,EAAiBkD,eAAgBA,EAAgBC,UAAWA,IAGjP,SAASC,GAAoBr0B,EAAmBqC,EAAY4wB,EAA8BhC,EAA2CkD,EAAiCC,GACzK,MAAM9nB,EAAU4nB,GAA0B7xB,EAAI4wB,EAAchC,EAAiBkD,EAAgBC,GAC7F,OAAO7nB,YAAoBD,EAAStM,GAGjC,SAASs0B,GAAyBjyB,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GAE3J,OADcpH,EAAWhrB,GACZwJ,qCAAqC,iBAAiB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACwoB,WAAYA,EAAY1D,OAAQA,EAAQ9B,aAAcA,EAAcyF,gBAAiBA,EAAiBC,aAAcA,IAG3P,SAASC,GAAmB10B,EAAmBqC,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GACxK,MAAMnoB,EAAUgoB,GAAyBjyB,EAAIkyB,EAAY1D,EAAQ9B,EAAcyF,EAAiBC,GAChG,OAAOloB,YAAoBD,EAAStM,GAGjC,SAAS20B,GAA0BtyB,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GAE5J,OADcpH,EAAWhrB,GACZwJ,qCAAqC,kBAAkB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACwoB,WAAYA,EAAY1D,OAAQA,EAAQ9B,aAAcA,EAAcyF,gBAAiBA,EAAiBC,aAAcA,IAG5P,SAASG,GAAoB50B,EAAmBqC,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GACzK,MAAMnoB,EAAUqoB,GAA0BtyB,EAAIkyB,EAAY1D,EAAQ9B,EAAcyF,EAAiBC,GACjG,OAAOloB,YAAoBD,EAAStM,GAGjC,SAAS60B,GAA2BxyB,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GAE7J,OADcpH,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACwoB,WAAYA,EAAY1D,OAAQA,EAAQ9B,aAAcA,EAAcyF,gBAAiBA,EAAiBC,aAAcA,IAG7P,SAASK,GAAqB90B,EAAmBqC,EAAYkyB,EAA2B1D,EAAgB9B,EAA8ByF,EAAiCC,GAC1K,MAAMnoB,EAAUuoB,GAA2BxyB,EAAIkyB,EAAY1D,EAAQ9B,EAAcyF,EAAiBC,GAClG,OAAOloB,YAAoBD,EAAStM,GAGjC,SAAS+0B,GAAmB1yB,GAE/B,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,WAAW,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,IAGhI,SAASipB,GAAah1B,EAAmBqC,GAC5C,MAAMiK,EAAUyoB,GAAmB1yB,GACnC,OAAOkK,YAAoBD,EAAStM,GAGjC,SAASi1B,GAA8B5yB,EAAY6yB,EAA+B1G,GAErF,OADcnB,EAAWhrB,GACZwJ,qCAAqC,sBAAsB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACmpB,cAAeA,EAAe1G,sBAAuBA,IAGjM,SAAS2G,GAAwBn1B,EAAmBqC,EAAY6yB,EAA+B1G,GAClG,MAAMliB,EAAU2oB,GAA8B5yB,EAAI6yB,EAAe1G,GACjE,OAAOjiB,YAAoBD,EAAStM,GAGjC,SAASo1B,GAAkB/yB,GAE9B,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,UAAU,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,IAG/H,SAASspB,GAAYr1B,EAAmBqC,GAC3C,MAAMiK,EAAU8oB,GAAkB/yB,GAClC,OAAOkK,YAAoBD,EAAStM,GAGjC,SAASs1B,GAA+BC,GAE3C,OADclI,IACDxhB,qCAAqC,uBAAuB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACwpB,UAAWA,IAGxJ,SAASC,GAAyBx1B,EAAmBu1B,GACxD,MAAMjpB,EAAUgpB,GAA+BC,GAC/C,OAAOhpB,YAAoBD,EAAStM,GAGjC,SAASy1B,GAA+BpzB,EAAYqzB,GAEvD,OADcrI,EAAWhrB,GACZwJ,qCAAqC,uBAAuB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC2pB,cAAeA,IAG5J,SAASC,GAAyB31B,EAAmBqC,EAAYqzB,GACpE,MAAMppB,EAAUmpB,GAA+BpzB,EAAIqzB,GACnD,OAAOnpB,YAAoBD,EAAStM,GAGjC,SAAS41B,GAAwBr1B,GAEpC,OADc8sB,IAAazhB,eAAerL,GAC7BsL,qCAAqC,gBAAgB,EAAMyhB,IAAW,OAAQ,CAACxhB,YAAa,OAAQC,aAAc,QAAS,IAGrI,SAAS8pB,GAAkB71B,GAC9B,MAAMsM,EAAUspB,GAAwB51B,EAAQO,qBAChD,OAAOgM,YAAsBD,EAAStM,GAGnC,SAAS81B,GAAiCzzB,EAAY+Y,EAA2B2a,GAEpF,OADc1I,EAAWhrB,GACZwJ,qCAAqC,yBAAyB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACqP,WAAYA,EAAY2a,MAAOA,IAG9K,SAASC,GAA2Bh2B,EAAmBqC,EAAY+Y,EAA2B2a,GACjG,MAAMzpB,EAAUwpB,GAAiCzzB,EAAI+Y,EAAY2a,GACjE,OAAOxpB,YAAoBD,EAAStM,GAGjC,SAASi2B,GAAqC5zB,EAAY6zB,EAA8DC,GAE3H,OADc9I,EAAWhrB,GACZwJ,qCAAqC,6BAA6B,EAAMuqB,IAA6B,QAAS,CAACtqB,YAAa,OAAQC,aAAc,0BAA2B,CAACmqB,0BAA2BA,EAA2BC,oBAAqBA,IAGnQ,SAASE,GAA+Br2B,EAAmBqC,EAAY6zB,EAA8DC,GACxI,MAAM7pB,EAAU2pB,GAAqC5zB,EAAI6zB,EAA2BC,GACpF,OAAO5pB,YAAsCD,EAAStM,GAGnD,SAASs2B,GAA2CC,EAAkCJ,EAAiDK,EAAwBC,GAElK,OADcpJ,IACDxhB,qCAAqC,mCAAmC,EAAM6qB,IAA8B,QAAS,CAAC5qB,YAAa,MAAOC,aAAc,2BAA4B,CAACwqB,iBAAkBA,EAAkBJ,oBAAqBA,EAAqBK,OAAQA,EAAQC,SAAUA,IAGvS,SAASE,GAAqC32B,EAAmBu2B,EAAkCJ,EAAiDK,EAAwBC,GAC/K,MAAMnqB,EAAUgqB,GAA2CC,EAAkBJ,EAAqBK,EAAQC,GAC1G,OAAOlqB,YAAuCD,EAAStM,GAGpD,SAAS42B,GAAuBhD,EAA+BiD,GAElE,OADcxJ,IACDxhB,qCAAqC,eAAe,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6nB,cAAeA,EAAeiD,QAASA,IAG5K,SAASC,GAAiB92B,EAAmB4zB,EAA+BiD,GAC/E,MAAMvqB,EAAUsqB,GAAuBhD,EAAeiD,GACtD,OAAOtqB,YAAoBD,EAAStM,GAGjC,SAAS+2B,GAAuBnD,EAA+BoD,GAElE,OADc3J,IACDxhB,qCAAqC,eAAe,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6nB,cAAeA,EAAeoD,QAASA,IAG5K,SAASC,GAAiBj3B,EAAmB4zB,EAA+BoD,GAC/E,MAAM1qB,EAAUyqB,GAAuBnD,EAAeoD,GACtD,OAAOzqB,YAAoBD,EAAStM,GAGjC,SAASk3B,GAA4B70B,GAExC,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,oBAAoB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,IAGzI,SAASorB,GAAsBn3B,EAAmBqC,GACrD,MAAMiK,EAAU4qB,GAA4B70B,GAC5C,OAAOkK,YAAoBD,EAAStM,GAGjC,SAASo3B,GAA2B/0B,GAEvC,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAOyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,IAGzI,SAASsrB,GAAqBr3B,EAAmBqC,GACpD,MAAMiK,EAAU8qB,GAA2B/0B,GAC3C,OAAOkK,YAAoBD,EAAStM,GAGjC,SAASs3B,GAAyBj1B,GAErC,OADcgrB,EAAWhrB,GACZwJ,qCAAqC,iBAAiB,EAAM0rB,IAAqB,QAAS,CAACzrB,YAAa,OAAQC,aAAc,kBAAmB,IAG3J,SAASyrB,GAAmBx3B,EAAmBqC,GAClD,MAAMiK,EAAUgrB,GAAyBj1B,GACzC,OAAOkK,YAA8BD,EAAStM,GAG3C,SAASy3B,GAAkCl3B,EAA2C8B,EAAY4tB,GAErG,OADc5C,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,0BAA0B,EAAM6rB,IAAwB,OAAQ,CAAC5rB,YAAa,OAAQC,aAAc,qBAAsB,CAACkkB,YAAaA,IAGvL,SAAS0H,GAA4B33B,EAAmBqC,EAAY4tB,GACvE,MAAM3jB,EAAUmrB,GAAkCz3B,EAAQO,oBAAqB8B,EAAI4tB,GACnF,OAAO1jB,YAAmCD,EAAStM,GAGhD,SAAS43B,GAA8BhE,EAA+BiE,GAEzE,OADcxK,IACDxhB,qCAAqC,sBAAsB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6nB,cAAeA,EAAeiE,UAAWA,IAGrL,SAASC,GAAwB93B,EAAmB4zB,EAA+BiE,GACtF,MAAMvrB,EAAUsrB,GAA8BhE,EAAeiE,GAC7D,OAAOtrB,YAAoBD,EAAStM,GAGjC,SAAS+3B,GAA2B11B,EAAYw1B,EAA2BrD,GAE9E,OADcnH,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC8rB,UAAWA,EAAWrD,gBAAiBA,IAGhL,SAASwD,GAAqBh4B,EAAmBqC,EAAYw1B,EAA2BrD,GAC3F,MAAMloB,EAAUyrB,GAA2B11B,EAAIw1B,EAAWrD,GAC1D,OAAOjoB,YAAoBD,EAAStM,GAGjC,SAASi4B,GAAuB51B,EAAY61B,GAE/C,OADc7K,EAAWhrB,GACZwJ,qCAAqC,eAAe,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACmsB,WAAYA,IAGjJ,SAASC,GAAiBn4B,EAAmBqC,EAAY61B,GAC5D,MAAM5rB,EAAU2rB,GAAuB51B,EAAI61B,GAC3C,OAAO3rB,YAAoBD,EAAStM,GAGjC,SAASo4B,GAAsCxE,EAA8BxY,EAA2Bid,EAAqCC,GAEhJ,OADcjL,IACDxhB,qCAAqC,8BAA8B,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC6nB,cAAeA,EAAexY,WAAYA,EAAYid,qBAAsBA,EAAsBC,gBAAiBA,IAGvQ,SAASC,GAAgCv4B,EAAmB4zB,EAA8BxY,EAA2Bid,EAAqCC,GAC7J,MAAMhsB,EAAU8rB,GAAsCxE,EAAexY,EAAYid,EAAsBC,GACvG,OAAO/rB,YAAoBD,EAAStM,GAGjC,SAASw4B,GAAsBn2B,EAAYo2B,EAA+BC,GAE7E,OADcrL,EAAWhrB,GACZwJ,qCAAqC,cAAc,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC0sB,YAAaA,EAAaC,qBAAsBA,IAGpL,SAASC,GAAgB34B,EAAmBqC,EAAYo2B,EAA+BC,GAC1F,MAAMpsB,EAAUksB,GAAsBn2B,EAAIo2B,EAAaC,GACvD,OAAOnsB,YAAoBD,EAAStM,GAGjC,SAAS44B,GAAyBv2B,EAAYo2B,GAEjD,OADcpL,EAAWhrB,GACZwJ,qCAAqC,iBAAiB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC0sB,YAAaA,IAGpJ,SAASI,GAAmB74B,EAAmBqC,EAAYo2B,GAC9D,MAAMnsB,EAAUssB,GAAyBv2B,EAAIo2B,GAC7C,OAAOlsB,YAAoBD,EAAStM,GAGjC,SAAS84B,GAAuCv4B,EAA2C8B,EAAY6nB,GAE1G,OADcmD,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,+BAA+B,EAAMktB,IAAyB,OAAQ,CAACjtB,YAAa,OAAQC,aAAc,sBAAuB,CAACme,UAAWA,IAG5L,SAAS8O,GAAiCh5B,EAAmBqC,EAAY6nB,GAC5E,MAAM5d,EAAUwsB,GAAuC94B,EAAQO,oBAAqB8B,EAAI6nB,GACxF,OAAO3d,YAAoCD,EAAStM,GAGjD,SAASi5B,GAAiC14B,EAA2C8B,EAAY4tB,GAEpG,OADc5C,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,yBAAyB,EAAMktB,IAAyB,OAAQ,CAACjtB,YAAa,OAAQC,aAAc,sBAAuB,CAACkkB,YAAaA,IAGxL,SAASiJ,GAA2Bl5B,EAAmBqC,EAAY4tB,GACtE,MAAM3jB,EAAU2sB,GAAiCj5B,EAAQO,oBAAqB8B,EAAI4tB,GAClF,OAAO1jB,YAAoCD,EAAStM,GAGjD,SAASm5B,GAA0B54B,GAEtC,OADc8sB,IAAazhB,eAAerL,GAC7BsL,qCAAqC,kBAAkB,EAAOutB,IAAiB,OAAQ,CAACttB,YAAa,OAAQC,aAAc,cAAe,IAGpJ,SAASstB,GAAoBr5B,GAChC,MAAMsM,EAAU6sB,GAA0Bn5B,EAAQO,qBAClD,OAAOgM,YAA4BD,EAAStM,GAGzC,SAASs5B,GAA2B/4B,EAA2C8B,GAElF,OADcgrB,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,mBAAmB,EAAO,GAAI,OAAQ,CAACC,YAAa,OAAQC,aAAc,IAAK,IAG9H,SAASwtB,GAAqBv5B,EAAmBqC,GACpD,MAAMiK,EAAUgtB,GAA2Bt5B,EAAQO,oBAAqB8B,GACxE,OAAOkK,YAAwBD,EAAStM,GAGrC,SAASw5B,GAA+Bn3B,EAAY+Y,EAA2B2a,EAAerH,GAEjG,OADcrB,EAAWhrB,GACZwJ,qCAAqC,uBAAuB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAACqP,WAAYA,EAAY2a,MAAOA,EAAOrH,YAAaA,IAGhM,SAAS+K,GAAyBz5B,EAAmBqC,EAAY+Y,EAA2B2a,EAAerH,GAC9G,MAAMpiB,EAAUktB,GAA+Bn3B,EAAI+Y,EAAY2a,EAAOrH,GACtE,OAAOniB,YAAoBD,EAAStM,GAGjC,SAAS05B,GAA2Br3B,EAAYs3B,GAEnD,OADctM,EAAWhrB,GACZwJ,qCAAqC,mBAAmB,EAAMyhB,IAAW,QAAS,CAACxhB,YAAa,MAAOC,aAAc,QAAS,CAAC4tB,aAAcA,IAGvJ,SAASC,GAAqB55B,EAAmBqC,EAAYs3B,GAChE,MAAMrtB,EAAUotB,GAA2Br3B,EAAIs3B,GAC/C,OAAOptB,YAAoBD,EAAStM,GAGjC,SAAS65B,GAA4Bt5B,EAA2C8B,GAEnF,OADcgrB,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,oBAAoB,EAAOiuB,KAAuB,OAAQ,CAAChuB,YAAa,OAAQC,aAAc,oBAAqB,IAGlK,SAASguB,GAAsB/5B,EAAmBqC,GACrD,MAAMiK,EAAUutB,GAA4B75B,EAAQO,oBAAqB8B,GACzE,OAAOkK,YAAkCD,EAAStM,GAG/C,SAASg6B,GAA+B33B,EAAYqsB,GAEvD,OADcrB,EAAWhrB,GACZwJ,qCAAqC,uBAAuB,EAAOouB,IAAgC,QAAS,CAACnuB,YAAa,MAAOC,aAAc,6BAA8B,CAAC2iB,YAAaA,IAGrM,SAASwL,GAAyBl6B,EAAmBqC,EAAYqsB,GACpE,MAAMpiB,EAAU0tB,GAA+B33B,EAAIqsB,GACnD,OAAOniB,YAAyCD,EAAStM,GAGtD,SAASm6B,GAAgC55B,EAA2C8B,EAAYoyB,EAA8B1F,GAEjI,OADc1B,EAAWhrB,GAAIuJ,eAAerL,GAC/BsL,qCAAqC,wBAAwB,EAAOsjB,KAAiB,OAAQ,CAACrjB,YAAa,OAAQC,aAAc,cAAe,CAAC0oB,aAAcA,EAAc1F,aAAcA,IAGrM,SAASqL,GAA0Bp6B,EAAmBqC,EAAYoyB,EAA8B1F,GACnG,MAAMziB,EAAU6tB,GAAgCn6B,EAAQO,oBAAqB8B,EAAIoyB,EAAc1F,GAC/F,OAAOxiB,YAA4BD,EAAStM,K,wHC9pB7C,MAAMq6B,EAGTv7B,YAAYw7B,GAIL,KAAAp7B,YAAc,IAAM,2BAEpB,KAAAC,mBAAqB,IAAM,2BAE3B,KAAAC,cAAgB,IAAiB,OAPpCC,KAAKi7B,aAAeA,GAsDrB,MAAMC,EAAsCn4B,YAAwC,CACvFC,GAAI,kFACJC,OA5BGzC,eAAyCE,EAAiCgL,GAC7E,IACI,MAAMyvB,EAA6B,CAC/B/sB,GAAI,GACJoE,KAAM9R,EAAMu6B,aACZG,qBAAsBxpB,kBAAgBkM,eAEpCud,QAA2BC,iCAAuB,CACpDr6B,cAAeyK,GAChByvB,GACH,GAAIE,GAAgD,KAA1BA,EAAmBjtB,GACzC,OAAOitB,EAGX,MADA3vB,EAAIf,UAAUa,MAAM,iCACd,IAAIjL,MAAM,iCAElB,MAAOiL,GAEL,MADAE,EAAIf,UAAUa,MAAM,oCAAqCA,GACnDA,IAWV9K,MA1CoC,CAACN,EAAiC66B,KACtE,MAAM,eAAEr7B,GAAmBQ,EAC3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,+DAEpB,OAAO,IAAIy6B,EAAyBC,MAwCzBC,O,4GCvEVK,E,srBAKU/6B,eAAeg7B,EAAsB9vB,GAChD,IAAIkC,EACJ,MACME,EADqBpC,EAAI9L,eAAeiO,QAAQE,gBACT9G,MAAM,KACnD,IAEI2G,QAoDDpN,eAAiCsN,EAA2BpC,GAC/D,GAAIoC,GAA8C,IAA3BA,EAAgBvD,SAK9BmB,EAAI9L,eAAeoO,KAAKC,iBAAmBH,EAAgB,KAAOytB,EAAgBE,OACjF/vB,EAAI9L,eAAeoO,KAAKC,iBAAmBH,EAAgB,KAAOytB,EAAgBG,MAAO,CAC3F,MAAMxtB,QAAiBC,oBAAU,CAAElN,cAAeyK,EAAKe,YAAa,QAAUqB,EAAgB,IAE9F,GAAII,GAAYA,EAASE,GAErB,OADA1C,EAAI9L,eAAeiO,QAAQ8tB,cAAcztB,EAAUxC,EAAI9L,eAAeoO,KAAKC,iBACpEC,EAKnB,OArEiB0tB,CAAkB9tB,EAAiBpC,GAChD,MAAMmwB,IAAsBjuB,GAAQA,EAAKQ,GAGnCR,GAAQA,EAAKQ,KACfR,QAAakuB,EAAoBpwB,IAMrC,MAAMqwB,QAyEPv7B,eAA6BsN,EAA2BkuB,EAA+BtwB,GAC1F,GAAIA,EAAI9L,eAAeoO,KAAKC,iBAAmBH,GAA8C,IAA3BA,EAAgBvD,QAAgBuD,EAAgB,KAAOytB,EAAgBG,KAAM,CAC3I,MAAMO,QAAwB9tB,oBAAU,CAAElN,cAAeyK,EAAKe,YAAa,QAAUqB,EAAgB,IAErG,GAAImuB,IAAoBD,EAAa,CACjC,MAAME,QAiJX17B,eAAyB22B,EAAgBzrB,GAC5C,MAAMywB,QAAsB9N,sBACxB,CAAEptB,cAAeyK,GACjB,CACI0C,GAAI+oB,IAGZ,KAAMgF,aAAyB57B,QAAU47B,GAAiBA,EAAc/tB,GACpE,OAAO+tB,EAEX,MAAa,GA3JiBC,CAAUH,EAAgB7tB,GAAI1C,GACpD,GAAIwwB,GAAWA,EAAQ9tB,GAEnB,OADA1C,EAAI9L,eAAeiO,QAAQ8tB,cAAcO,EAASxwB,EAAI9L,eAAeoO,KAAKC,iBACnEiuB,EAIf,GAAID,GAAmBA,EAAgB7tB,IAAM4tB,EAAa,CACtD,MAAMK,QA2CX77B,eAA4B87B,EAAkBC,EAAuB7wB,GACxE,IAAI8wB,EACJ,MAAM3R,EAAwB,GACxB4R,EAA8B,GACpC,IAAIC,EACJ,MAAMC,EAAuBjxB,EAAI9L,eAAekX,QAC1C8lB,EAAyB,CAC3B,oDACA,kEACA,mEAEJ,GAAIL,EAAgBnR,QAAS,CACzB,GAAIkR,EAAWhuB,WAAaguB,EAAWhuB,UAAU/D,OAAS,EACtD,IAAK,MAAMsyB,KAAYP,EAAWhuB,UAAW,CACzC,IAAIwuB,EAEJ,GAAID,EAASE,eACTD,EAAcE,EAAkBH,OAC7B,CAAC,IAAD,EACHC,EAAc,GACd,MAAMG,QAAsBC,gCAAsB,CAAEj8B,cAAeyK,GAAOkxB,GAG1E,IAF+BK,SAAA,UAAAA,EACzB1vB,KAAM8W,GAAqD,oEAAtBA,EAAa7R,aADzB,eACsGmS,aAAa,EACtH,CAAC,IAAD,EACxB,MAAMwY,QAAoCC,qDAA2C,CAAEn8B,cAAeyK,IACtGgxB,EAAoBG,EAASQ,gBAAT,UAA0BF,EAA4BG,+BAAtD,aAA0B,EAAqD/vB,KAAMgwB,GAAyBA,IAAiBV,EAASQ,oBAE9Hx7B,IAA1Bg7B,EAASQ,cAA8BX,IACvCI,EAAYO,aAAeR,EAASQ,aACpCP,EAAYU,mBAAqBX,EAASW,mBAC1CV,EAAYW,gBAAkBZ,EAASY,gBACvCX,EAAYY,YAAcb,EAASa,kBAE/B9V,IAAQiV,EAASQ,eAAiBR,EAASQ,gBAAiBV,aAA1B,EAA0BA,EAAsBgB,0BAC1Fb,EAAYO,aAAeV,aAA3B,EAA2BA,EAAsBgB,uBACjDb,EAAYU,mBAAqBX,EAASW,mBAC1CV,EAAYW,gBAAkBZ,EAASY,gBACvCX,EAAYY,YAAcb,EAASa,aAEvCZ,EAAYp3B,UAAYm3B,EAASn3B,UACjCo3B,EAAY3Z,SAAW0Z,EAAS1Z,SAChC2Z,EAAYc,oBAAsBf,EAASe,oBAC3Cd,EAAYe,YAAchB,EAASgB,YACnCf,EAAYgB,gBAAkBjB,EAASiB,gBACvChB,EAAYiB,gBAAkBlB,EAASkB,gBACvCjB,EAAYz6B,UAAYw6B,EAASx6B,UAGrCwoB,EAAU3gB,KAAV,KAAoB4yB,IAChBD,EAASmB,QACTvB,EAAkBvyB,KAAK2yB,EAASmB,QAK5C,GAAInT,EAAUtgB,OAAS,EACnB,IACIiyB,QAAoBrR,4BAAkB,CAAElqB,cAAeyK,GAAO6wB,EAAgBnuB,GAAIyc,EAAW0R,EAAgBnR,SAEzGqR,EAAkBlyB,OAAS,IAC3B+xB,QAAmBxJ,+BAAqB,CAAE7xB,cAAeyK,GAAO4wB,EAAWluB,GAAIquB,IAErF,MAAOjxB,GAGL,OAFAE,EAAIf,UAAUa,MAAM,8CACpBE,EAAIf,UAAUgI,UAAUnH,GACjB+wB,EAKf,GAAID,EAAW2B,SAAW3B,EAAW2B,QAAQ1zB,OAAS,EAAG,CACrD,MAAM2zB,EAAU5B,EAAW2B,QAAQx8B,IAAK08B,GAC7BA,EAAOC,MAGlB,IACI5B,QAAoBlD,0BAAgB,CAAEr4B,cAAeyK,GAAO6wB,EAAgBnuB,GAAI8vB,GAAS,GAC3F,MAAO1yB,GAGL,OAFAE,EAAIf,UAAUa,MAAM,kDACpBE,EAAIf,UAAUgI,UAAUnH,GACjB+wB,IAKnB,OAAOC,GAAeD,EAhIW8B,CAAapC,EAAiBD,EAAatwB,GAGpE,KAAM2wB,aAAsB97B,QAAU87B,EAAWjuB,GAE7C,OADA1C,EAAI9L,eAAeiO,QAAQ8tB,cAAcU,EAAY3wB,EAAI9L,eAAeoO,KAAKC,iBACtEouB,GAKnB,OAhG2BiC,CAAcxwB,EAAiBF,EAAMlC,GAS5D,GARIqwB,IACAnuB,EAAOmuB,GAILnuB,GAAQA,EAAKQ,KACfR,QAAa2wB,EAAc7yB,KAE1BmwB,GAAqBnwB,EAAI9L,eAAeoO,KAAKC,iBAAmBL,IAASA,EAAK4wB,cAAe,CAC9F,MAAMC,QAAaC,uCAA6B,CAAEz9B,cAAeyK,EAAKxK,oBAAqB,IAAM,MAC7Fu9B,GAAQA,EAAKl0B,OAAS,IAEtBqD,QAAaygB,sBACT,CAAEptB,cAAeyK,GACjB,CACI0C,GAAIR,EAAKQ,GACTowB,cAAeC,EAAK,GAAGE,eAMzC,MAAOnzB,GACLE,EAAIf,UAAUa,MAAd,4CAAyDA,IACzDoC,QAAa2wB,EAAc7yB,GAE/B,OAAOkC,EAGJpN,eAAe+9B,EAAc7yB,GAChC,MAAMwwB,QAAgBhO,0BAAgB,CAAEjtB,cAAeyK,GAAa,IACpE,GAAIwwB,GAAWA,EAAQ9tB,GAGnB,OAFA1C,EAAI9L,eAAeiO,QAAQ8tB,cAAcO,EAASxwB,EAAI9L,eAAeoO,KAAKC,iBAEnEiuB,EA0BR17B,eAAes7B,EAAoBpwB,GACtC,GAAIA,EAAI9L,eAAeoO,KAAKC,gBAAiB,CACzC,MAAM2wB,QAmLPp+B,eAA2BkL,GAqB9B,OAAOqjB,sBAAY,CAAE9tB,cAAeyK,EAAKxK,oBAfQ,CAC7CkK,OAAQ,CACJC,IAAK,EACLmf,KAAM,GAEVqU,QAAS,CACLC,QAAS,CACL,CACIC,WAAY,mBACZC,cAAc,OAdiB,CAC3CC,kBAAkB,EAClBC,cAAe,IAtLSC,CAAYzzB,GACpC,GAAIkzB,GAAaA,EAAUr0B,OAAS,EAEhC,OADAmB,EAAI9L,eAAeiO,QAAQ8tB,cAAciD,EAAU,GAAIlzB,EAAI9L,eAAeoO,KAAKC,iBACxE2wB,EAAU,IAqC7B,SAAS5B,EAAkBH,GACvB,MAAO,CACHQ,aAAcR,EAASQ,aACvBh7B,UAAWw6B,EAASx6B,UACpBw7B,YAAahB,EAASgB,YACtBuB,qBAAsBvC,EAASuC,sBAAwB,EACvDhkB,OAAQyhB,EAASzhB,OACjB1V,UAAWm3B,EAASn3B,UACpByd,SAAU0Z,EAAS1Z,SACnBkc,MAAOxC,EAASwC,MAChBC,SAAUzC,EAASyC,SACnBC,gBAAiB1C,EAAS0C,gBAC1BtU,WAAY,GACZC,oBAAqB2R,EAAS3R,oBAC9BsU,gBAAgB,EAChBzC,gBAAgB,EAChBa,oBAAqBf,EAASe,sBA7ItC,SAAKrC,GACDA,WACAA,WAFJ,CAAKA,MAAe,M,2TCUb,MAAMkE,EAMThgC,YAAmBoE,GAGf,GALa,KAAA67B,UAAoB,cAkB9B,KAAA5/B,mBAAqB,IAAc,qCAMnC,KAAAD,YAAc,IAAcG,KAAK0/B,UAMjC,KAAA3/B,cAAgB,IAAiB,cA3BpCC,KAAK6D,OAASA,EAEV7D,KAAK6D,OAAO87B,cAAgB9+B,kBAAgBQ,YAAYrB,KAAK6D,OAAO87B,cACpE,IAAK,MAAMC,KAAmB5/B,KAAK6D,OAAO87B,aAClCC,EAAgBj8B,SAChB3D,KAAK0/B,UAAL,UAAqB1/B,KAAK0/B,UAA1B,YAAuCE,EAAgBj8B,OAAOR,cA8B3E,MAAM08B,EAAez/B,GACjB,IAAIq/B,EAAiBr/B,EAAUyD,QAS7Bi8B,EAA8Bt/B,MAAOE,EAAyBC,KACvE,MAAM,OAAEkD,GAAWnD,EACbmQ,EAAiC,GACnChN,EAAO87B,cACP97B,EAAO87B,aAAal+B,IAAKm+B,GAAuC/uB,EAAQ3G,KAAK,CAAEkR,OAAQwkB,EAAgBj8B,UAE3G,MAAMgI,EAA6C,GAInD,OAHAA,EAAoBb,QAAU,CAAEC,UAAWpK,EAAQf,eAAeU,YAAYX,UAAW0C,UAAWnC,YAAaS,EAAQf,iBACzH+L,EAAoBT,mBAAoB,EACxCS,EAAoBo0B,QAAUlvB,QACjB9P,sBAAoBoK,sBAAsB,CAAElK,cAAeN,GAAWgL,IAU1Eq0B,EAAmBj9B,YAA2B,CACvDC,GAAI,oEACJC,OAAQ68B,EACRp/B,MAAOm/B,IAGIG,a,uwBC1DT,MAAOC,EAqBTxgC,YACImE,EACAtD,EACAY,EACAulB,EACA/H,EACAtN,EACA8uB,EACAC,EACAh6B,EACAlG,GAcG,KAAAJ,YAAc,KACjB,MAAMqB,EAAsB,EAAH,KAClBlB,KAAKkB,oBAAoBkK,QACzB+H,YAAKnT,KAAKkB,oBAAoB29B,UAWrC,OARiB54B,wBAAa,UAEvBjG,KAAK4D,SAFkB,YAEN5D,KAAKmG,OAFC,YAESnG,KAAK0e,UAAY1e,KAAKoR,WAF/B,YAE6CpR,KAAKC,UAFlD,YAE+DD,KAAKymB,SAAShlB,IACnG2+B,GAAW,GAAJ,OAAOA,EAAQC,iBAAmBD,EAAQE,sBAAwB,KAAOF,EAAQG,uBAAyB,IAA1G,MAHe,YAIrBC,0BAAgBt/B,IACrBlB,KAAKM,YACLN,KAAKmG,SAKN,KAAArG,mBAAqB,IAAM,yBAE3B,KAAAC,cAAgB,IAAiB,UA/BpCC,KAAK4D,SAAWA,EAChB5D,KAAKM,YAAcA,EACnBN,KAAK0e,SAAWA,EAChB1e,KAAKoR,WAAaA,EAClBpR,KAAKkB,oBAAsBA,EAC3BlB,KAAKymB,SAAWA,EAChBzmB,KAAKkgC,kBAAoBA,EACzBlgC,KAAKmgC,qBAAuBA,EAC5BngC,KAAKmG,OAASA,EACdnG,KAAKC,UAAYA,UAAa,GAgD/B,MAAMwgC,EAA4B,CACrCj6B,EACAk6B,KAEA,MAAM98B,EACyC,aAA3C4C,EAAK5G,eAAe8D,UAAUE,UAA4B4C,EAAK5G,eAAe6D,OAAS+C,EAAK5G,eAAe6D,MAAM2G,WAC3G,WACA,SAEJlJ,EAAsBC,2BAAyB8c,cAAczX,GAAM0X,oBACnEyiB,EAAgBC,YAAuBp6B,EAAK5G,gBAC5CsgC,MAxHoB9/B,EAwHqBoG,KAvH9BpG,EAAUyD,aAAiDhC,IAAvCzB,EAAUyD,OAAOq8B,oBAA0E,IAAvC9/B,EAAUyD,OAAOq8B,mBAD9G,IAA8B9/B,EAyH1B,MAAM+/B,EA7GV,SAA+B//B,GAA+D,MAC1F,QAAQ,UAACA,EAAUyD,cAAX,QAAC,EAAkBg9B,oBA4GEC,CAAsBt6B,GAC7CvG,EAAYC,YAAasG,EAAK5G,gBAMpC,GAJI4G,EAAK5G,eAAe6D,OAAS+C,EAAK5G,eAAe6D,MAAMs9B,UACvD7/B,EAAoB29B,QAAU,CAAEC,QAAuB5uB,KAAK8wB,MAAMC,mBAAmBz6B,EAAK5G,eAAe6D,MAAMs9B,YAGlG,aAAbn9B,EACA,OAAO,IAAI88B,EACP98B,EACA4C,EAAK5G,eAAeU,YACpBY,EACAy/B,IACEn6B,EAAK5G,eAAe8D,UAAUC,QAAW6C,EAAK5G,eAAe6D,OAAS+C,EAAK5G,eAAe6D,MAAM2G,YAAe,QACjHvI,EACAq+B,EACAC,EACA35B,EAAK5G,eAAeuG,OACpBlG,GAED,GAAiB,WAAb2D,GAAyB4C,EAAK5G,eAAe6D,OAAS+C,EAAK5G,eAAe6D,MAAM4N,EACvF,OAAO,IAAIqvB,EACP98B,EACA4C,EAAK5G,eAAeU,YACpBY,EACAy/B,OACA9+B,EACA2E,EAAK5G,eAAe6D,MAAM4N,EAC1B6uB,EACAC,EACA35B,EAAK5G,eAAeuG,OACpBlG,GAED,GACU,WAAb2D,GACA4C,EAAK5G,eAAe6D,OACpB+C,EAAK5G,eAAe6D,MAAM/D,WAC1B8G,EAAK5G,eAAe6D,MAAM2O,eAE1B,OAAO,IAAIsuB,EACP98B,EACA4C,EAAK5G,eAAeU,YACpBY,EACAy/B,OACA9+B,EACAqO,KAAKC,UAAU,CAAEzK,UAAWc,EAAK5G,eAAe6D,MAAM/D,UAAWwhC,eAAgB16B,EAAK5G,eAAe6D,MAAM2O,iBAC3G8tB,EACAC,EACA35B,EAAK5G,eAAeuG,OACpBlG,GAIR,MAAM,IAAIM,MAAM,0D,oCCpMpB,IAAIsT,EAAS,EAAQ,QACjB3Q,EAAc,EAAQ,QACtBi+B,EAAc,EAAQ,QACtBC,EAAsB,EAAQ,QAC9BC,EAAe,EAAQ,QACvBC,EAA8B,EAAQ,QACtCC,EAAiB,EAAQ,QACzBpiB,EAAQ,EAAQ,QAChBqiB,EAAa,EAAQ,QACrBvX,EAAsB,EAAQ,QAC9BwX,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBhqB,EAAiB,EAAQ,QACzBiqB,EAAsB,EAAQ,QAA8C9tB,EAC5E+tB,EAAiB,EAAQ,QAAuC/tB,EAChEguB,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrBC,EAAiB,EAAQ,QACzBC,EAAsB,EAAQ,QAE9BC,EAAuBd,EAAae,OACpCC,EAA6BhB,EAAaiB,aAC1Cha,EAAmB4Z,EAAoB/4B,IACvCo5B,EAAmBL,EAAoB95B,IAMvCo6B,EAAoB3uB,EAAmB,YACvC4uB,EAAeD,EACfE,EAAuBD,GAAgBA,EAAsB,UAC7DE,EAAY9uB,EAAgB,SAC5B+uB,EAAoBD,GAAaA,EAAmB,UACpDE,EAAkBhqB,OAAOX,UACzBtL,EAAQiH,EAAOjH,MACfk2B,EAAajvB,EAAOivB,WACpBC,EAAO7/B,EAAY6+B,GACnBiB,EAAU9/B,EAAY,GAAG8/B,SAEzBC,EAActB,EAAQuB,KACtBC,EAAgBxB,EAAQyB,OAExBC,EAAW,SAAUC,GACvB,MAAO,CAAU,IAATA,IAGNC,EAAY,SAAUD,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,MAGnCE,EAAY,SAAUF,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,IAAMA,GAAU,GAAK,IAAMA,GAAU,GAAK,MAG7EG,EAAc,SAAUC,GAC1B,OAAOA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,EAAIA,EAAO,IAGjEC,EAAc,SAAUL,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BM,EAAc,SAAUN,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BO,EAAY,SAAUC,EAAa13B,GACrC01B,EAAegC,EAAqB,UAAG13B,EAAK,CAAEjD,IAAK,WAAc,OAAOmf,EAAiBtoB,MAAMoM,OAG7FjD,EAAM,SAAUuiB,EAAMvN,EAAO4L,EAAOga,GACtC,IAAIC,EAAWtC,EAAQ3X,GACnBka,EAAQ3b,EAAiBoD,GAC7B,GAAIsY,EAAW7lB,EAAQ8lB,EAAMC,WAAY,MAAMpB,EA9C/B,eA+ChB,IAAIqB,EAAQ7b,EAAiB2b,EAAMP,QAAQS,MACvCC,EAAQJ,EAAWC,EAAMI,WACzBnB,EAAOlB,EAAWmC,EAAOC,EAAOA,EAAQjmB,GAC5C,OAAO4lB,EAAiBb,EAAOF,EAAQE,IAGrC96B,EAAM,SAAUsjB,EAAMvN,EAAO4L,EAAOua,EAAYp7B,EAAO66B,GACzD,IAAIC,EAAWtC,EAAQ3X,GACnBka,EAAQ3b,EAAiBoD,GAC7B,GAAIsY,EAAW7lB,EAAQ8lB,EAAMC,WAAY,MAAMpB,EAxD/B,eA4DhB,IAHA,IAAIqB,EAAQ7b,EAAiB2b,EAAMP,QAAQS,MACvCC,EAAQJ,EAAWC,EAAMI,WACzBnB,EAAOoB,GAAYp7B,GACdwH,EAAI,EAAGA,EAAIyN,EAAOzN,IAAKyzB,EAAMC,EAAQ1zB,GAAKwyB,EAAKa,EAAiBrzB,EAAIyN,EAAQzN,EAAI,IAG3F,GAAK0wB,EA8FE,CACL,IAAImD,EAA8BpC,GAlKjB,gBAkKyCK,EAAkB5uB,KAE5E,GAAKuL,GAAM,WACTqjB,EAAkB,OACbrjB,GAAM,WACX,IAAIqjB,GAAmB,QACnBrjB,GAAM,WAIV,OAHA,IAAIqjB,EACJ,IAAIA,EAAkB,KACtB,IAAIA,EAAkBgC,KACfD,IAAgClC,KAiB9BkC,GAA+BlC,GACxCf,EAA4BkB,EAAmB,OA9LhC,mBA6Kb,EAEFC,EAAe,SAAqBl4B,GAElC,OADAi3B,EAAWxhC,KAAM0iC,GACV,IAAIF,EAAkBd,EAAQn3B,MAGjB,UAAIm4B,EAE1B,IAAK,IAA0Dt2B,EAAtD8V,EAAO2f,EAAoBW,GAAoBiC,EAAI,EAAQviB,EAAK3X,OAASk6B,IACzEr4B,EAAM8V,EAAKuiB,QAAShC,GACzBnB,EAA4BmB,EAAcr2B,EAAKo2B,EAAkBp2B,IAIrEs2B,EAAqBjjC,YAAcgjC,EAMjC7qB,GAAkBgqB,EAAegB,KAAuBC,GAC1DjrB,EAAegrB,EAAmBC,GAIpC,IAAI6B,EAAW,IAAI/B,EAAU,IAAIF,EAAa,IAC1CkC,GAAWzhC,EAAY0/B,EAAkBgC,SAC7CF,EAASE,QAAQ,EAAG,YACpBF,EAASE,QAAQ,EAAG,aAChBF,EAASG,QAAQ,IAAOH,EAASG,QAAQ,IAAItD,EAAeqB,EAAmB,CACjFgC,QAAS,SAAiBP,EAAYn7B,GACpCy7B,GAAS3kC,KAAMqkC,EAAYn7B,GAAS,IAAM,KAE5C47B,SAAU,SAAkBT,EAAYn7B,GACtCy7B,GAAS3kC,KAAMqkC,EAAYn7B,GAAS,IAAM,MAE3C,CAAE4K,QAAQ,SApIb4uB,GAVAD,EAAe,SAAqBl4B,GAClCi3B,EAAWxhC,KAAM0iC,GACjB,IAAIwB,EAAaxC,EAAQn3B,GACzBg4B,EAAiBviC,KAAM,CACrBmkC,MAAOpB,EAAKn2B,EAAMs3B,GAAa,GAC/BA,WAAYA,IAET/C,IAAanhC,KAAKkkC,WAAaA,KAGO,UAsB7CtB,GApBAD,EAAY,SAAkBe,EAAQW,EAAYH,GAChD1C,EAAWxhC,KAAM4iC,GACjBpB,EAAWkC,EAAQhB,GACnB,IAAIqC,EAAezc,EAAiBob,GAAQQ,WACxCc,EAAS/a,EAAoBoa,GACjC,GAAIW,EAAS,GAAKA,EAASD,EAAc,MAAMjC,EAAW,gBAE1D,GAAIkC,GADJd,OAA4BriC,IAAfqiC,EAA2Ba,EAAeC,EAASvD,EAASyC,IAC/Ca,EAAc,MAAMjC,EApF/B,gBAqFfP,EAAiBviC,KAAM,CACrB0jC,OAAQA,EACRQ,WAAYA,EACZG,WAAYW,IAET7D,IACHnhC,KAAK0jC,OAASA,EACd1jC,KAAKkkC,WAAaA,EAClBlkC,KAAKqkC,WAAaW,KAIiB,UAEnC7D,IACF0C,EAAUpB,EAAc,cACxBoB,EAAUlB,EAAW,UACrBkB,EAAUlB,EAAW,cACrBkB,EAAUlB,EAAW,eAGvBpB,EAAeqB,EAAmB,CAChCiC,QAAS,SAAiBR,GACxB,OAAOl7B,EAAInJ,KAAM,EAAGqkC,GAAY,IAAM,IAAM,IAE9CY,SAAU,SAAkBZ,GAC1B,OAAOl7B,EAAInJ,KAAM,EAAGqkC,GAAY,IAElCa,SAAU,SAAkBb,GAC1B,IAAIF,EAAQh7B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,GAC3E,OAAQsiC,EAAM,IAAM,EAAIA,EAAM,KAAO,IAAM,IAE7CgB,UAAW,SAAmBd,GAC5B,IAAIF,EAAQh7B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,GAC3E,OAAOsiC,EAAM,IAAM,EAAIA,EAAM,IAE/BiB,SAAU,SAAkBf,GAC1B,OAAOZ,EAAYt6B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,KAEpFwjC,UAAW,SAAmBhB,GAC5B,OAAOZ,EAAYt6B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,MAAgB,GAEpGyjC,WAAY,SAAoBjB,GAC9B,OAAOlB,EAAch6B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,GAAY,KAElG0jC,WAAY,SAAoBlB,GAC9B,OAAOlB,EAAch6B,EAAInJ,KAAM,EAAGqkC,EAAYra,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,GAAY,KAElG+iC,QAAS,SAAiBP,EAAYn7B,GACpCd,EAAIpI,KAAM,EAAGqkC,EAAYhB,EAAUn6B,IAErC47B,SAAU,SAAkBT,EAAYn7B,GACtCd,EAAIpI,KAAM,EAAGqkC,EAAYhB,EAAUn6B,IAErCs8B,SAAU,SAAkBnB,EAAYn7B,GACtCd,EAAIpI,KAAM,EAAGqkC,EAAYd,EAAWr6B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,IAEnF4jC,UAAW,SAAmBpB,EAAYn7B,GACxCd,EAAIpI,KAAM,EAAGqkC,EAAYd,EAAWr6B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,IAEnF6jC,SAAU,SAAkBrB,EAAYn7B,GACtCd,EAAIpI,KAAM,EAAGqkC,EAAYb,EAAWt6B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,IAEnF8jC,UAAW,SAAmBtB,EAAYn7B,GACxCd,EAAIpI,KAAM,EAAGqkC,EAAYb,EAAWt6B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,IAEnF+jC,WAAY,SAAoBvB,EAAYn7B,GAC1Cd,EAAIpI,KAAM,EAAGqkC,EAAYV,EAAaz6B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,IAErFgkC,WAAY,SAAoBxB,EAAYn7B,GAC1Cd,EAAIpI,KAAM,EAAGqkC,EAAYT,EAAa16B,EAAO8gB,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,MAuDzFogC,EAAeQ,EArNI,eAsNnBR,EAAeU,EArNC,YAuNhBr/B,EAAOC,QAAU,CACfuiC,YAAarD,EACbsD,SAAUpD,I,oCCnPZ,EAAQ,QACR,IAAIpsB,EAAI,EAAQ,QACZ1C,EAAS,EAAQ,QACjBkF,EAAO,EAAQ,QACf7V,EAAc,EAAQ,QACtBi+B,EAAc,EAAQ,QACtB6E,EAAiB,EAAQ,QACzBC,EAAgB,EAAQ,QACxB1E,EAAiB,EAAQ,QACzBU,EAAiB,EAAQ,QACzBiE,EAA4B,EAAQ,QACpChE,EAAsB,EAAQ,QAC9BV,EAAa,EAAQ,QACrBnuB,EAAa,EAAQ,QACrB8yB,EAAS,EAAQ,QACjBC,EAAO,EAAQ,QACf5uB,EAAU,EAAQ,QAClBwK,EAAW,EAAQ,QACnBzK,EAAW,EAAQ,QACnB8uB,EAAY,EAAQ,QACpBnlB,EAAS,EAAQ,QACjBolB,EAA2B,EAAQ,QACnCC,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5BC,EAA0B,EAAQ,QAClC/uB,EAAkB,EAAQ,QAC1BgvB,EAAY,EAAQ,QAEpBlnB,EAAW9H,EAAgB,YAG3B6qB,EAAmBL,EAAoB95B,IACvCu+B,EAAyBzE,EAAoB0E,UAHzB,mBAIpBC,EAA2B3E,EAAoB0E,UAHlBE,2BAK7BluB,EAA2BC,OAAOD,yBAGlCmuB,EAAiB,SAAUnzB,GAC7B,IAAKutB,EAAa,OAAOttB,EAAOD,GAChC,IAAIsF,EAAaN,EAAyB/E,EAAQD,GAClD,OAAOsF,GAAcA,EAAWhQ,OAG9B89B,EAAcD,EAAe,SAC7BE,EAAgBF,EAAe,WAC/BG,EAAUH,EAAe,WACzBI,EAAmBF,GAAiBA,EAAc/uB,UAClDkvB,EAAmBF,GAAWA,EAAQhvB,UACtCyQ,EAAS9U,EAAO8U,OAChB0e,EAAYxzB,EAAOwzB,UACnBpG,EAAqBptB,EAAOotB,mBAC5B/7B,EAAqB2O,EAAO3O,mBAC5BiX,EAASjZ,EAAY,GAAGiZ,QACxBtV,EAAO3D,EAAY,GAAG2D,MACtBqD,EAAOhH,EAAY,GAAGgH,MACtBvB,EAAUzF,EAAY,GAAGyF,SACzB2+B,EAAQpkC,EAAY,GAAGokC,OACvBC,EAASrkC,EAAY,GAAGqkC,QACxBtgC,EAAQ/D,EAAY,GAAG+D,OACvB7D,EAAcF,EAAY,GAAGG,OAE7BmkC,EAAO,MACPC,EAAY76B,MAAM,GAElB86B,GAAkB,SAAUvD,GAC9B,OAAOsD,EAAUtD,EAAQ,KAAOsD,EAAUtD,EAAQ,GAAKxb,EAAO,qBAAuBwb,EAAQ,KAAM,QAGjGwD,GAAgB,SAAUC,GAC5B,IACE,OAAO3G,EAAmB2G,GAC1B,MAAOp8B,GACP,OAAOo8B,IAIPC,GAAc,SAAUrkC,GAC1B,IAAIuN,EAASpI,EAAQnF,EAAIgkC,EAAM,KAC3BrD,EAAQ,EACZ,IACE,OAAOlD,EAAmBlwB,GAC1B,MAAOvF,GACP,KAAO24B,GACLpzB,EAASpI,EAAQoI,EAAQ22B,GAAgBvD,KAAUwD,IAErD,OAAO52B,IAIPxD,GAAO,eAEPu6B,GAAe,CACjB,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGLC,GAAW,SAAUhrB,GACvB,OAAO+qB,GAAa/qB,IAGlBirB,GAAY,SAAUxkC,GACxB,OAAOmF,EAAQzD,EAAmB1B,GAAK+J,GAAMw6B,KAG3CE,GAA0B/B,GAA0B,SAAkB1Y,EAAQ0a,GAChF3F,EAAiBviC,KAAM,CACrBmoC,KAjF6BrB,0BAkF7BrnB,SAAU8mB,EAAYI,EAAuBnZ,GAAQpG,SACrD8gB,KAAMA,MAEP,YAAY,WACb,IAAIx/B,EAAQm+B,EAAyB7mC,MACjCkoC,EAAOx/B,EAAMw/B,KACbE,EAAO1/B,EAAM+W,SAAS4oB,OACtBC,EAAQF,EAAKl/B,MAGf,OAFGk/B,EAAKG,OACRH,EAAKl/B,MAAiB,SAATg/B,EAAkBI,EAAMl8B,IAAe,WAAT87B,EAAoBI,EAAMp/B,MAAQ,CAACo/B,EAAMl8B,IAAKk8B,EAAMp/B,QACxFk/B,KACR,GAECI,GAAuB,SAAUC,GACnCzoC,KAAKonB,QAAU,GACfpnB,KAAKuU,IAAM,UAEE1S,IAAT4mC,IACElxB,EAASkxB,GAAOzoC,KAAK0oC,YAAYD,GAChCzoC,KAAK2oC,WAA0B,iBAARF,EAAuC,MAApBtsB,EAAOssB,EAAM,GAAarlC,EAAYqlC,EAAM,GAAKA,EAAOpC,EAAUoC,MAIrHD,GAAqBtwB,UAAY,CAC/BiwB,KA3GsB,kBA4GtBS,QAAS,SAAUr0B,GACjBvU,KAAKuU,IAAMA,EACXvU,KAAKouB,UAEPsa,YAAa,SAAUtf,GACrB,IACI3J,EAAU4oB,EAAMD,EAAMS,EAAeC,EAAWC,EAAOC,EADvDC,EAAiBzC,EAAkBpd,GAGvC,GAAI6f,EAGF,IADAZ,GADA5oB,EAAW8mB,EAAYnd,EAAQ6f,IACfZ,OACPD,EAAOrvB,EAAKsvB,EAAM5oB,IAAW8oB,MAAM,CAG1C,GADAO,GADAD,EAAgBtC,EAAYvkB,EAASomB,EAAKl/B,SAChBm/B,MAEvBU,EAAQhwB,EAAK+vB,EAAWD,IAAgBN,OACxCS,EAASjwB,EAAK+vB,EAAWD,IAAgBN,OACzCxvB,EAAK+vB,EAAWD,GAAeN,KAChC,MAAMlB,EAAU,mCAClBn9B,EAAKlK,KAAKonB,QAAS,CAAEhb,IAAKi6B,EAAU0C,EAAM7/B,OAAQA,MAAOm9B,EAAU2C,EAAO9/B,cAEvE,IAAK,IAAIkD,KAAOgd,EAAY+c,EAAO/c,EAAQhd,IAChDlC,EAAKlK,KAAKonB,QAAS,CAAEhb,IAAKA,EAAKlD,MAAOm9B,EAAUjd,EAAOhd,OAG3Du8B,WAAY,SAAUllC,GACpB,GAAIA,EAIF,IAHA,IAEImG,EAAW0+B,EAFXY,EAAajiC,EAAMxD,EAAO,KAC1BsmB,EAAQ,EAELA,EAAQmf,EAAW3+B,SACxBX,EAAYs/B,EAAWnf,MACTxf,SACZ+9B,EAAQrhC,EAAM2C,EAAW,KACzBM,EAAKlK,KAAKonB,QAAS,CACjBhb,IAAKy7B,GAAYP,EAAMgB,IACvBp/B,MAAO2+B,GAAYhhC,EAAKyhC,EAAO,UAMzCN,UAAW,WAKT,IAJA,IAGIM,EAHAlhB,EAAUpnB,KAAKonB,QACfrW,EAAS,GACTgZ,EAAQ,EAELA,EAAQ3C,EAAQ7c,QACrB+9B,EAAQlhB,EAAQ2C,KAChB7f,EAAK6G,EAAQi3B,GAAUM,EAAMl8B,KAAO,IAAM47B,GAAUM,EAAMp/B,QAC1D,OAAOrC,EAAKkK,EAAQ,MAExBqd,OAAQ,WACNpuB,KAAKonB,QAAQ7c,OAAS,EACtBvK,KAAK2oC,WAAW3oC,KAAKuU,IAAI9Q,QAE3B0lC,UAAW,WACLnpC,KAAKuU,KAAKvU,KAAKuU,IAAI6Z,WAM3B,IAAIgb,GAA6B,WAC/B5H,EAAWxhC,KAAMqpC,IACjB,IAAIZ,EAAOze,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,EACjD0gC,EAAiBviC,KAAM,IAAIwoC,GAAqBC,KAG9CY,GAA2BD,GAA2BlxB,UAwI1D,GAtIAqpB,EAAe8H,GAA0B,CAGvCC,OAAQ,SAAgB11B,EAAM1K,GAC5Bu9B,EAAwBzc,UAAUzf,OAAQ,GAC1C,IAAI7B,EAAQi+B,EAAuB3mC,MACnCkK,EAAKxB,EAAM0e,QAAS,CAAEhb,IAAKi6B,EAAUzyB,GAAO1K,MAAOm9B,EAAUn9B,KAC7DR,EAAMygC,aAIR,OAAU,SAAUv1B,GAClB6yB,EAAwBzc,UAAUzf,OAAQ,GAK1C,IAJA,IAAI7B,EAAQi+B,EAAuB3mC,MAC/BonB,EAAU1e,EAAM0e,QAChBhb,EAAMi6B,EAAUzyB,GAChBmW,EAAQ,EACLA,EAAQ3C,EAAQ7c,QACjB6c,EAAQ2C,GAAO3d,MAAQA,EAAKm7B,EAAOngB,EAAS2C,EAAO,GAClDA,IAEPrhB,EAAMygC,aAIRhgC,IAAK,SAAayK,GAChB6yB,EAAwBzc,UAAUzf,OAAQ,GAI1C,IAHA,IAAI6c,EAAUuf,EAAuB3mC,MAAMonB,QACvChb,EAAMi6B,EAAUzyB,GAChBmW,EAAQ,EACLA,EAAQ3C,EAAQ7c,OAAQwf,IAC7B,GAAI3C,EAAQ2C,GAAO3d,MAAQA,EAAK,OAAOgb,EAAQ2C,GAAO7gB,MAExD,OAAO,MAITqgC,OAAQ,SAAgB31B,GACtB6yB,EAAwBzc,UAAUzf,OAAQ,GAK1C,IAJA,IAAI6c,EAAUuf,EAAuB3mC,MAAMonB,QACvChb,EAAMi6B,EAAUzyB,GAChB7C,EAAS,GACTgZ,EAAQ,EACLA,EAAQ3C,EAAQ7c,OAAQwf,IACzB3C,EAAQ2C,GAAO3d,MAAQA,GAAKlC,EAAK6G,EAAQqW,EAAQ2C,GAAO7gB,OAE9D,OAAO6H,GAITy4B,IAAK,SAAa51B,GAChB6yB,EAAwBzc,UAAUzf,OAAQ,GAI1C,IAHA,IAAI6c,EAAUuf,EAAuB3mC,MAAMonB,QACvChb,EAAMi6B,EAAUzyB,GAChBmW,EAAQ,EACLA,EAAQ3C,EAAQ7c,QACrB,GAAI6c,EAAQ2C,KAAS3d,MAAQA,EAAK,OAAO,EAE3C,OAAO,GAIThE,IAAK,SAAawL,EAAM1K,GACtBu9B,EAAwBzc,UAAUzf,OAAQ,GAQ1C,IAPA,IAMI+9B,EANA5/B,EAAQi+B,EAAuB3mC,MAC/BonB,EAAU1e,EAAM0e,QAChBqiB,GAAQ,EACRr9B,EAAMi6B,EAAUzyB,GAChB81B,EAAMrD,EAAUn9B,GAChB6gB,EAAQ,EAELA,EAAQ3C,EAAQ7c,OAAQwf,KAC7Bue,EAAQlhB,EAAQ2C,IACN3d,MAAQA,IACZq9B,EAAOlC,EAAOngB,EAAS2C,IAAS,IAElC0f,GAAQ,EACRnB,EAAMp/B,MAAQwgC,IAIfD,GAAOv/B,EAAKkd,EAAS,CAAEhb,IAAKA,EAAKlD,MAAOwgC,IAC7ChhC,EAAMygC,aAIR1jB,KAAM,WACJ,IAAI/c,EAAQi+B,EAAuB3mC,MACnC0mC,EAAUh+B,EAAM0e,SAAS,SAAUuiB,EAAGC,GACpC,OAAOD,EAAEv9B,IAAMw9B,EAAEx9B,IAAM,GAAK,KAE9B1D,EAAMygC,aAGRl/B,QAAS,SAAiB4/B,GAKxB,IAJA,IAGIvB,EAHAlhB,EAAUuf,EAAuB3mC,MAAMonB,QACvC0iB,EAAgB1D,EAAKyD,EAAU7f,UAAUzf,OAAS,EAAIyf,UAAU,QAAKnoB,GACrEkoB,EAAQ,EAELA,EAAQ3C,EAAQ7c,QAErBu/B,GADAxB,EAAQlhB,EAAQ2C,MACI7gB,MAAOo/B,EAAMl8B,IAAKpM,OAI1CkiB,KAAM,WACJ,OAAO,IAAI+lB,GAAwBjoC,KAAM,SAG3CmtB,OAAQ,WACN,OAAO,IAAI8a,GAAwBjoC,KAAM,WAG3ConB,QAAS,WACP,OAAO,IAAI6gB,GAAwBjoC,KAAM,aAE1C,CAAE2T,YAAY,IAGjBsyB,EAAcoD,GAA0B7pB,EAAU6pB,GAAyBjiB,QAAS,CAAExT,KAAM,YAI5FqyB,EAAcoD,GAA0B,YAAY,WAClD,OAAO1C,EAAuB3mC,MAAMgoC,cACnC,CAAEr0B,YAAY,IAEjBsuB,EAAemH,GAlTS,mBAoTxB7yB,EAAE,CAAE1C,QAAQ,EAAMpU,aAAa,EAAMgX,QAASuvB,GAAkB,CAC9DpgB,gBAAiBwjB,MAIdpD,GAAkB3yB,EAAW6zB,GAAU,CAC1C,IAAI6C,GAAa7mC,EAAYkkC,EAAiBoC,KAC1CQ,GAAa9mC,EAAYkkC,EAAiBh/B,KAE1C6hC,GAAqB,SAAUxB,GACjC,GAAIlxB,EAASkxB,GAAO,CAClB,IACIyB,EADAC,EAAO1B,EAAK0B,KAEhB,GAjUkB,oBAiUd3yB,EAAQ2yB,GAKV,OAJAD,EAAUzB,EAAKyB,QAAU,IAAIhD,EAAQuB,EAAKyB,SAAW,IAAIhD,EACpD6C,GAAWG,EAAS,iBACvBF,GAAWE,EAAS,eAAgB,mDAE/BhpB,EAAOunB,EAAM,CAClB0B,KAAM7D,EAAyB,EAAGD,EAAU8D,IAC5CD,QAAS5D,EAAyB,EAAG4D,KAGzC,OAAOzB,GAWX,GARIp1B,EAAW2zB,IACbzwB,EAAE,CAAE1C,QAAQ,EAAMF,YAAY,EAAMy2B,gBAAgB,EAAM3zB,QAAQ,GAAQ,CACxE4zB,MAAO,SAAe3pC,GACpB,OAAOsmC,EAAYtmC,EAAOspB,UAAUzf,OAAS,EAAI0/B,GAAmBjgB,UAAU,IAAM,OAKtF3W,EAAW4zB,GAAgB,CAC7B,IAAIqD,GAAqB,SAAiB5pC,GAExC,OADA8gC,EAAWxhC,KAAMmnC,GACV,IAAIF,EAAcvmC,EAAOspB,UAAUzf,OAAS,EAAI0/B,GAAmBjgB,UAAU,IAAM,KAG5Fmd,EAAiB1nC,YAAc6qC,GAC/BA,GAAmBpyB,UAAYivB,EAE/B5wB,EAAE,CAAE1C,QAAQ,EAAMpU,aAAa,EAAM2qC,gBAAgB,EAAM3zB,QAAQ,GAAQ,CACzE8zB,QAASD,MAKfhnC,EAAOC,QAAU,CACfqiB,gBAAiBwjB,GACjBoB,SAAU7D,I,oCCnYZ,IAAIpwB,EAAI,EAAQ,QACZ4qB,EAAc,EAAQ,QACtBttB,EAAS,EAAQ,QACjB3Q,EAAc,EAAQ,QACtBijC,EAAS,EAAQ,QACjB9yB,EAAa,EAAQ,QACrBgL,EAAgB,EAAQ,QACxBlb,EAAW,EAAQ,QACnB2+B,EAAiB,EAAQ,QAAuC/tB,EAChE02B,EAA4B,EAAQ,QAEpCC,EAAe72B,EAAO0L,OACtBorB,EAAkBD,GAAgBA,EAAaxyB,UAEnD,GAAIipB,GAAe9tB,EAAWq3B,OAAoB,gBAAiBC,SAElC9oC,IAA/B6oC,IAAeE,aACd,CACD,IAAIC,EAA8B,GAE9BC,EAAgB,WAClB,IAAIF,EAAc5gB,UAAUzf,OAAS,QAAsB1I,IAAjBmoB,UAAU,QAAmBnoB,EAAYsB,EAAS6mB,UAAU,IAClGjZ,EAASsN,EAAcssB,EAAiB3qC,MACxC,IAAI0qC,EAAaE,QAED/oC,IAAhB+oC,EAA4BF,IAAiBA,EAAaE,GAE9D,MADoB,KAAhBA,IAAoBC,EAA4B95B,IAAU,GACvDA,GAGT05B,EAA0BK,EAAeJ,GACzCI,EAAc5yB,UAAYyyB,EAC1BA,EAAgBlrC,YAAcqrC,EAE9B,IAAIC,EAAgD,gBAAhCplB,OAAO+kB,EAAa,SACpCM,EAAiB9nC,EAAYynC,EAAgBxnC,UAC7C8nC,EAAgB/nC,EAAYynC,EAAgBO,SAC5CjnB,EAAS,wBACTtb,EAAUzF,EAAY,GAAGyF,SACzBvF,EAAcF,EAAY,GAAGG,OAEjCy+B,EAAe6I,EAAiB,cAAe,CAC7C32B,cAAc,EACd7K,IAAK,WACH,IAAIgiC,EAASF,EAAcjrC,MACvB6f,EAASmrB,EAAeG,GAC5B,GAAIhF,EAAO0E,EAA6BM,GAAS,MAAO,GACxD,IAAIC,EAAOL,EAAgB3nC,EAAYyc,EAAQ,GAAI,GAAKlX,EAAQkX,EAAQoE,EAAQ,MAChF,MAAgB,KAATmnB,OAAcvpC,EAAYupC,KAIrC70B,EAAE,CAAE1C,QAAQ,EAAMpU,aAAa,EAAMgX,QAAQ,GAAQ,CACnD8I,OAAQurB,M,uGCMZ3xB,YAAqB,CACjBC,SAAU,iDACVC,eAtCkB7Y,MAClB8Y,EACA+xB,EACA7xB,KAEA,GAAIjR,QAAUA,OAAO+iC,WAAa/iC,OAAO+iC,UAAU3gC,UAAW,CAC1D,MAAM4gC,EAAc3+B,MAAMC,QAAQw+B,GAAcA,EAAW,GAAKA,EAChE,IAAIG,EAAuC,GAG3C,GAAID,GAAeA,EAAYE,YAAc7+B,MAAMC,QAAQ0+B,EAAYE,aAAeF,EAAYE,WAAWlhC,OAAS,EAClH,IACIihC,QAA6BE,YAAiCH,EAAYE,WAAYjyB,GACxF,MAAOhO,GACLgO,EAAc7O,UAAUa,MAAM,+DAAgEA,GAKtGgO,EAAc5Z,eAAega,cAAcE,IAAe6xB,UAAY,CAClE3oC,GAAIuoC,EAAYn9B,GAChBw9B,YAAaL,EAAYxgC,UAAYwgC,EAAYxgC,UAAU5H,WAAa,GACxE0oC,QAASN,EAAYO,oBACrBC,IAAKR,EAAYS,UAEjBjiC,SAAUyhC,GAIdjjC,OAAO+iC,UAAU3gC,UAAUshC,SACvBnyB,IAAe6xB,SACMnyB,EAAc5Z,eAAega,cAAcE,IAAe6xB,aAQvF3xB,cAjDmBxZ,e,uBChBvB,IAAI0rC,EAAkB,EAAQ,QAC1BC,EAAkB,EAAQ,QAC1BC,EAAoB,EAAQ,QAG5BC,EAAe,SAAUC,GAC3B,OAAO,SAAUz0B,EAAO00B,EAAIC,GAC1B,IAGItjC,EAHAuK,EAAIy4B,EAAgBr0B,GACpBtN,EAAS6hC,EAAkB34B,GAC3BsW,EAAQoiB,EAAgBK,EAAWjiC,GAIvC,GAAI+hC,GAAeC,GAAMA,GAAI,KAAOhiC,EAASwf,GAG3C,IAFA7gB,EAAQuK,EAAEsW,OAEG7gB,EAAO,OAAO,OAEtB,KAAMqB,EAASwf,EAAOA,IAC3B,IAAKuiB,GAAeviB,KAAStW,IAAMA,EAAEsW,KAAWwiB,EAAI,OAAOD,GAAeviB,GAAS,EACnF,OAAQuiB,IAAgB,IAI9BhpC,EAAOC,QAAU,CAGfoB,SAAU0nC,GAAa,GAGvBxjB,QAASwjB,GAAa,K,yCC9BxB,IAAIx4B,EAAS,EAAQ,QAGjBiuB,EAAiBjpB,OAAOipB,eAE5Bx+B,EAAOC,QAAU,SAAU6I,EAAKlD,GAC9B,IACE44B,EAAejuB,EAAQzH,EAAK,CAAElD,MAAOA,EAAO8K,cAAc,EAAME,UAAU,IAC1E,MAAO1I,GACPqI,EAAOzH,GAAOlD,EACd,OAAOA,I,gUCIJ,MAAMsb,EAAb/kB,cAEoB,KAAAm9B,aAAyB,CACrC,oDACA,kEACA,kEACA,yDAOG,KAAA/8B,YAAc,IAAc,eAM5B,KAAAC,mBAAqB,IAAc,eAMnC,KAAAC,cAAgB,IAAiB,eAQrC,MAAM0sC,EAA8BrsC,GAChC,IAAIokB,EASRhkB,eAAeksC,EAAsBhsC,EAA0BgL,GAGlE,aAF2BihC,6BAA2BzP,sBAAsB,CAAEj8B,cAAeyK,EACzFxK,oBAAqBC,IAAyBC,qCAAqCsK,IAAQhL,EAAMk8B,cASlG,MAAMrY,EAAkCxhB,YAA2C,CACtFC,GAAI,8DACJC,OAAQypC,EACRhsC,MAAO+rC,IAGIloB,a,uBC1Ef,IAAI6hB,EAAO,EAAQ,QACfrtB,EAAO,EAAQ,QACfiJ,EAAW,EAAQ,QACnB4qB,EAAc,EAAQ,QACtBC,EAAwB,EAAQ,QAChCT,EAAoB,EAAQ,QAC5B/tB,EAAgB,EAAQ,QACxBkoB,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5BsG,EAAgB,EAAQ,QAExBC,EAAa1F,UAEb2F,EAAS,SAAUC,EAASl8B,GAC9B/Q,KAAKitC,QAAUA,EACfjtC,KAAK+Q,OAASA,GAGZm8B,EAAkBF,EAAO90B,UAE7B5U,EAAOC,QAAU,SAAU4pC,EAAUC,EAAiB3mC,GACpD,IAMIgZ,EAAU4tB,EAAQtjB,EAAOxf,EAAQwG,EAAQs3B,EAAMD,EAN/CkF,EAAO7mC,GAAWA,EAAQ6mC,KAC1BC,KAAgB9mC,IAAWA,EAAQ8mC,YACnCC,KAAe/mC,IAAWA,EAAQ+mC,WAClCC,KAAiBhnC,IAAWA,EAAQgnC,aACpCC,KAAiBjnC,IAAWA,EAAQinC,aACpCC,EAAKvH,EAAKgH,EAAiBE,GAG3BM,EAAO,SAAUC,GAEnB,OADIpuB,GAAUqtB,EAAcrtB,EAAU,SAAUouB,GACzC,IAAIb,GAAO,EAAMa,IAGtBC,EAAS,SAAU5kC,GACrB,OAAIqkC,GACFvrB,EAAS9Y,GACFwkC,EAAcC,EAAGzkC,EAAM,GAAIA,EAAM,GAAI0kC,GAAQD,EAAGzkC,EAAM,GAAIA,EAAM,KAChEwkC,EAAcC,EAAGzkC,EAAO0kC,GAAQD,EAAGzkC,IAG9C,GAAIskC,EACF/tB,EAAW0tB,EAAS1tB,cACf,GAAIguB,EACThuB,EAAW0tB,MACN,CAEL,KADAE,EAAS7G,EAAkB2G,IACd,MAAMJ,EAAWH,EAAYO,GAAY,oBAEtD,GAAIN,EAAsBQ,GAAS,CACjC,IAAKtjB,EAAQ,EAAGxf,EAAS6hC,EAAkBe,GAAW5iC,EAASwf,EAAOA,IAEpE,IADAhZ,EAAS+8B,EAAOX,EAASpjB,MACX1L,EAAc6uB,EAAiBn8B,GAAS,OAAOA,EAC7D,OAAO,IAAIi8B,GAAO,GAEtBvtB,EAAW8mB,EAAY4G,EAAUE,GAInC,IADAhF,EAAOmF,EAAYL,EAAS9E,KAAO5oB,EAAS4oB,OACnCD,EAAOrvB,EAAKsvB,EAAM5oB,IAAW8oB,MAAM,CAC1C,IACEx3B,EAAS+8B,EAAO1F,EAAKl/B,OACrB,MAAOsC,GACPshC,EAAcrtB,EAAU,QAASjU,GAEnC,GAAqB,iBAAVuF,GAAsBA,GAAUsN,EAAc6uB,EAAiBn8B,GAAS,OAAOA,EAC1F,OAAO,IAAIi8B,GAAO,K,4GCjDf,MAAMe,EAGTtuC,YAAY07B,GAIL,KAAAt7B,YAAc,IAAM,iCAEpB,KAAAC,mBAAqB,IAAM,iCAE3B,KAAAC,cAAgB,IAAiB,OAPpCC,KAAKm7B,cAAgBA,GAkDtB,MAAM6S,EAA4CjrC,YAAwC,CAC7FC,GAAI,yFACJC,OAxBGzC,eAA+CE,EAAuCgL,GACzF,IACI,MAAM,cAAEyvB,GAAkBz6B,EACpButC,QAA2B5f,sBAAY,CACzCptB,cAAeyK,GAChByvB,GACH,GAAI8S,EACA,OAAOA,EAGX,MADAviC,EAAIf,UAAUa,MAAd,+BAA4C2vB,EAAc/sB,GAA1D,wBACM,IAAI7N,MAAM,kCAElB,MAAOiL,GAEL,MADAE,EAAIf,UAAUa,MAAM,oCAAqCA,GACnDA,IAWV9K,MAtC0C,CAACN,EAAiC+6B,KAC5E,MAAM,eAAEv7B,GAAmBQ,EAC3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,+DAEpB,OAAO,IAAIwtC,EAA+B5S,MAoC/B6S,O,uBC7Ef,IAAIhM,EAAa,EAAQ,QAErB9lB,EAAQ9E,KAAK8E,MAEbgyB,EAAY,SAAUC,EAAOC,GAC/B,IAAI7jC,EAAS4jC,EAAM5jC,OACf8jC,EAASnyB,EAAM3R,EAAS,GAC5B,OAAOA,EAAS,EAAI+jC,EAAcH,EAAOC,GAAaG,EACpDJ,EACAD,EAAUlM,EAAWmM,EAAO,EAAGE,GAASD,GACxCF,EAAUlM,EAAWmM,EAAOE,GAASD,GACrCA,IAIAE,EAAgB,SAAUH,EAAOC,GAKnC,IAJA,IAEI5/B,EAASi2B,EAFTl6B,EAAS4jC,EAAM5jC,OACfmG,EAAI,EAGDA,EAAInG,GAAQ,CAGjB,IAFAk6B,EAAI/zB,EACJlC,EAAU2/B,EAAMz9B,GACT+zB,GAAK2J,EAAUD,EAAM1J,EAAI,GAAIj2B,GAAW,GAC7C2/B,EAAM1J,GAAK0J,IAAQ1J,GAEjBA,IAAM/zB,MAAKy9B,EAAM1J,GAAKj2B,GAC1B,OAAO2/B,GAGPI,EAAQ,SAAUJ,EAAOK,EAAMC,EAAOL,GAMxC,IALA,IAAIM,EAAUF,EAAKjkC,OACfokC,EAAUF,EAAMlkC,OAChBqkC,EAAS,EACTC,EAAS,EAEND,EAASF,GAAWG,EAASF,GAClCR,EAAMS,EAASC,GAAWD,EAASF,GAAWG,EAASF,EACnDP,EAAUI,EAAKI,GAASH,EAAMI,KAAY,EAAIL,EAAKI,KAAYH,EAAMI,KACrED,EAASF,EAAUF,EAAKI,KAAYH,EAAMI,KAC9C,OAAOV,GAGX7qC,EAAOC,QAAU2qC,G,oCC3CjB,wCAkCenrC,YAA2B,CACtCC,GAAI,8DACJC,OAAmC6S,eACnCpV,MAvBiBN,IACjB,GACIA,EAAUR,gBACVQ,EAAUR,eAAeoO,MACzB5N,EAAUR,eAAeoO,KAAKC,gBAE9B,OAAO6gC,8CAAoC,CACvC1jC,OAAQ,CACJC,IAAK,IACLmf,KAAM,IAKd,MAGJ,MAAM,IAAIjqB,MAAM,yE,2WCXb,MAAMwuC,EAAc,CACvBC,0BAA2B,eAC3BC,sBAAuB,oBACvBC,uBAAwB,qBACxBC,oBAAqB,WACrBC,qBAAsB,YACtBC,qBAAsB,YACtBC,sBAAuB,aACvBC,wBAAyB,cACzBC,qBAAsB,WACtBC,0BAA2B,iBAMxB,MAAMC,EAGTjwC,YAAYa,GAIL,KAAAT,YAAc,IAAMoG,wBAAc,oBAAqBjG,KAAKM,aAE5D,KAAAR,mBAAqB,IAAM,oBAE3B,KAAAC,cAAgB,IAAiB,UAPpCC,KAAKM,YAAcA,GAepBE,eAAemvC,EAA6BjvC,EAA0BgL,GACzE,OAAOkkC,sCAA4B,CAAE3uC,cAAeyK,IAAOjJ,KAAMotC,IACvBA,EAAoBC,oBAAsB,IAAIruC,IAA4CsuC,IAC5H,IAAI3jC,EAAM,GACV,GAAI2jC,EAAWhR,WACX,OAAQgR,EAAWhR,WAAWiR,eAC1B,IAAK,OACD5jC,EAAM2jC,EAAW/Q,aAAe+P,EAAYK,qBAAuBL,EAAYI,oBAC/E,MACJ,IAAK,QACD/iC,EAAM2jC,EAAW/Q,aAAe+P,EAAYO,sBAAwBP,EAAYM,qBAChF,MACJ,IAAK,gBACDjjC,EAAM2jC,EAAW/Q,aAAe+P,EAAYG,uBAAyBH,EAAYE,sBACjF,MACJ,IAAK,UACD7iC,EAAM2iC,EAAYC,0BAClB,MACJ,IAAK,mBACD5iC,EAAM2iC,EAAYQ,wBAClB,MACJ,IAAK,WACDnjC,EAAM2iC,EAAYS,qBAClB,MACJ,IAAK,gBACDpjC,EAAM2iC,EAAYU,+BAK1B/jC,EAAIf,UAAUslC,QAAQ,2DAE1B,GAAI7jC,EACA,MAAO,CACHA,MACA2jC,gBAKTpmC,OAAOumC,UAIX,MAAMrQ,EAAez/B,GACjB,IAAIsvC,EAAkBtvC,EAAUR,eAAeU,aAG7C6vC,EAAyCptC,YAA2B,CAC7EC,GAAI,qFACJC,OAA8C0sC,EAC9CjvC,MAAOm/B,IAGIsQ,a,gFCnGR,MAAMC,EAST3wC,cACIO,KAAKqwC,aAAe,GAOjBC,UAAUC,GACbvwC,KAAKqwC,aAAanmC,KAAKqmC,GAOpBC,YAAYC,GACfzwC,KAAKqwC,aAAerwC,KAAKqwC,aAAa1mC,OAAO6E,GAAWA,EAAQiiC,aAAeA,GAM5EC,iBACH1wC,KAAKqwC,aAAe,GAOjBM,UACH3wC,KAAKqwC,aAAapmC,QAAQ2mC,IACtBA,EAAWlqC,e,yCCpDvB,IAAImqC,EAA0B,EAAQ,QAItCvtC,EAAOC,QAAU,SAAUutC,EAAevmC,GACxC,OAAO,IAAKsmC,EAAwBC,GAA7B,CAAwD,IAAXvmC,EAAe,EAAIA,K,+TCgBlE,MAAMwmC,EAKTtxC,YAAYqC,EAAuCZ,GAK5C,KAAArB,YAAc,IAAM,0BAEpB,KAAAC,mBAAqB,IAAM,eAE3B,KAAAC,cAAgB,IAAiB,OARpCC,KAAK8B,eAAiBA,EACtB9B,KAAKkB,oBAAsBA,GAU5B,MAAM8vC,EAA0B5wC,IACnC,MAAM,eAAER,GAAmBQ,EAG3B,IAAKR,EAAeoO,KAAKC,gBACrB,MAAM,IAAI1N,MAAM,0BAGpB,MAAMW,EAA4CC,IAAyB8c,cAAc7d,GAAW8d,oBAEpG,OAAO,IAAI6yB,EAnCJ,CACHE,wBAAyB,CAACC,oBAAkBnpC,OAkCQ7G,IAGrDV,eAAe2wC,EAAYzwC,EAAyBC,GAAuB,QAC9E,GAAKA,SAAD,UAACA,EAASf,sBAAV,iBAAC,EAAyBoO,YAA1B,QAAC,EAA+BC,gBAChC,MAAM,IAAI1N,MAAM,8DAGpBG,EAAMoB,eAAesvC,kBAAoB,CAACC,cAAYC,mBAEtD,MAAMC,QAAwBC,YAAgB,CAAEvwC,cAAeN,IAC/DD,EAAMoB,eAAe2vC,kBAAoBF,EAAgBE,kBAEzD,MAAMx7B,QAAiBy7B,kBAAY,IAAI3rB,mBAAiBplB,EAAQf,eAAeU,aAAcK,GAG7F,OAFAD,EAAMoB,eAAe6D,WAAasQ,EAAS07B,cAEpCC,yBAAuBC,iBAC1B,CAAE5wC,cAAeN,EAASO,oBAAqBR,EAAMQ,qBACrDR,EAAMoB,gBAGP,MAAMgwC,EAAwB/uC,YAA2B,CAC5DC,GAAI,eACJC,OAAiCkuC,EACjCzwC,MAAOswC,IAGIc,a,8MCjEf,MAUaC,EAAwB,CAACluC,EAAyBmuC,EAAoB/+B,IACzD,oBAAX1K,OACA1E,EAGJouC,EAAgBpuC,EAAQmuC,EAAY/+B,GAMlCi/B,EAAsB,CAACC,EAA+Bp/B,KAC/D,MAAMq/B,EAAWv5B,OAAOqJ,KAAKiwB,EAAaE,SAAW,IACrD,IAAK,IAAI3hC,EAAI,EAAGA,EAAI0hC,EAAS7nC,SAAUmG,EAAG,CACtC,MAAM4hC,EAAkCH,EAAaE,QAASD,EAAS1hC,IACvE,IAAK,IAAI+zB,EAAI,EAAGA,EAAI6N,EAAa/nC,SAAUk6B,EACvC1xB,EAAaK,IAAI,CAAEH,SAAUs/B,IAAiCnmC,IAAKkmC,EAAa7N,GAAGzhC,IAAM,CAAEuM,KAAM,CAAC,OAClG2iC,EAAoBI,EAAa7N,GAAI1xB,KAUpCy/B,EAAa,CAAC/gC,EAAkBghC,KACzC,GAAIA,EAASzvC,KAAOyO,EAChB,OAAOghC,EAGX,MAAML,EAAWv5B,OAAOqJ,KAAKuwB,EAASJ,SAAW,IACjD,IAAK,IAAI3hC,EAAI,EAAGA,EAAI0hC,EAAS7nC,SAAUmG,EAAG,CACtC,MAAM4hC,EAAkCG,EAASJ,QAASD,EAAS1hC,IACnE,IAAK,IAAI+zB,EAAI,EAAGA,EAAI6N,EAAa/nC,SAAUk6B,EAAG,CAC1C,MAAMiO,EAAMF,EAAW/gC,EAAU6gC,EAAa7N,IAC9C,GAAIiO,EACA,OAAOA,KAWjBT,EAAkB,CAACpuC,EAAyBmuC,EAAoBW,KAClE,MAAMjsC,EAAyC,CAC3CyC,IAAG,CAACypC,EAAyBxmC,KAEpBwmC,EAAM,kBACPA,EAAM,gBAAqBZ,GAG1BY,EAAM,kBACPA,EAAM,gBAAqBD,GAGJ,iBAAhBC,EAAOxmC,IAAqC,OAAhBwmC,EAAOxmC,IAE1CwmC,EAAOxmC,GAAP,gBAAgCwmC,EAAM,gBAAN,UAA8BA,EAAM,gBAApC,YAA0DxmC,GAAQA,EAC3F,IAAIymC,MAAMD,EAAOxmC,GAAM1F,IAEvBksC,EAAOxmC,IAKtBhE,IAAIwqC,EAAyBxmC,EAAa0mC,GACtC,IAAIC,EAA+B,GACnC,MAAMthC,EAAWmhC,EAAM,gBACjB3/B,EAA2B2/B,EAAM,gBAEvC,IAAKnhC,IAAawB,EACd,OAAO,EAGX,IAAI+/B,EAAe,CAAC5mC,GAEpB,GAAIwmC,EAAM,gBAAoB,CAC1B,MAAMK,EAAmBL,EAAM,gBAAoB3rC,MAAM,KACzD+rC,EAAuB,UAAR5mC,EAAkB6mC,EAAaA,EAAWhxB,OAAO,CAAC7V,IAMrE,GAAiB,8BAAb0mC,EAA0C,CAG1C,GAFAC,EAA2BxqC,OAAQ+iC,UAAU4H,gBAAgBC,sBAAsB1hC,IAE9EshC,GAAsB,IAAIxoC,OAAS,EAAG,CAEvC,GAAkC,IAA9BwoC,EAAmBxoC,QAA0C,MAA1BwoC,EAAmB,GACtD,MAAM,IAAIK,IAAU,gCAGxB,MAAMC,EAAWL,EAAansC,KAAK,KAInC,GAAIksC,EAAmBppC,OAAO2pC,GAAKD,IAAaC,GAAKD,EAASruC,WAAT,UAAuBsuC,EAAvB,OAA8B/oC,OAAS,EACxF,MAAM,IAAI6oC,IAAU,gCAM5B,MAAMG,EAA+BC,EAAsBvgC,IAAa,GACxE,MAAM,IAAImgC,IAAU,+BAAgCK,IAAeF,EAAmB5uC,SAASquC,EAAansC,KAAK,OAUrH,OALA6sC,SAASC,cACL,IAAIC,YAAYC,IAA0B,CACtCC,OAAQ,CAAEriC,WAAUvI,MAAO4pC,EAAUiB,SAAUf,OAGhD,IAIf,OAAO,IAAIH,MAAMhvC,EAAQ6C,IAMvB8sC,EAAyBvgC,IAC3B,QAAwBpR,WAAX0G,OAAuB,CAChC,MAAM2qC,EAAwB3qC,OAAQ+iC,UAAU4H,gBAChD,OAAOA,GAAmBA,EAAgBc,iBAAmBd,EAAgBc,gBAAgBC,yBAAyBhhC,GAG1H,MAAO,K,yFC8qBX,MAAMihC,EAAY,IAj0BlB,MAAAz0C,cACY,KAAA00C,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,CAC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","file":"static/js/16.68a3e39bd1512bc92063.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric, 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\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 = (inputData: ICreateActionContext>): ProductDimensionsWithAvailabilitiesInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n\n if (productId) {\n return new ProductDimensionsWithAvailabilitiesInput(+productId, +inputData.requestContext.apiSettings.channelId, inputData.requestContext);\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 callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n }, input.channelId, [input.productId], null, input.catalogId ?? 0));\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 {\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 // eslint-disable-next-line inclusive-language/use-inclusive-words -- notation used in commerce\n activeProduct.MasterProductId ? activeProduct.MasterProductId : activeProduct.RecordId,\n searchCriteria\n );\n // eslint-disable-next-line promise/prefer-await-to-then -- Existing pattern to execute promises\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 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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { generateImageUrl as generateImageUrlFromSdk, IAny, ICommerceApiSettings, ICoreContext,\n ICreateActionContext, IGeneric, IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AsyncResult, AttributeValue, CartLine, ChannelInventoryConfiguration, CommerceListLine, ProductDimension,\n ProductDimensionType, ProductSearchResult, QueryResultSettings, SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ProductDetailsCriteria } from '../get-full-products';\nimport { ArrayExtensions } 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 (context.urlTokens && inputData.requestContext.urlTokens.itemId && inputData.requestContext.urlTokens.pageType === 'Product') {\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}\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): boolean => {\n\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 (!ArrayExtensions.hasElements(dimensionsToDisplayOnProductCard) ||\n dimensionsToDisplayOnProductCard.includes(DimensionTypes.none) ||\n !dimensionsToDisplayOnProductCard.includes(dimensionType)) {\n return false;\n }\n }\n\n const dimensionsToDisplayAsSwatch = context.app.config.dimensionsAsSwatchType;\n return ArrayExtensions.hasElements(dimensionsToDisplayAsSwatch) &&\n !dimensionsToDisplayAsSwatch.includes(DimensionTypes.none) &&\n dimensionsToDisplayAsSwatch.includes(dimensionType);\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\nexport const buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\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 = (itemId: string | undefined, apiSettings: ICommerceApiSettings): string | undefined => {\n if (!itemId) {\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 inputUrl.searchParams.set(\n convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue), dimension.DimensionValue?.Value ?? '');\n }\n\n window.history.replaceState(window.history.state, '', inputUrl.toString().replace(inputUrl.host, window.location.host));\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 = (urlParameters: URLSearchParams, productDimensionType: ProductDimensionType): 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, channelInventoryConfiguration: ChannelInventoryConfiguration | null): AttributeValue[] => {\n if (!attributeValues) {\n return [];\n }\n if (!channelInventoryConfiguration) {\n return attributeValues;\n }\n\n return attributeValues.filter(attribute => attribute.RecordId !== channelInventoryConfiguration.InventoryProductAttributeRecordId);\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\nimport { createObservableDataAction } from '@msdyn365-commerce/action-internal';\nimport { IAction, IActionContext } from '@msdyn365-commerce/core-internal';\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductSearchCriteria, ProductSearchResult } 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';\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 return searchByCriteriaAsync(\n { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\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 } from '@msdyn365-commerce/core-internal';\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { ProductSearchCriteria, ProductSearchResult } 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';\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 return searchByCriteriaAsync(\n { callerContext: ctx, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\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 { 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 ProductSearchCriteria,\n ProductSearchResult,\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';\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 (input: ProductListInput, callerContext: IContext): Promise => {\n const context = callerContext.callerContext;\n const customerAccountNumber =\n context.requestContext && context.requestContext.user && 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 let productSearchResults = await searchByCriteriaAsync(\n { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\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 products = await getProductsByNewSearchByCriteria(input, proxyContext);\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 try {\n let productSearchResults = await searchByCriteriaAsync(\n { callerContext: context, queryResultSettings: { Paging: { Top: input.listMetadata.pageSize || 10 } } },\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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric, IRequestContext\n} from '@msdyn365-commerce/core';\nimport { BypassCache, ProductDimension, ProductDimensionAvailabilitySearchCriteria, ProductsDataActions,\n SimpleProduct } 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, channelId: number, matchingDimensionValues?: ProductDimension[],\n bypassCache?: BypassCache, 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(+productId, +inputData.requestContext.apiSettings.channelId,\n undefined, undefined, inputData.requestContext);\n }\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\n\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 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 (product: SimpleProduct, matchingDimensionValues: ProductDimension[], context: IActionContext, catalogId?: number) => {\n let fullDimensions: IProductDimensionsWithAvailabilitiesFull[] = [];\n const fullDimensionPromises = (product.Dimensions ?? []).map(dimension => {\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria =\n {\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 (ArrayExtensions.hasElements(fullDimensions) &&\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory) &&\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory[0].ProductIds)) {\n const variantProductId = fullDimensions[0].dimensionValuesWithInventory[0].ProductIds[0];\n const result = await ProductsDataActions.getByIdsAsync({\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\n bypassCache: input.bypassCache\n }, input.channelId, [variantProductId], null, input.catalogId ?? 0);\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 callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\n bypassCache: input.bypassCache\n }, input.channelId, [input.productId], null, input.catalogId ?? 0);\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(product, matchingDimensionValues, context, input.catalogId);\n\n // Retrieve product variants only if matching dimensions are provided.\n const productVariant: SimpleProduct | undefined = ArrayExtensions.hasElements(matchingDimensionValues) ? await\n getProductVariant(input, context, fullDimensions) : 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 const matchedTargetDimensionFromSearch = matchingDimensionValues.find(\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue);\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","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext, IRequestContext } 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-chanId:${this.apiSettings.channelId}-catId:${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\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. All rights reserved.\n * See License.txt 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 (\n inputData.requestContext &&\n inputData.requestContext.user &&\n inputData.requestContext.user.isAuthenticated\n ) {\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. All rights reserved.\n * See License.txt 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","var $ = 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport {\n getAttributeDefinitionsAsync\n} 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","var 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 { StockCountJournalClass, StockCountJournalTransactionClass } from '../Entities/CommerceModels.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, StockCountJournalClass, '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, StockCountJournalTransactionClass, '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, StockCountJournalTransactionClass, '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. All rights reserved.\n * See License.txt 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","var 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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric, IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n ProductDimensionAvailabilitySearchCriteria, ProductDimensionType, ProductDimensionValueInventoryAvailability, ProductsDataActions\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/* eslint-disable inclusive-language/use-inclusive-words -- disabling inclusive words for this file. */\n\n/**\n * Interface for IProductDimension.\n */\nexport interface IProductDimension {\n masterProductId: number;\n requestDimensionType: ProductDimensionType;\n}\n\n/**\n * Product Input.\n */\nexport class ProductsDimensionAvailabilitiesInput implements IActionInput {\n\n public masterProductId: number;\n\n public requestDimensionType: ProductDimensionType;\n\n public catalogId?: number;\n\n public constructor(masterProductId: number, requestDimensionType: ProductDimensionType, requestContext?: IRequestContext) {\n this.masterProductId = masterProductId;\n this.requestDimensionType = requestDimensionType;\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 return `MasterProductId-${this.masterProductId.toString()}-DimensionType-${this.requestDimensionType}-Availabilities-${this.catalogId ?? 0}`;\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 = (inputData: ICreateActionContext>): 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(productDimension.masterProductId, productDimension.requestDimensionType,\n inputData.requestContext);\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(context, [input.masterProductId], true, undefined, undefined);\n\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria =\n {\n RequestedDimensionTypeValue: input.requestDimensionType,\n MatchingDimensionValues: undefined,\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 input.masterProductId,\n searchCriteria\n );\n\n return dimensionValuesPromise;\n\n });\n\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/* eslint-enable inclusive-language/use-inclusive-words -- enabling it back. */\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\r\nimport { ICache, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSelectedVariant, SelectedVariantInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport crypto from 'crypto';\r\nimport promisify from 'util.promisify';\r\nimport { IGetExperlogixStateData, IExperlogixWebConfiguratorData } from '../experlogix-d365commerce-core';\r\nimport {\r\n getSelectedCartLineIdFromActionInput,\r\n getSelectedProductIdFromActionInput\r\n} from '../experlogix-d365commerce-core/commerceUtilities';\r\nimport { IExperlogixWebConfiguratorConfig } from '../modules/experlogix-web-configurator/experlogix-web-configurator.props.autogenerated';\r\nimport getSeriesModel, { GetProductExperlogixSeriesModelInput } from './get-product-experlogix-seriesmodel.action';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * ExtensionProperty specs for the authorization nonce token\r\n */\r\nconst authNonceProperty = 'ExperlogixAuthorization';\r\nconst authNonceBitStrength = 1024;\r\nconst cacheObjectType = 'IGetExperlogixStateData';\r\nconst cacheKey = 'ExperlogixState';\r\n\r\n/**\r\n * GetExperlogixState Input Action\r\n */\r\nexport class GetExperlogixStateInput implements Msdyn365.IActionInput {\r\n public ExperlogixSiteUrl: string;\r\n public SelectedProductId?: number;\r\n public SelectedCartLineId?: string;\r\n\r\n constructor(experlogixSiteUrl: string, selectedProductId?: number | string, selectedCartLineId?: string) {\r\n if (!experlogixSiteUrl) {\r\n throw new Error(`GetExperlogixStateInput: experlogixSiteUrl must be specified`);\r\n }\r\n\r\n // Validates that the URL is correctly structured\r\n try {\r\n new URL(experlogixSiteUrl);\r\n } catch (error) {\r\n throw new Error(`GetExperlogixStateInput: experlogixSiteUrl must be valid. Error: ${error}`);\r\n }\r\n\r\n this.ExperlogixSiteUrl = experlogixSiteUrl;\r\n this.SelectedProductId = selectedProductId ? +selectedProductId : undefined;\r\n this.SelectedCartLineId = selectedCartLineId;\r\n }\r\n\r\n // Cache definition should limit this aggregation of states to\r\n // special cases, or not at all.\r\n public getCacheKey = () => cacheKey;\r\n public getCacheObjectType = () => cacheObjectType;\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\r\n}\r\n\r\n/**\r\n * Used for on-load state preparation and inclusion with registered modules\r\n */\r\nconst createInput = (\r\n args: Msdyn365.ICreateActionContext\r\n): Msdyn365.IActionInput => {\r\n if (args.requestContext.app.config?.experlogixSiteUrl) {\r\n return new GetExperlogixStateInput(\r\n args.requestContext.app.config.experlogixSiteUrl,\r\n getSelectedProductIdFromActionInput(args),\r\n getSelectedCartLineIdFromActionInput(args)\r\n );\r\n } else {\r\n throw new Error(`get-experlogix-state cannot operate without an Experlogix configuration.`);\r\n }\r\n};\r\n\r\n/**\r\n * Establish a promise wrapper for the crypto method call, for async/await use.\r\n */\r\nconst randomBytesAsync = promisify(crypto.randomBytes);\r\n\r\nasync function getProductVariantAsync(productId: number, ctx: Msdyn365.IActionContext): Promise {\r\n const apiSettings = ctx.requestContext.apiSettings;\r\n let product: SimpleProduct | null = null;\r\n product = await getSelectedVariant(new SelectedVariantInput(productId, +apiSettings.channelId), ctx);\r\n return product;\r\n}\r\n\r\nexport function getActionContext(context: ICoreContext): Msdyn365.ActionContext {\r\n const actionContext = new Msdyn365.ActionContext({\r\n id: '',\r\n requestContext: context.actionContext.requestContext as any,\r\n requestCache: (context.actionContext as any).requestCache as ICache,\r\n appCache: null\r\n });\r\n return actionContext;\r\n}\r\n\r\n/**\r\n * Determines if a product is configurable or not\r\n */\r\nasync function isConfigurableAsync(ExperlogixSiteUrl: string, productItemId: string, ctx: Msdyn365.IActionContext): Promise {\r\n const seriesModelConstraints = await getSeriesModel(new GetProductExperlogixSeriesModelInput(ExperlogixSiteUrl, productItemId), ctx);\r\n\r\n // A truthy evaluation of the response is suitable for asserting that some constraint\r\n // is specified, and therefore the product is configurable by convention.\r\n return !!seriesModelConstraints;\r\n}\r\n\r\nasync function setCartTokenAsync(cartState: ICartState) {\r\n // Generate randomized token for nonce-based authorization\r\n const authNonce = (await randomBytesAsync(authNonceBitStrength / 8)).toString('hex');\r\n\r\n // Add the token to the cart\r\n await cartState.updateExtensionProperties({\r\n newExtensionProperties: [{ Key: authNonceProperty, Value: { StringValue: authNonce } }]\r\n });\r\n\r\n return {\r\n cartState: cartState,\r\n authNonce: authNonce\r\n };\r\n}\r\n\r\nexport async function getProductStateAsync(input: GetExperlogixStateInput, ctx: Msdyn365.IActionContext) {\r\n let authNonce = '';\r\n let isProductConfigurable = false;\r\n let product: SimpleProduct | null = null;\r\n const cartState = await getCartState(ctx);\r\n\r\n if (input.SelectedProductId) {\r\n product = await getProductVariantAsync(input.SelectedProductId, ctx);\r\n\r\n if (product?.ItemId) {\r\n isProductConfigurable = await isConfigurableAsync(input.ExperlogixSiteUrl, product.ItemId, ctx);\r\n }\r\n }\r\n\r\n // If the product is configurable, provide authorization to CPQ's Commerce integrator\r\n if (isProductConfigurable) {\r\n const cartToken = await setCartTokenAsync(cartState);\r\n authNonce = cartToken.authNonce;\r\n }\r\n\r\n return {\r\n authNonce,\r\n cart: cartState.cart,\r\n cartLineId: input.SelectedCartLineId || null,\r\n product: product\r\n };\r\n}\r\n\r\n/**\r\n * Assembles all of the state necessary for Experlogix component operation. No caching\r\n * is performed for this data action; use of other actions with caching/batching semantics\r\n * is preferrable.\r\n */\r\nexport async function action(input: GetExperlogixStateInput, ctx: Msdyn365.IActionContext): Promise {\r\n const result = await getProductStateAsync(input, ctx);\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'GetExperlogixState',\r\n input: createInput\r\n});\r\n","import { IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * Utility function to extract the active productId in the following priority:\r\n * First query param (productId), then UrlToken (itemId), then module config.\r\n * @param inputData The Action Input data.\r\n */\r\nexport const getSelectedProductIdFromActionInput = (inputData: ICreateActionContext>): string | undefined => {\r\n if (inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.productId) {\r\n return inputData.requestContext.query.productId;\r\n } else if (inputData && inputData.requestContext && inputData.requestContext.urlTokens && inputData.requestContext.urlTokens.itemId) {\r\n return inputData.requestContext.urlTokens.itemId;\r\n } else if (inputData && inputData.config && inputData.config.productId) {\r\n return inputData.config.productId;\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Utility function to extract the active cartLineId in the following priority:\r\n * First query param (cartLineId), then module config.\r\n * @param inputData The Action Input data.\r\n */\r\nexport const getSelectedCartLineIdFromActionInput = (inputData: ICreateActionContext>): string | undefined => {\r\n if (inputData && inputData.requestContext && inputData.requestContext.query && inputData.requestContext.query.cartLineId) {\r\n return inputData.requestContext.query.cartLineId;\r\n } else if (inputData && inputData.config && inputData.config.cartLineId) {\r\n return inputData.config.cartLineId;\r\n }\r\n return undefined;\r\n};\r\n","var 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);\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext } from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { getOrderTemplates, GetOrderTemplatesInput, getPaginatedOrderTemplateLinesAction, GetPaginatedOrderTemplateLinesInput, QueryResultSettingsProxy } 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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { createObservableDataAction, getCatalogId, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } 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 { 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 = () => `${this.currentCategory.getCacheKey()}|${this.catalogId}|${this.queryResultSettingsProxy.cacheKeyHint}`;\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(\n currentCategory,\n QueryResultSettingsProxy.fromInputData(inputData),\n catalogId\n );\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","var 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 { InventoryInboundOutboundDocumentClass, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass, InventoryInboundOutboundDocumentLineClass, InventoryDocumentSerialNumberLineClass, InventoryDocumentValidationResultSummaryClass, InventoryDocumentValidationResultLineClass, ReceiptClass, InventoryDocumentSourceDocumentLineCommitRecordClass, InventoryInboundOutboundDocumentLinesSummaryClass, InventoryDocumentSerialNumberLinesSummaryClass } from '../Entities/CommerceModels.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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass, '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, InventoryInboundOutboundDocumentLineClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentLineClass, '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, InventoryDocumentSerialNumberLineClass, '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, InventoryDocumentValidationResultSummaryClass, '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, InventoryDocumentValidationResultLineClass, '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 createSearchInventoryDocumentReceiptInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentReceiptSearchCriteria | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInventoryDocumentReceipt', true, ReceiptClass, '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, InventoryDocumentSourceDocumentLineCommitRecordClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentClass, '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, InventoryInboundOutboundDocumentLineClass, '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, InventoryDocumentSerialNumberLineClass, '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, InventoryDocumentSerialNumberLineClass, '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, InventoryInboundOutboundDocumentLinesSummaryClass, '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, InventoryDocumentSerialNumberLinesSummaryClass, '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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { getOperationRequestsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnerUsersDataActions.g';\n\nimport { getCurrentBusinessPartnerUser, GetCurrentBusinessPartnerUserInput } from './get-current-business-partner-user';\nimport { StringExtensions } from './utilities';\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetBusinessPartnerOperationRequestsInput implements IActionInput {\n public fromDate: Date;\n\n public toDate: Date;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings, fromDate: Date, toDate: Date) {\n this.apiSettings = apiSettings;\n this.fromDate = fromDate;\n this.toDate = toDate;\n }\n\n public getCacheKey = () => buildCacheKey('BusinessPartnerOperationRequests-cacheKey', this.apiSettings);\n\n public getCacheObjectType = () => 'BusinessPartnerOperationRequest[]';\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>): GetBusinessPartnerOperationRequestsInput => {\n const fromDate = new Date(Date.now() - (86_400_000 * 3)); // 3 days ago.\n\n const toDate: Date = new Date(Date.now());\n return new GetBusinessPartnerOperationRequestsInput(inputData.requestContext.apiSettings, fromDate, toDate);\n};\n\nexport async function getBusinessPartnerOperationRequestsAction(input: GetBusinessPartnerOperationRequestsInput, ctx: IActionContext): Promise {\n if (input) {\n const userInput = new GetCurrentBusinessPartnerUserInput(ctx.requestContext.apiSettings);\n const user: BusinessPartnerUser | undefined = await getCurrentBusinessPartnerUser(userInput, ctx);\n\n if (user && !StringExtensions.isNullOrEmpty(user.B2BUserId)) {\n return getOperationRequestsAsync({ callerContext: ctx }, user.B2BUserId, input.fromDate, input.toDate);\n }\n\n return [];\n }\n\n ctx.trace('[getBusinessPartnerOperationRequest]Invalid input passed to action');\n return [];\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/get-business-partner-operation-requests',\n action: >getBusinessPartnerOperationRequestsAction,\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 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 { CommerceListClass } from '../Entities/CommerceModels.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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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 ","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction,\n IAction, IActionInput, 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) ? [] : 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","var 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","import * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as ProductHandler from '../experlogix-d365commerce-core/eCommerceProductHandler';\r\n\r\n/**\r\n * GetProductExperlogixSeriesModel Input Action\r\n */\r\nexport class GetProductExperlogixSeriesModelInput implements Msdyn365.IActionInput {\r\n private _experlogixSiteUrl: string;\r\n private _productItemId: string;\r\n\r\n constructor(experlogixSiteUrl: string, productItemId: string) {\r\n if (!experlogixSiteUrl) {\r\n throw new Error(`GetProductExperlogixSeriesModelInput: experlogixSiteUrl must be specified`);\r\n }\r\n\r\n if (!productItemId) {\r\n throw new Error(`GetProductExperlogixSeriesModelInput: productItemId must be specified`);\r\n }\r\n\r\n this._experlogixSiteUrl = experlogixSiteUrl;\r\n this._productItemId = productItemId;\r\n }\r\n\r\n public getCacheKey = () => this._productItemId;\r\n public getCacheObjectType = () => 'GetProductExperlogixSeriesModelData';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n\r\n // Build the URL to the product handler\r\n public getHandlerUrl = () => ProductHandler.getUrl(this._experlogixSiteUrl);\r\n public getBody = () => ProductHandler.createBody(this._productItemId);\r\n}\r\n\r\n/**\r\n * Performs a request to the Experlogix handler for eCommerce Products, to retrieve Series/Model constraints\r\n * for a specified ItemId.\r\n */\r\nasync function action(input: GetProductExperlogixSeriesModelInput, ctx: Msdyn365.IActionContext): Promise {\r\n const response = await Msdyn365.sendRequest(input.getHandlerUrl(), 'post', input.getBody());\r\n\r\n if (response.status === 200) {\r\n return response.data || null;\r\n }\r\n\r\n ctx.telemetry.exception(\r\n new Error(`GetProductExperlogixSeriesModel: Unexpected result from CPQ handler (${input.getHandlerUrl()}): ${response.data}`)\r\n );\r\n\r\n return;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'GetProductExperlogixSeriesModel'\r\n});\r\n","import { assembleUrlParams, getExperlogixRootUrl } from './urlUtilities';\r\n\r\nexport const getUrl = (experlogixSiteUrl: string) =>\r\n `${getExperlogixRootUrl(experlogixSiteUrl)}/site/handlers/eCommerceProductHandler.ashx`;\r\n\r\nexport const createBody = (itemId: string) => assembleUrlParams({ key: 'ItemId', value: itemId });\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext } 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';\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\n constructor(orderTemplateId: string, productId: number, quantity: number, unitOfMeasure: string) {\n this.orderTemplateId = orderTemplateId;\n this.productId = productId;\n this.quantity = quantity;\n this.unitOfMeasure = unitOfMeasure || 'ea';\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, orderTemplateId: string, productId: number, quantity: number, unitOfMeasure: string): AddItemToOrderTemplateInput => {\n\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(orderTemplateId, productId, quantity, unitOfMeasure);\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 const productListLineToAdd: ProductListLine = {\n ProductListId: input.orderTemplateId,\n ProductId: input.productId,\n Quantity: input.quantity,\n UnitOfMeasure: input.unitOfMeasure\n };\n\n const productListLine: ProductListLine[] = await addProductListLinesAsync({\n callerContext: ctx\n }, input.orderTemplateId, [productListLineToAdd]);\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\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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, IActionInput } from '@msdyn365-commerce/core';\n\nexport type OrderBy =\n | 'None'\n | 'MostRecent'\n | 'Oldest'\n | 'HighestRating'\n | 'LowestRating'\n | 'MostHelpful'\n | 'LeastHelpful'\n | 'MostAsked'\n | 'MostAnswered'\n | 'LeastConcerns'\n | 'MostConcerns'\n | 'ReviewerNameAsc'\n | 'ReviewerNameDesc';\n\n/**\n * ReviewsGetRatingsSummary Input Action.\n */\nexport class GetProductReviewsInput implements IActionInput {\n /**\n * The Id representing the product to get the reviews for.\n */\n public productId: string;\n\n /**\n * The ID representing the tenant.\n */\n public tenantId: string;\n\n /**\n * The market for which to get the reviews from.\n */\n public localeListFilter: string;\n\n /**\n * Number of reviews to be shown on each page.\n */\n public pageSize: number;\n\n /**\n * Order in which reviews to be shown.\n */\n public orderBy: string;\n\n /**\n * Need to set this value if reviews need to be filtered with specific star rating .\n */\n public starFilters?: string;\n\n /**\n * Need to set this value if we need to skip few reviews.\n */\n public skipItems: number;\n\n /**\n * The continuation token.\n */\n public pageToken: string | null;\n\n /**\n * Selects which data sources to use to retrieve data.\n */\n public dataSources: string | null;\n\n /**\n * The ratings and reviews service endpoint.\n */\n public serviceEndpoint: string;\n\n constructor(\n productId: string,\n tenantId: string,\n localeListFilter: string,\n serviceEndpoint: string,\n orderBy: string = 'MostHelpful',\n starFilters: string = '',\n skipItems: number = 0,\n pageSize: number = 10,\n pageToken: string | null = null,\n dataSources: string | null = null\n ) {\n this.productId = productId;\n this.tenantId = tenantId;\n this.localeListFilter = localeListFilter;\n\n // Max page size which Rnr API supports is 25.\n // Hence if config has page size more than 25, we'll default it to 25.\n this.pageSize = pageSize > 25 ? 25 : pageSize;\n this.orderBy = orderBy;\n this.starFilters = starFilters;\n this.skipItems = skipItems;\n this.pageToken = pageToken;\n this.dataSources = dataSources;\n this.serviceEndpoint = serviceEndpoint;\n }\n\n public getCacheKey = () => `${this.productId}-${this.tenantId}-${this.localeListFilter}-${this.pageSize}-${this.orderBy}-${this.starFilters}-${this.skipItems}`;\n\n public getCacheObjectType = () => 'ProductReview';\n\n public dataCacheType = (): CacheType => 'request';\n}\n","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { FilterDeliveryModeOption, ProductDeliveryOptions, ReleasedProductType, SimpleProduct } 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 = (inputData: ICreateActionContext>): 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/**\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(item => item.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature')?.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(input.productId, input.channelId,\n undefined, undefined, ctx.requestContext);\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) ? FilterDeliveryModeOption.FilterOutNonPickupDeliveryMode : 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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\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 searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny,\n ICommerceApiSettings, ICreateActionContext, IGeneric } 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(response => {\n return Array.isArray(response) ? response[0] : response;\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IProductRefinerHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { ProductPrice, ProductRefinerValue, ProductSearchResult, SimpleProduct, SortingInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { observable } from 'mobx';\r\n\r\nimport { listPageType } from './actions';\r\n\r\n/**\r\n * ListPageState class.\r\n */\r\nexport class ListPageState {\r\n @observable public activeFilters: ProductRefinerValue[] | null = null;\r\n\r\n @observable public activeProducts: ProductSearchResult[] = [];\r\n\r\n @observable public sortingCritera: SortingInfo | null = null;\r\n\r\n @observable public currentPageNumber: number | null = null;\r\n\r\n @observable public refiners: IProductRefinerHierarchy[] | null = null;\r\n\r\n @observable public totalProductCount: number | undefined;\r\n\r\n @observable public pageSize: number = 10;\r\n\r\n @observable public pageType: listPageType = 'Unknown';\r\n\r\n @observable public featureProduct: SimpleProduct | null = null;\r\n\r\n @observable public productPrices: ProductPrice[] | undefined = [];\r\n}\r\n\r\n/**\r\n * ListPageStateInput - action input.\r\n */\r\nexport class ListPageStateInput implements IActionInput {\r\n public getCacheKey = () => 'ListPageState';\r\n\r\n public getCacheObjectType = () => 'ListPageState';\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nexport async function listPageStateAction(input: ListPageStateInput, ctx: IActionContext): Promise {\r\n return new ListPageState();\r\n}\r\n\r\n/**\r\n * Create new input for create action.\r\n * @param inputData\r\n */\r\nexport const createListPageInput = (inputData: ICreateActionContext>): IActionInput => {\r\n return new ListPageStateInput();\r\n};\r\n\r\n/**\r\n * ListPageState - create action.\r\n */\r\nexport default createObservableDataAction({\r\n action: >listPageStateAction,\r\n input: createListPageInput\r\n});\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { PurchaseOrderClass } from '../Entities/CommerceModels.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 ","var 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","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\n constructor(orderTemplateId: string) {\n this.orderTemplateId = orderTemplateId;\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 };\n return cartLine;\n });\n await addCartLinesAsync({ callerContext: context }, cartState.cart.Id, cartLines, cartState.cart.Version).catch(error => {\n context.telemetry.trace(error);\n context.telemetry.trace('Unable to add order template to cart.');\n throw error;\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 } from '../utils/helpers';\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) => {\n const view = ((msdyn365Commerce as unknown) as IMSDyn365CommerceExtension).componentBinder(lookupKey);\n if (view) {\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) => {\n name = name.toLowerCase();\n return (\n (themeBinder &&\n (getBinder(`__local__|__local__|themes|${themeBinder.name}|views|${moduleBinder.name}|components|${name}`) ||\n getBinder(`__local__|__local__|themes|${themeBinder.name}|views|components|${name}`) ||\n getBinder(`__local__|__local__|themes|${themeBinder.name}|views|components|${moduleBinder.name}|${name}`) ||\n getBinder(\n `${themeBinder.moduleNamespace}|${themeBinder.packageName}|modules|${themeBinder.name}|views|components|${moduleBinder.name}|${name}`\n ) ||\n getBinder(\n `${themeBinder.moduleNamespace}|${themeBinder.packageName}|modules|${themeBinder.name}|views|components|${name}`\n ))) ||\n getBinder(`${moduleBinder.moduleNamespace}|${moduleBinder.packageName}|views|${moduleBinder.name}|components|${name}`)\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) => {\n const parentModuleBinder = getModuleBinder(getModuleName(moduleBinder.parentDefinitionPath));\n\n return (\n getBinder(`${moduleBinder.moduleNamespace}|${moduleBinder.packageName}|views|${moduleBinder.name}|components|${name}`) ||\n (parentModuleBinder &&\n getBinder(\n `${parentModuleBinder.moduleNamespace}|${parentModuleBinder.packageName}|views|${parentModuleBinder.name}|components|${name}`\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 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\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) || { view: null };\n }\n\n let component = lookupFunc(moduleBinder, themeBinder, name);\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);\n }\n\n // If no component file found, fall back to module's default component\n if (!component) {\n component = defaultComponentLookupFunc(moduleBinder, name);\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 fileName = path.basename(__filename);\n if (fileName) {\n fileName = fileName.replace('.component.tsx', '');\n fileName = fileName.replace('.component.js', '');\n }\n\n const themeBinder = getModuleBinder(props.context.actionContext.requestContext.params.theme);\n let componentView = getComponent(fileName, 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, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n import { CartClass, SalesOrderClass, LoyaltyPointRedemptionEstimateClass, TenderLineClass, SalesLineDeliveryOptionClass, CartDeliveryPreferencesClass, DeliveryOptionClass, TenderDiscountLineClass, ReceiptClass, CardPaymentAcceptPointClass, CardPaymentAcceptResultClass, CartPromotionsClass, CartPromotionLineClass, CartLineUserAlertsClass, ChargeCodeClass, TenderTypeAmountClass, CartLineValidationResultsClass } from '../Entities/CommerceModels.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, CartClass, '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): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Checkout', true, SalesOrderClass, 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion });\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):AsyncResult {\n const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion);\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, LoyaltyPointRedemptionEstimateClass, '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, TenderLineClass, '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, SalesLineDeliveryOptionClass, '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, SalesLineDeliveryOptionClass, '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, CartDeliveryPreferencesClass, '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, DeliveryOptionClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, SalesOrderClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, TenderDiscountLineClass, '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, CartClass, '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, CartClass, '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, ReceiptClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CardPaymentAcceptPointClass, '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, CardPaymentAcceptResultClass, '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): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallOrder', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId });\n } \n \n export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null):AsyncResult {\n const request = createRecallOrderInput(transactionId, salesId);\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, CartClass, '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, CartClass, '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, CartClass, '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, CartPromotionsClass, '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, CartPromotionLineClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartLineUserAlertsClass, '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, CartLineUserAlertsClass, '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, ChargeCodeClass, '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, CartClass, '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, CartClass, '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, TenderTypeAmountClass, '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, CartLineValidationResultsClass, '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, TenderLineClass, '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. All rights reserved.\n * See License.txt 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 callerContext: ctx\n }, orderTemplate);\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\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { addCartLinesAsync, addCouponsAsync, createCartAsync, readAsync, removeCartLinesAsync, searchAsync, updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { getChannelDeliveryOptionConfigurationAsync, getCustomerLoyaltyCardsAsync, getFeatureStatesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { Cart, CartLine, CartSearchCriteria, Coupon, QueryResultSettings } 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\n cart = await updateAsync(\n { callerContext: ctx },\n {\n Id: cart.Id,\n LoyaltyCardId: card[0].CardNumber\n }\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\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 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 ((ctx.requestContext.user.isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Auth) ||\n (!ctx.requestContext.user.isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Anon)) {\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 }\n }\n\n return undefined;\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(cartCookieParts: string[], currentCart: Cart | undefined, ctx: IActionContext): Promise {\n if (ctx.requestContext.user.isAuthenticated && cartCookieParts && cartCookieParts.length === 2 && cartCookieParts[0] === CartTokenPrefix.Anon) {\n const anonCurrentCart = await readAsync({ callerContext: ctx, bypassCache: 'none' }, cartCookieParts[1]);\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[] = [\n 'Dynamics.AX.Application.RetailB2BEcommerceFeature',\n 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature',\n 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'\n ];\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 = featureStates\n ?.find((featureState: FeatureState) => featureState.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature')?.IsEnabled || false;\n if (isfeatureStatesEnabled) {\n const channelDeliveryOptionConfig = await getChannelDeliveryOptionConfigurationAsync({ callerContext: ctx });\n hasShippingMethod = cartline.DeliveryMode === channelDeliveryOptionConfig.PickupDeliveryModeCodes?.find((deliveryMode: string) => deliveryMode === cartline.DeliveryMode);\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 }\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/**\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. All rights reserved.\n * See License.txt 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 } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IActiveImageConfig, IActivePointsData } from '../active-image';\n\n/**\n * ActiveImageInput.\n */\nexport class ActiveImageInput implements IActionInput {\n\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 searchCriteriaInput.Context = { ChannelId: context.requestContext.apiSettings.channelId, CatalogId: getCatalogId(context.requestContext) };\n searchCriteriaInput.IncludeAttributes = true;\n searchCriteriaInput.ItemIds = itemIds;\n return await ProductsDataActions.searchByCriteriaAsync({ callerContext: context }, searchCriteriaInput);\n\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\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { CacheType, getCatalogId, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { convertToString, IQueryResultSettings, ProductRefinerValue, SortColumn } from '@msdyn365-commerce/retail-proxy';\r\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { toJS } from 'mobx';\r\n\r\nimport { hydrateRefinersFromUrl } from './url-utils';\r\n\r\n/**\r\n * Export listPageType.\r\n */\r\nexport type listPageType = 'Category' | 'Search' | 'Unknown';\r\n\r\n/**\r\n * Get include attributes from config.\r\n * @param inputData - ICreateActionContext.\r\n * @returns Boolean.\r\n */\r\nfunction getIncludeAttributes(inputData: ICreateActionContext, IGeneric>): boolean {\r\n if (inputData && inputData.config && inputData.config.includeAttributes !== undefined && inputData.config.includeAttributes === true) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Get updateRefinerPanel from config.\r\n * @param inputData - ICreateActionContext.\r\n * @returns Boolean.\r\n */\r\nfunction getUpdateRefinerPanel(inputData: ICreateActionContext, IGeneric>): boolean {\r\n return !!inputData.config?.updateRefinerPanel;\r\n}\r\n\r\n/**\r\n * BaseCollection Action Input.\r\n */\r\nexport class BaseCollectionInput implements IActionInput {\r\n public pageType: listPageType;\r\n\r\n public category: number | undefined;\r\n\r\n public searchText: string | undefined;\r\n\r\n public refiners: ProductRefinerValue[];\r\n\r\n public queryResultSettings: IQueryResultSettings;\r\n\r\n public apiSettings: ICommerceApiSettings;\r\n\r\n public includeAttributes: boolean | undefined;\r\n\r\n public locale?: string;\r\n\r\n public isUpdateRefinerPanel?: boolean;\r\n\r\n public catalogId?: number;\r\n\r\n public constructor(\r\n pageType: listPageType,\r\n apiSettings: ICommerceApiSettings,\r\n queryResultSettings: IQueryResultSettings,\r\n refiners: ProductRefinerValue[],\r\n category: number | undefined,\r\n searchText: string | undefined,\r\n includeAttributes: boolean | undefined,\r\n isUpdateRefinerPanel?: boolean | undefined,\r\n locale?: string,\r\n catalogId?: number\r\n ) {\r\n this.pageType = pageType;\r\n this.apiSettings = apiSettings;\r\n this.category = category;\r\n this.searchText = searchText;\r\n this.queryResultSettings = queryResultSettings;\r\n this.refiners = refiners;\r\n this.includeAttributes = includeAttributes;\r\n this.isUpdateRefinerPanel = isUpdateRefinerPanel;\r\n this.locale = locale;\r\n this.catalogId = catalogId ?? 0;\r\n }\r\n\r\n public getCacheKey = () => {\r\n const queryResultSettings = {\r\n ...this.queryResultSettings.Paging,\r\n ...toJS(this.queryResultSettings.Sorting)\r\n };\r\n\r\n const cacheKey = buildCacheKey(\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- disabling this as inputs can be undefined depending on page type\r\n `${this.pageType}-${this.locale}-${this.category || this.searchText}-${this.catalogId}-${this.refiners.map(\r\n refiner => `${refiner.RefinerRecordId + (refiner.LeftValueBoundString || '') + (refiner.RightValueBoundString || '')}-`\r\n )}-${convertToString(queryResultSettings)}`,\r\n this.apiSettings,\r\n this.locale\r\n );\r\n return cacheKey;\r\n };\r\n\r\n public getCacheObjectType = () => 'CollectionActionResult';\r\n\r\n public dataCacheType = (): CacheType => 'request';\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 IGetFullProductsByCollectionData {\r\n text: string;\r\n}\r\n\r\nexport type CollectionClassConstructor = new (\r\n pageType: listPageType,\r\n apiSettings: ICommerceApiSettings,\r\n queryResultSettings: IQueryResultSettings,\r\n refiners: ProductRefinerValue[],\r\n category: number | undefined,\r\n searchText: string | undefined,\r\n includeAttributes: boolean | undefined,\r\n isUpdateRefinerPanel?: boolean | undefined,\r\n locale?: string,\r\n catalogId?: number\r\n) => BaseCollectionInput;\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call.\r\n * @param args\r\n * @param inputClassConstuctor\r\n */\r\nexport const createBaseCollectionInput = (\r\n args: ICreateActionContext,\r\n inputClassConstuctor: CollectionClassConstructor\r\n): BaseCollectionInput => {\r\n const pageType =\r\n args.requestContext.urlTokens.pageType === 'Category' || (args.requestContext.query && args.requestContext.query.categoryId)\r\n ? 'Category'\r\n : 'Search';\r\n\r\n const queryResultSettings = QueryResultSettingsProxy.fromInputData(args).QueryResultSettings;\r\n const queryRefiners = hydrateRefinersFromUrl(args.requestContext);\r\n const includeAttributes = getIncludeAttributes(args);\r\n const isUpdateRefinerPanel = getUpdateRefinerPanel(args);\r\n const catalogId = getCatalogId(args.requestContext);\r\n\r\n if (args.requestContext.query && args.requestContext.query.sorting) {\r\n queryResultSettings.Sorting = { Columns: JSON.parse(decodeURIComponent(args.requestContext.query.sorting)) };\r\n }\r\n\r\n if (pageType === 'Category') {\r\n return new inputClassConstuctor(\r\n pageType,\r\n args.requestContext.apiSettings,\r\n queryResultSettings,\r\n queryRefiners,\r\n +(args.requestContext.urlTokens.itemId || (args.requestContext.query && args.requestContext.query.categoryId) || 0),\r\n undefined,\r\n includeAttributes,\r\n isUpdateRefinerPanel,\r\n args.requestContext.locale,\r\n catalogId\r\n );\r\n } else if (pageType === 'Search' && args.requestContext.query && args.requestContext.query.q) {\r\n return new inputClassConstuctor(\r\n pageType,\r\n args.requestContext.apiSettings,\r\n queryResultSettings,\r\n queryRefiners,\r\n undefined,\r\n args.requestContext.query.q,\r\n includeAttributes,\r\n isUpdateRefinerPanel,\r\n args.requestContext.locale,\r\n catalogId\r\n );\r\n } else if (\r\n pageType === 'Search' &&\r\n args.requestContext.query &&\r\n args.requestContext.query.productId &&\r\n args.requestContext.query.recommendation\r\n ) {\r\n return new inputClassConstuctor(\r\n pageType,\r\n args.requestContext.apiSettings,\r\n queryResultSettings,\r\n queryRefiners,\r\n undefined,\r\n JSON.stringify({ ProductId: args.requestContext.query.productId, Recommendation: args.requestContext.query.recommendation }),\r\n includeAttributes,\r\n isUpdateRefinerPanel,\r\n args.requestContext.locale,\r\n catalogId\r\n );\r\n }\r\n\r\n throw new Error('[getFullProductsForCollection]Unable to create input');\r\n};\r\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\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 call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-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 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// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\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 iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\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 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 TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\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(this.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 setInternalState(this, new URLSearchParamsState(init));\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 validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\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 validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\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) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) 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 validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\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 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\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 defineProperty = require('../internals/object-define-property').f;\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('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\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","var 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","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } 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.RetailB2BEcommerceFeature',\n 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature',\n 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature',\n 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\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({ callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx) }, input.featureNames);\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","var 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 $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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext } 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 = (inputData: ICreateActionContext, orderTemplate: ProductList): 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 callerContext: ctx\n }, orderTemplate);\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\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","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\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 } return array;\n};\n\nvar merge = function (array, left, right, 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 } return array;\n};\n\nmodule.exports = mergeSort;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 (\n inputData.requestContext &&\n inputData.requestContext.user &&\n inputData.requestContext.user.isAuthenticated\n ) {\n return createGetOrderShipmentsHistoryInput({\n Paging: {\n Top: 100,\n Skip: 0\n }\n },\n\n // @ts-expect-error\n null);\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } 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\ninterface SearchConfiguration {\n ProductSortColumns?: SortColumn[];\n}\n\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 || []).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. All rights reserved.\n * See License.txt 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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { InvoicePaidStatus, InvoiceSearchCriteria, InvoiceType, IQueryResultSettings, OrderInvoice, SalesOrdersDataActions } 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\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","var 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 { SuspendedCartClass } from '../Entities/CommerceModels.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, SuspendedCartClass, '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 { WarehouseClass, WarehouseLocationClass } from '../Entities/CommerceModels.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, WarehouseLocationClass, '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, WarehouseClass, '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, WarehouseClass, '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, WarehouseLocationClass, '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, WarehouseLocationClass, '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, WarehouseClass, '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 ","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { createSearchOrgUnitLocationsInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\n\n/**\n * Search Org Unit Locations action createInput method.\n * @param inputData - Current action context.\n * @returns Input needed to call the Search-org-unit-location API.\n */\nexport function createSearchOrgUnitLocationsInputFunc(inputData: ICreateActionContext, IGeneric>): IDataServiceRequest {\n const querySettingsProxy = QueryResultSettingsProxy.fromInputData(inputData);\n return createSearchOrgUnitLocationsInput(querySettingsProxy.QueryResultSettings, {});\n}\n\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/search-org-unit-locations',\n action: >retailAction,\n input: createSearchOrgUnitLocationsInputFunc\n});\n\nexport default retailActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { CommerceListLine } from '@msdyn365-commerce/retail-proxy';\nimport { getByCustomerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CommerceListsDataActions.g';\nimport {\n FullProductInput,\n getFullProducts,\n getProductDetailsCriteriaFromActionInput\n} from '@msdyn365-commerce-modules/retail-actions';\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 callerContext: ctx,\n queryResultSettings: {}\n }, null);\n\n if (wishlists && wishlists.length > 0) {\n const productInputs: FullProductInput[] = [];\n wishlists.forEach((currWishlist) => {\n if (currWishlist.CommerceListLines) {\n currWishlist.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 if (productInputs.length > 0) {\n return getFullProducts(productInputs, ctx)\n .then(products => {\n if (products) {\n return products;\n }\n return [];\n\n })\n .catch(error => {\n ctx.trace(error);\n ctx.telemetry.error(error.message);\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\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 const getActiveWishlistItemsDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/wishlist/wishlist-items/get-items-in-wishlist',\n action: >getActiveWishlistItems,\n input: createInput\n});\n\nexport default getActiveWishlistItemsDataAction;\n","var 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. All rights reserved.\n * See License.txt 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 ? Number(inputData.requestContext.query.skipCount) : 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};\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext } 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 = (inputData: ICreateActionContext, skuNumber: string, channelId: number, matchingDimensionValues?: ProductDimension[]) => {\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(new GetDimensionsForSelectedVariantInput(\n scanResults.Product.MasterProductId ? scanResults.Product.MasterProductId : scanResults.Product.RecordId, input.channelId, input.matchingDimensionValues,\n ctx.requestContext), ctx)\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","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * Regular expressions to validate emails.\n */\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-Z0-9])?)*$/; // eslint-disable-line unicorn/better-regex, security/detect-unsafe-regex, require-unicode-regexp, max-len -- HTML 5 Email Validation Regex.\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * Regular expressions to validate passwords.\n */\nexport abstract class PasswordRegex {\n // eslint-disable-next-line max-len, unicorn/better-regex, require-unicode-regexp -- Default regex from the existing implementation.\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 * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * Regular expressions to validate phone number.\n */\nexport abstract class PhoneRegex {\n\n public static readonly defaultRegex = '^$|^[- +()]*[0-9][- +()0-9]*$';\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 { RecommendationClass, RecommendedElementClass } from '../Entities/CommerceModels.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, RecommendedElementClass, '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 ","var 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(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 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IProductRefinerHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { IQueryResultSettings, ProductRefiner, ProductSearchCriteria } from '@msdyn365-commerce/retail-proxy';\r\nimport { getProductSearchRefinersAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\n/**\r\n * Uses Bulk refiner API to get refiners and child refiner values.\r\n * @param searchCriteria Product search criteria.\r\n * @param maxItems Max items.\r\n * @param queryResultSettings\r\n * @param ctx Action context.\r\n */\r\nexport async function getProductRefinerHierarchy(\r\n searchCriteria: ProductSearchCriteria,\r\n queryResultSettings: IQueryResultSettings,\r\n ctx: IActionContext\r\n): Promise {\r\n return getProductSearchRefinersAsync({ callerContext: ctx, queryResultSettings }, searchCriteria).then(\r\n (productRefiners: ProductRefiner[]) => {\r\n if (!productRefiners) {\r\n ctx.trace('[getRefinersByCriteriaAction] returned no refiners');\r\n return [];\r\n }\r\n\r\n const result = (productRefiners || []).map((productRefiner: ProductRefiner) => productRefiner);\r\n\r\n if (result.length === 0) {\r\n ctx.trace('[getRefinersByCriteriaAction] returned no IProductRefinerHierarchy objects');\r\n return [];\r\n }\r\n\r\n return result;\r\n }\r\n );\r\n}\r\n","var 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","var 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 $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var 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-x/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. All rights reserved.\n * See License.txt 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 // @ts-expect-error:2339\n const { requestContext: { query: { q, top, skip }, apiSettings: { channelId } }, config: { maxItems, itemsPerPage } } = 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. All rights reserved.\n * See License.txt 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(cart: Readonly, promoCodes: string[], actionContext: IActionContext): 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 }).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","var 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-native');\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 defineProperty = require('../internals/object-define-property').f;\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 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 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 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 defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric\n} from '@msdyn365-commerce/core';\nimport { AttributeValue, ProductsDataActions, SimpleProduct, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n getAttributeValuesByConfiguration,\n getSelectedProductIdFromActionInput,\n getSelectedVariant, QueryResultSettingsProxy,\n SelectedVariantInput\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * This setting defines inventory filtering options.\n */\nenum ProductListInventoryFilteringOptions {\n\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 * 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 = (inputData: ICreateActionContext>): AttributesForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n const catalogId = getCatalogId(inputData.requestContext);\n\n if (productId) {\n return new AttributesForSelectedVariantInput(\n +productId, +inputData.requestContext.apiSettings.channelId,\n undefined, catalogId);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n\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 // eslint-disable-next-line promise/prefer-await-to-then -- Existing code.\n return Promise.resolve().then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(input.productId, input.channelId, undefined, undefined,\n context.requestContext);\n\n return getSelectedVariant(selectedVariantInput, context);\n }\n\n return activeProduct;\n })\n // eslint-disable-next-line promise/prefer-await-to-then -- Existing code.\n .then((productResult: SimpleProduct | null) => {\n const activeProduct: SimpleProduct | undefined = productResult;\n\n if (activeProduct) {\n return ProductsDataActions.getAttributeValuesAsync({\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n }, activeProduct.RecordId, input.channelId, input.catalogId);\n }\n\n return null;\n })\n // eslint-disable-next-line promise/prefer-await-to-then -- Existing code.\n .then(async (attributeValues: AttributeValue[] | null) => {\n let channelInventoryConfiguration = null;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n if (context.requestContext.app.config?.productListInventoryDisplay === ProductListInventoryFilteringOptions.HideOOS) {\n channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({ callerContext: context });\n }\n\n return { attributeValues, channelInventoryConfiguration };\n })\n // eslint-disable-next-line promise/prefer-await-to-then -- Existing code.\n .then(result => {\n\n return getAttributeValuesByConfiguration(result.attributeValues, result.channelInventoryConfiguration);\n })\n // eslint-disable-next-line promise/prefer-await-to-then -- Existing code.\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","var 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","\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n const entityDictionary = {};\n \n /**\n * Category entity class.\n */\n export class CategoryClass implements Entities.Category {\n public RecordId: number;\n public OfflineImage: string;\n public Name: string;\n public ParentCategory: number;\n public DisplayOrder: number;\n public Images: Entities.MediaLocation[];\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.Name = \n odataObject.Name;\n \n this.ParentCategory = \n (odataObject.ParentCategory != null) ? parseInt(odataObject.ParentCategory, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryClass'] = CategoryClass;\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.PriceGroup = \n odataObject.PriceGroup;\n \n this.IsCustomerTaxInclusive = \n odataObject.IsCustomerTaxInclusive;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Cellphone = \n odataObject.Cellphone;\n \n this.Email = \n odataObject.Email;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.PersonNameId = \n (odataObject.PersonNameId != null) ? parseInt(odataObject.PersonNameId, 10) : undefined;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.MiddleName = \n odataObject.MiddleName;\n \n this.LastName = \n odataObject.LastName;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Language = \n odataObject.Language;\n \n this.CustomerGroup = \n odataObject.CustomerGroup;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CNPJCPFNumber = \n odataObject.CNPJCPFNumber;\n \n this.IdentificationNumber = \n odataObject.IdentificationNumber;\n \n this.InvoiceAccount = \n odataObject.InvoiceAccount;\n \n this.MandatoryCreditLimit = \n odataObject.MandatoryCreditLimit;\n \n this.CreditRating = \n odataObject.CreditRating;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.BlockedType = \n odataObject.BlockedType;\n \n this.UseOrderNumberReference = \n odataObject.UseOrderNumberReference;\n \n this.OrganizationId = \n odataObject.OrganizationId;\n \n this.UsePurchaseRequest = \n odataObject.UsePurchaseRequest;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.TotalDiscountGroup = \n odataObject.TotalDiscountGroup;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.CommissionSalesGroupId = \n odataObject.CommissionSalesGroupId;\n \n this.TaxExemptNumber = \n odataObject.TaxExemptNumber;\n \n this.VatNumber = \n odataObject.VatNumber;\n \n this.TaxOffice = \n odataObject.TaxOffice;\n \n this.NonChargeableAccount = \n odataObject.NonChargeableAccount;\n \n this.Tag = \n odataObject.Tag;\n \n this.ReceiptSettings = \n odataObject.ReceiptSettings;\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.OptOutPersonalization = \n odataObject.OptOutPersonalization;\n \n this.OptOutWebActivityTracking = \n odataObject.OptOutWebActivityTracking;\n \n this.RetailCustomerTableRecordId = \n (odataObject.RetailCustomerTableRecordId != null) ? parseInt(odataObject.RetailCustomerTableRecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.NewCustomerPartyNumber = \n odataObject.NewCustomerPartyNumber;\n \n this.CustomerAffiliations = undefined;\n if (odataObject.CustomerAffiliations) {\n this.CustomerAffiliations = [];\n for (var i = 0; i < odataObject.CustomerAffiliations.length; i++) {\n if (odataObject.CustomerAffiliations[i] != null) {\n if (odataObject.CustomerAffiliations[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAffiliations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAffiliations[i] = new entityDictionary[className](odataObject.CustomerAffiliations[i])\n }\n } else {\n this.CustomerAffiliations[i] = new CustomerAffiliationClass(odataObject.CustomerAffiliations[i]);\n }\n } else {\n this.CustomerAffiliations[i] = undefined;\n }\n }\n }\n \n this.Addresses = undefined;\n if (odataObject.Addresses) {\n this.Addresses = [];\n for (var i = 0; i < odataObject.Addresses.length; i++) {\n if (odataObject.Addresses[i] != null) {\n if (odataObject.Addresses[i]['@odata.type'] != null) {\n var className: string = odataObject.Addresses[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Addresses[i] = new entityDictionary[className](odataObject.Addresses[i])\n }\n } else {\n this.Addresses[i] = new AddressClass(odataObject.Addresses[i]);\n }\n } else {\n this.Addresses[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.TitleRecordId = \n (odataObject.TitleRecordId != null) ? parseInt(odataObject.TitleRecordId, 10) : undefined;\n \n this.IsFloorLimitBlocked = \n odataObject.IsFloorLimitBlocked;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.IsB2bAdmin = \n odataObject.IsB2bAdmin;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new ContactInfoClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.AllowOnAccountPayment = \n odataObject.AllowOnAccountPayment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerClass'] = CustomerClass;\n \n /**\n * Employee entity class.\n */\n export class EmployeeClass implements Entities.Employee {\n public StaffId: string;\n public NameOnReceipt: string;\n public Name: string;\n public CultureName: string;\n public NumberOfDaysToPasswordExpiry: number;\n public Permissions: Entities.EmployeePermissions;\n public Images: Entities.MediaLocation[];\n public DefaultImage: string;\n public DefaultCommissionSalesGroup: string;\n public IdentifierTypeValue: number;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.NameOnReceipt = \n odataObject.NameOnReceipt;\n \n this.Name = \n odataObject.Name;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.NumberOfDaysToPasswordExpiry = \n odataObject.NumberOfDaysToPasswordExpiry;\n \n if (odataObject.Permissions == null) {\n this.Permissions = undefined;\n } else if (odataObject.Permissions['@odata.type'] == null) {\n this.Permissions = new EmployeePermissionsClass(odataObject.Permissions);\n } else {\n var className: string = odataObject.Permissions['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Permissions = new entityDictionary[className](odataObject.Permissions)\n }\n }\n\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.DefaultCommissionSalesGroup = \n odataObject.DefaultCommissionSalesGroup;\n \n this.IdentifierTypeValue = \n odataObject.IdentifierTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeClass'] = EmployeeClass;\n \n /**\n * Checklist entity class.\n */\n export class ChecklistClass implements Entities.Checklist {\n public RecordId: number;\n public Tasks: Entities.ChecklistTask[];\n public Version: string;\n public ProcessId: string;\n public Name: string;\n public Description: string;\n public AssignedToChannelId: number;\n public AssignedToWorkerPersonnelNumber: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public TargetDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Tasks = undefined;\n if (odataObject.Tasks) {\n this.Tasks = [];\n for (var i = 0; i < odataObject.Tasks.length; i++) {\n if (odataObject.Tasks[i] != null) {\n if (odataObject.Tasks[i]['@odata.type'] != null) {\n var className: string = odataObject.Tasks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Tasks[i] = new entityDictionary[className](odataObject.Tasks[i])\n }\n } else {\n this.Tasks[i] = new ChecklistTaskClass(odataObject.Tasks[i]);\n }\n } else {\n this.Tasks[i] = undefined;\n }\n }\n }\n \n this.Version = \n odataObject.Version;\n \n this.ProcessId = \n odataObject.ProcessId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.AssignedToChannelId = \n (odataObject.AssignedToChannelId != null) ? parseInt(odataObject.AssignedToChannelId, 10) : undefined;\n \n this.AssignedToWorkerPersonnelNumber = \n odataObject.AssignedToWorkerPersonnelNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TargetDateTime = \n (odataObject.TargetDateTime instanceof Date) ? odataObject.TargetDateTime\n : (odataObject.TargetDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TargetDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistClass'] = ChecklistClass;\n \n /**\n * SalesOrder entity class.\n */\n export class SalesOrderClass implements Entities.SalesOrder {\n public DocumentStatusValue: number;\n public RecordId: number;\n public StatusValue: number;\n public McrOrderStopped: boolean;\n public Shipments: Entities.Shipment[];\n public AggregateInventoryQuantities: Entities.InventoryQuantities;\n public UnifiedDeliveryInformation: Entities.DeliveryInformation;\n public PaymentStatusValue: number;\n public DetailedOrderStatusValue: number;\n public AffiliationLoyaltyTierLines: Entities.SalesAffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public EstimatedShippingAmount: number;\n public AmountPaid: number;\n public CustomerOrderRemainingBalance: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public AvailableDepositAmount: number;\n public BeginDateTime: Date;\n public CreatedDateTime: Date;\n public BusinessDate: Date;\n public CalculatedDepositAmount: number;\n public CancellationCharge: number;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public ChargeAmount: number;\n public ChargeLines: Entities.ChargeLine[];\n public Comment: string;\n public Coupons: Entities.Coupon[];\n public InvoiceComment: string;\n public ContactInformationCollection: Entities.ContactInformation[];\n public CurrencyCode: string;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public CustomerOrderTypeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountCodes: string[];\n public EntryStatusValue: number;\n public GrossAmount: number;\n public HasLoyaltyPayment: boolean;\n public Id: string;\n public InternalTransactionId: string;\n public SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShipmentLineId = \n odataObject.ShipmentLineId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.OrderedQuantity = \n (odataObject.OrderedQuantity != null) ? parseFloat(odataObject.OrderedQuantity) : undefined;\n \n this.DeliveredQuantity = \n (odataObject.DeliveredQuantity != null) ? parseFloat(odataObject.DeliveredQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentLineClass'] = ShipmentLineClass;\n \n /**\n * Transaction entity class.\n */\n export class TransactionClass implements Entities.Transaction {\n public Id: string;\n public StoreId: string;\n public TerminalId: string;\n public IsCreatedOffline: boolean;\n public StaffId: string;\n public LanguageId: string;\n public ShiftId: string;\n public ShiftTerminalId: string;\n public Description: string;\n public ReceiptId: string;\n public GrossAmount: number;\n public TotalAmount: number;\n public CreatedDateTime: Date;\n public TransactionTypeValue: number;\n public TransactionStatusValue: number;\n public BeginDateTime: Date;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public FromSafe: string;\n public ToSafe: string;\n public FromShiftTerminalId: string;\n public ToShiftTerminalId: string;\n public FromShiftId: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n public ToShiftId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ShiftId = \n odataObject.ShiftId;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.Description = \n odataObject.Description;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.FromSafe = \n odataObject.FromSafe;\n \n this.ToSafe = \n odataObject.ToSafe;\n \n this.FromShiftTerminalId = \n odataObject.FromShiftTerminalId;\n \n this.ToShiftTerminalId = \n odataObject.ToShiftTerminalId;\n \n this.FromShiftId = \n odataObject.FromShiftId;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n this.ToShiftId = \n odataObject.ToShiftId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionClass'] = TransactionClass;\n \n /**\n * ShiftReconciliationLine entity class.\n */\n export class ShiftReconciliationLineClass\n extends TransactionClass\n implements Entities.ShiftReconciliationLine {\n public GroupId: number;\n public GroupDescription: string;\n public ShiftGroupLinesCount: number;\n public ShiftGroupLinesClosedCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupDescription = \n odataObject.GroupDescription;\n \n this.ShiftGroupLinesCount = \n (odataObject.ShiftGroupLinesCount != null) ? parseInt(odataObject.ShiftGroupLinesCount, 10) : undefined;\n \n this.ShiftGroupLinesClosedCount = \n (odataObject.ShiftGroupLinesClosedCount != null) ? parseInt(odataObject.ShiftGroupLinesClosedCount, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShiftReconciliationLine\";\n \n }\n }\n entityDictionary['ShiftReconciliationLineClass'] = ShiftReconciliationLineClass;\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity class.\n */\n export class ShiftReconciliationLineRetrievalCriteriaClass implements Entities.ShiftReconciliationLineRetrievalCriteria {\n public TransactionTypeValues: number[];\n public ShiftReconciliationLineStatusValue: number;\n public Shifts: Entities.ShiftKey[];\n public DestinationShift: Entities.ShiftKey;\n public SourceShift: Entities.ShiftKey;\n public SourceSafe: string;\n public DestinationSafe: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionTypeValues = undefined;\n if (odataObject.TransactionTypeValues) {\n this.TransactionTypeValues = [];\n for (var i = 0; i < odataObject.TransactionTypeValues.length; i++) {\n if (odataObject.TransactionTypeValues[i] != null) {\n this.TransactionTypeValues[i] = \n odataObject.TransactionTypeValues[i];\n } else {\n this.TransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.ShiftReconciliationLineStatusValue = \n odataObject.ShiftReconciliationLineStatusValue;\n \n this.Shifts = undefined;\n if (odataObject.Shifts) {\n this.Shifts = [];\n for (var i = 0; i < odataObject.Shifts.length; i++) {\n if (odataObject.Shifts[i] != null) {\n if (odataObject.Shifts[i]['@odata.type'] != null) {\n var className: string = odataObject.Shifts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shifts[i] = new entityDictionary[className](odataObject.Shifts[i])\n }\n } else {\n this.Shifts[i] = new ShiftKeyClass(odataObject.Shifts[i]);\n }\n } else {\n this.Shifts[i] = undefined;\n }\n }\n }\n \n if (odataObject.DestinationShift == null) {\n this.DestinationShift = undefined;\n } else if (odataObject.DestinationShift['@odata.type'] == null) {\n this.DestinationShift = new ShiftKeyClass(odataObject.DestinationShift);\n } else {\n var className: string = odataObject.DestinationShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationShift = new entityDictionary[className](odataObject.DestinationShift)\n }\n }\n\n \n if (odataObject.SourceShift == null) {\n this.SourceShift = undefined;\n } else if (odataObject.SourceShift['@odata.type'] == null) {\n this.SourceShift = new ShiftKeyClass(odataObject.SourceShift);\n } else {\n var className: string = odataObject.SourceShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceShift = new entityDictionary[className](odataObject.SourceShift)\n }\n }\n\n \n this.SourceSafe = \n odataObject.SourceSafe;\n \n this.DestinationSafe = \n odataObject.DestinationSafe;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n }\n }\n entityDictionary['ShiftReconciliationLineRetrievalCriteriaClass'] = ShiftReconciliationLineRetrievalCriteriaClass;\n \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: number;\n public ProductSortColumnsLabels: Entities.LocalizedText[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductSortColumns = undefined;\n if (odataObject.ProductSortColumns) {\n this.ProductSortColumns = [];\n for (var i = 0; i < odataObject.ProductSortColumns.length; i++) {\n if (odataObject.ProductSortColumns[i] != null) {\n if (odataObject.ProductSortColumns[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumns[i] = new entityDictionary[className](odataObject.ProductSortColumns[i])\n }\n } else {\n this.ProductSortColumns[i] = new SortColumnClass(odataObject.ProductSortColumns[i]);\n }\n } else {\n this.ProductSortColumns[i] = undefined;\n }\n }\n }\n \n this.ProductSearchServiceTypeValue = \n odataObject.ProductSearchServiceTypeValue;\n \n this.ProductSortColumnsLabels = undefined;\n if (odataObject.ProductSortColumnsLabels) {\n this.ProductSortColumnsLabels = [];\n for (var i = 0; i < odataObject.ProductSortColumnsLabels.length; i++) {\n if (odataObject.ProductSortColumnsLabels[i] != null) {\n if (odataObject.ProductSortColumnsLabels[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumnsLabels[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumnsLabels[i] = new entityDictionary[className](odataObject.ProductSortColumnsLabels[i])\n }\n } else {\n this.ProductSortColumnsLabels[i] = new LocalizedTextClass(odataObject.ProductSortColumnsLabels[i]);\n }\n } else {\n this.ProductSortColumnsLabels[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchConfigurationClass'] = SearchConfigurationClass;\n \n /**\n * CustomerTimelineItem entity class.\n */\n export class CustomerTimelineItemClass implements Entities.CustomerTimelineItem {\n public CustomerId: string;\n public Description: string;\n public Id: string;\n public EntityType: string;\n public TypeId: string;\n public StaffId: string;\n public StartDateTime: Date;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Description = \n odataObject.Description;\n \n this.Id = \n odataObject.Id;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemClass'] = CustomerTimelineItemClass;\n \n /**\n * AttributeDefinition entity class.\n */\n export class AttributeDefinitionClass implements Entities.AttributeDefinition {\n public RecordId: number;\n public Name: string;\n public AttributeTypeName: string;\n public ExtDataType: Entities.ExtensibleAttributeDataType;\n public DataTypeValue: number;\n public IsHidden: boolean;\n public IsMandatory: boolean;\n public IsMultiValue: boolean;\n public IsEnumeration: boolean;\n public TranslationDetails: Entities.AttributeTranslationDetails[];\n public EnumerationDetails: Entities.AttributeEnumeration[];\n public DefaultValue: Entities.CommercePropertyValue;\n public UpperBound: Entities.CommercePropertyValue;\n public LowerBound: Entities.CommercePropertyValue;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.AttributeTypeName = \n odataObject.AttributeTypeName;\n \n if (odataObject.ExtDataType == null) {\n this.ExtDataType = undefined;\n } else if (odataObject.ExtDataType['@odata.type'] == null) {\n this.ExtDataType = new ExtensibleAttributeDataTypeClass(odataObject.ExtDataType);\n } else {\n var className: string = odataObject.ExtDataType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtDataType = new entityDictionary[className](odataObject.ExtDataType)\n }\n }\n\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.IsMandatory = \n odataObject.IsMandatory;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsEnumeration = \n odataObject.IsEnumeration;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.EnumerationDetails = undefined;\n if (odataObject.EnumerationDetails) {\n this.EnumerationDetails = [];\n for (var i = 0; i < odataObject.EnumerationDetails.length; i++) {\n if (odataObject.EnumerationDetails[i] != null) {\n if (odataObject.EnumerationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.EnumerationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.EnumerationDetails[i] = new entityDictionary[className](odataObject.EnumerationDetails[i])\n }\n } else {\n this.EnumerationDetails[i] = new AttributeEnumerationClass(odataObject.EnumerationDetails[i]);\n }\n } else {\n this.EnumerationDetails[i] = undefined;\n }\n }\n }\n \n if (odataObject.DefaultValue == null) {\n this.DefaultValue = undefined;\n } else if (odataObject.DefaultValue['@odata.type'] == null) {\n this.DefaultValue = new CommercePropertyValueClass(odataObject.DefaultValue);\n } else {\n var className: string = odataObject.DefaultValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DefaultValue = new entityDictionary[className](odataObject.DefaultValue)\n }\n }\n\n \n if (odataObject.UpperBound == null) {\n this.UpperBound = undefined;\n } else if (odataObject.UpperBound['@odata.type'] == null) {\n this.UpperBound = new CommercePropertyValueClass(odataObject.UpperBound);\n } else {\n var className: string = odataObject.UpperBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpperBound = new entityDictionary[className](odataObject.UpperBound)\n }\n }\n\n \n if (odataObject.LowerBound == null) {\n this.LowerBound = undefined;\n } else if (odataObject.LowerBound['@odata.type'] == null) {\n this.LowerBound = new CommercePropertyValueClass(odataObject.LowerBound);\n } else {\n var className: string = odataObject.LowerBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LowerBound = new entityDictionary[className](odataObject.LowerBound)\n }\n }\n\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionClass'] = AttributeDefinitionClass;\n \n /**\n * AttributeTranslationDetails entity class.\n */\n export class AttributeTranslationDetailsClass implements Entities.AttributeTranslationDetails {\n public AttributeRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeTranslationDetailsClass'] = AttributeTranslationDetailsClass;\n \n /**\n * AttributeEnumeration entity class.\n */\n export class AttributeEnumerationClass implements Entities.AttributeEnumeration {\n public OrdinalNumber: number;\n public EnumerationValue: string;\n public AttributeEnumerationTranslations: Entities.AttributeEnumerationTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrdinalNumber = \n odataObject.OrdinalNumber;\n \n this.EnumerationValue = \n odataObject.EnumerationValue;\n \n this.AttributeEnumerationTranslations = undefined;\n if (odataObject.AttributeEnumerationTranslations) {\n this.AttributeEnumerationTranslations = [];\n for (var i = 0; i < odataObject.AttributeEnumerationTranslations.length; i++) {\n if (odataObject.AttributeEnumerationTranslations[i] != null) {\n if (odataObject.AttributeEnumerationTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeEnumerationTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeEnumerationTranslations[i] = new entityDictionary[className](odataObject.AttributeEnumerationTranslations[i])\n }\n } else {\n this.AttributeEnumerationTranslations[i] = new AttributeEnumerationTranslationClass(odataObject.AttributeEnumerationTranslations[i]);\n }\n } else {\n this.AttributeEnumerationTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationClass'] = AttributeEnumerationClass;\n \n /**\n * AttributeEnumerationTranslation entity class.\n */\n export class AttributeEnumerationTranslationClass implements Entities.AttributeEnumerationTranslation {\n public LanguageId: string;\n public EnumerationTranslationValue: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.EnumerationTranslationValue = \n odataObject.EnumerationTranslationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationTranslationClass'] = AttributeEnumerationTranslationClass;\n \n /**\n * AttributeDefinitionCriteria entity class.\n */\n export class AttributeDefinitionCriteriaClass implements Entities.AttributeDefinitionCriteria {\n public AttributeGroupIdentifier: number;\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifier = \n (odataObject.AttributeGroupIdentifier != null) ? parseInt(odataObject.AttributeGroupIdentifier, 10) : undefined;\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionCriteriaClass'] = AttributeDefinitionCriteriaClass;\n \n /**\n * AttributeGroupDefinition entity class.\n */\n export class AttributeGroupDefinitionClass implements Entities.AttributeGroupDefinition {\n public RecordId: number;\n public Name: string;\n public TranslationDetails: Entities.AttributeGroupTranslationDetails[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeGroupTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionClass'] = AttributeGroupDefinitionClass;\n \n /**\n * AttributeGroupTranslationDetails entity class.\n */\n export class AttributeGroupTranslationDetailsClass implements Entities.AttributeGroupTranslationDetails {\n public AttributeGroupRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupRecordId = \n (odataObject.AttributeGroupRecordId != null) ? parseInt(odataObject.AttributeGroupRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupTranslationDetailsClass'] = AttributeGroupTranslationDetailsClass;\n \n /**\n * AttributeGroupDefinitionCriteria entity class.\n */\n export class AttributeGroupDefinitionCriteriaClass implements Entities.AttributeGroupDefinitionCriteria {\n public AttributeGroupIdentifiers: number[];\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifiers = undefined;\n if (odataObject.AttributeGroupIdentifiers) {\n this.AttributeGroupIdentifiers = [];\n for (var i = 0; i < odataObject.AttributeGroupIdentifiers.length; i++) {\n if (odataObject.AttributeGroupIdentifiers[i] != null) {\n this.AttributeGroupIdentifiers[i] = \n parseInt(odataObject.AttributeGroupIdentifiers[i], 10);\n } else {\n this.AttributeGroupIdentifiers[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionCriteriaClass'] = AttributeGroupDefinitionCriteriaClass;\n \n /**\n * CountyInfo entity class.\n */\n export class CountyInfoClass implements Entities.CountyInfo {\n public Name: string;\n public CountyId: string;\n public CountryRegionId: string;\n public StateId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountyInfoClass'] = CountyInfoClass;\n \n /**\n * CustomerGroup entity class.\n */\n export class CustomerGroupClass implements Entities.CustomerGroup {\n public CustomerGroupNumber: string;\n public CustomerGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerGroupNumber = \n odataObject.CustomerGroupNumber;\n \n this.CustomerGroupName = \n odataObject.CustomerGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerGroupClass'] = CustomerGroupClass;\n \n /**\n * DiscountLine entity class.\n */\n export class DiscountLineClass implements Entities.DiscountLine {\n public SaleLineNumber: number;\n public OfferId: string;\n public OfferName: string;\n public Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: number;\n public LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PriceOverrideRestrictionValue = \n odataObject.PriceOverrideRestrictionValue;\n \n this.AllowPriceOverride = \n odataObject.AllowPriceOverride;\n \n this.MaximumDiscountPercentage = \n (odataObject.MaximumDiscountPercentage != null) ? parseFloat(odataObject.MaximumDiscountPercentage) : undefined;\n \n this.MaximumLineDiscountAmount = \n (odataObject.MaximumLineDiscountAmount != null) ? parseFloat(odataObject.MaximumLineDiscountAmount) : undefined;\n \n this.MaximumLineReturnAmount = \n (odataObject.MaximumLineReturnAmount != null) ? parseFloat(odataObject.MaximumLineReturnAmount) : undefined;\n \n this.MaximumTotalDiscountAmount = \n (odataObject.MaximumTotalDiscountAmount != null) ? parseFloat(odataObject.MaximumTotalDiscountAmount) : undefined;\n \n this.MaximumTotalDiscountPercentage = \n (odataObject.MaximumTotalDiscountPercentage != null) ? parseFloat(odataObject.MaximumTotalDiscountPercentage) : undefined;\n \n this.MaxTotalReturnAmount = \n (odataObject.MaxTotalReturnAmount != null) ? parseFloat(odataObject.MaxTotalReturnAmount) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.Roles = undefined;\n if (odataObject.Roles) {\n this.Roles = [];\n for (var i = 0; i < odataObject.Roles.length; i++) {\n if (odataObject.Roles[i] != null) {\n this.Roles[i] = \n odataObject.Roles[i];\n } else {\n this.Roles[i] = undefined;\n }\n }\n }\n \n this.AllowUseSharedShift = \n odataObject.AllowUseSharedShift;\n \n this.AllowManageSharedShift = \n odataObject.AllowManageSharedShift;\n \n this.AllowTaskGuides = \n odataObject.AllowTaskGuides;\n \n this.AllowSaleOutsideAssortment = \n odataObject.AllowSaleOutsideAssortment;\n \n this.AllowPrintingReceiptCopy = \n odataObject.AllowPrintingReceiptCopy;\n \n this.AllowSkipFiscalRegistration = \n odataObject.AllowSkipFiscalRegistration;\n \n this.AllowSkipRegistrationOrMarkAsRegistered = \n odataObject.AllowSkipRegistrationOrMarkAsRegistered;\n \n this.AllowPostponeRegistration = \n odataObject.AllowPostponeRegistration;\n \n this.AllowCreateTransferOrder = \n odataObject.AllowCreateTransferOrder;\n \n this.AllowAcceptOrder = \n odataObject.AllowAcceptOrder;\n \n this.AllowTaskManagement = \n odataObject.AllowTaskManagement;\n \n this.AllowRejectOrder = \n odataObject.AllowRejectOrder;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.AllowPostInventoryAdjustment = \n odataObject.AllowPostInventoryAdjustment;\n \n this.AllowPostStockCounting = \n odataObject.AllowPostStockCounting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AcceptPageUrl = \n odataObject.AcceptPageUrl;\n \n this.AcceptPageSubmitUrl = \n odataObject.AcceptPageSubmitUrl;\n \n this.MessageOrigin = \n odataObject.MessageOrigin;\n \n this.AcceptPageContent = \n odataObject.AcceptPageContent;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public LastReturnProcessedTime: Date;\n public SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.AgreementPrice = \n (odataObject.AgreementPrice != null) ? parseFloat(odataObject.AgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\n \n this.ReturnChannelId = \n (odataObject.ReturnChannelId != null) ? parseInt(odataObject.ReturnChannelId, 10) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SalesDate = \n (odataObject.SalesDate instanceof Date) ? odataObject.SalesDate\n : (odataObject.SalesDate != null) ? jsonLightReadStringPropertyValue(odataObject.SalesDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.SavedQuantity = \n (odataObject.SavedQuantity != null) ? parseFloat(odataObject.SavedQuantity) : undefined;\n \n this.IsSavedDiscount = \n odataObject.IsSavedDiscount;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyPercentageDiscount = \n (odataObject.LoyaltyPercentageDiscount != null) ? parseFloat(odataObject.LoyaltyPercentageDiscount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.TenderDiscountPercentage = \n (odataObject.TenderDiscountPercentage != null) ? parseFloat(odataObject.TenderDiscountPercentage) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.Found = \n odataObject.Found;\n \n this.DateToActivateItem = \n (odataObject.DateToActivateItem instanceof Date) ? odataObject.DateToActivateItem\n : (odataObject.DateToActivateItem != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivateItem, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.QuantityDiscounted = \n (odataObject.QuantityDiscounted != null) ? parseFloat(odataObject.QuantityDiscounted) : undefined;\n \n this.UnitQuantity = \n (odataObject.UnitQuantity != null) ? parseFloat(odataObject.UnitQuantity) : undefined;\n \n if (odataObject.UnitOfMeasureConversion == null) {\n this.UnitOfMeasureConversion = undefined;\n } else if (odataObject.UnitOfMeasureConversion['@odata.type'] == null) {\n this.UnitOfMeasureConversion = new UnitOfMeasureConversionClass(odataObject.UnitOfMeasureConversion);\n } else {\n var className: string = odataObject.UnitOfMeasureConversion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnitOfMeasureConversion = new entityDictionary[className](odataObject.UnitOfMeasureConversion)\n }\n }\n\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.PeriodicDiscountPossibilities = undefined;\n if (odataObject.PeriodicDiscountPossibilities) {\n this.PeriodicDiscountPossibilities = [];\n for (var i = 0; i < odataObject.PeriodicDiscountPossibilities.length; i++) {\n if (odataObject.PeriodicDiscountPossibilities[i] != null) {\n if (odataObject.PeriodicDiscountPossibilities[i]['@odata.type'] != null) {\n var className: string = odataObject.PeriodicDiscountPossibilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PeriodicDiscountPossibilities[i] = new entityDictionary[className](odataObject.PeriodicDiscountPossibilities[i])\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = new DiscountLineClass(odataObject.PeriodicDiscountPossibilities[i]);\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.ReturnLabelProperties == null) {\n this.ReturnLabelProperties = undefined;\n } else if (odataObject.ReturnLabelProperties['@odata.type'] == null) {\n this.ReturnLabelProperties = new ReturnLabelContentClass(odataObject.ReturnLabelProperties);\n } else {\n var className: string = odataObject.ReturnLabelProperties['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLabelProperties = new entityDictionary[className](odataObject.ReturnLabelProperties)\n }\n }\n\n \n this.LineMultilineDiscOnItem = \n odataObject.LineMultilineDiscOnItem;\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.LineMultilineDiscOnItemValue = \n odataObject.LineMultilineDiscOnItemValue;\n \n this.WasChanged = \n odataObject.WasChanged;\n \n this.OriginalSalesOrderUnitOfMeasure = \n odataObject.OriginalSalesOrderUnitOfMeasure;\n \n this.InventOrderUnitOfMeasure = \n odataObject.InventOrderUnitOfMeasure;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.IsLoyaltyDiscountApplied = \n odataObject.IsLoyaltyDiscountApplied;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ReturnLoyaltyRewardPointLines = undefined;\n if (odataObject.ReturnLoyaltyRewardPointLines) {\n this.ReturnLoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.ReturnLoyaltyRewardPointLines.length; i++) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i] != null) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.ReturnLoyaltyRewardPointLines[i])\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.ReturnLoyaltyRewardPointLines[i]);\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n if (odataObject.DetailedLineStatus == null) {\n this.DetailedLineStatus = undefined;\n } else if (odataObject.DetailedLineStatus['@odata.type'] == null) {\n this.DetailedLineStatus = new DetailedLineStatusClass(odataObject.DetailedLineStatus);\n } else {\n var className: string = odataObject.DetailedLineStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DetailedLineStatus = new entityDictionary[className](odataObject.DetailedLineStatus)\n }\n }\n\n \n this.LastReturnProcessedTime = \n (odataObject.LastReturnProcessedTime instanceof Date) ? odataObject.LastReturnProcessedTime\n : (odataObject.LastReturnProcessedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastReturnProcessedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: number;\n public OverriddenTenderedAmountInTenderedCurrency: number;\n public OverShortAmountOfTenderCurrency: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderTypeName = \n odataObject.TenderTypeName;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.TenderCurrency = \n odataObject.TenderCurrency;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.StartingAmountOfStoreCurrency = \n (odataObject.StartingAmountOfStoreCurrency != null) ? parseFloat(odataObject.StartingAmountOfStoreCurrency) : undefined;\n \n this.StartingAmountOfTenderCurrency = \n (odataObject.StartingAmountOfTenderCurrency != null) ? parseFloat(odataObject.StartingAmountOfTenderCurrency) : undefined;\n \n this.FloatingEntryAmountOfStoreCurrency = \n (odataObject.FloatingEntryAmountOfStoreCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfStoreCurrency) : undefined;\n \n this.FloatingEntryAmountOfTenderCurrency = \n (odataObject.FloatingEntryAmountOfTenderCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfTenderCurrency) : undefined;\n \n this.SafeDropAmountOfStoreCurrency = \n (odataObject.SafeDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfStoreCurrency) : undefined;\n \n this.SafeDropAmountOfTenderCurrency = \n (odataObject.SafeDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfTenderCurrency) : undefined;\n \n this.BankDropAmountOfStoreCurrency = \n (odataObject.BankDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.BankDropAmountOfStoreCurrency) : undefined;\n \n this.BankDropAmountOfTenderCurrency = \n (odataObject.BankDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.BankDropAmountOfTenderCurrency) : undefined;\n \n this.RemoveTenderAmountOfStoreCurrency = \n (odataObject.RemoveTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfStoreCurrency) : undefined;\n \n this.RemoveTenderAmountOfTenderCurrency = \n (odataObject.RemoveTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfTenderCurrency) : undefined;\n \n this.DeclareTenderAmountOfStoreCurrency = \n (odataObject.DeclareTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfStoreCurrency) : undefined;\n \n this.DeclareTenderAmountOfTenderCurrency = \n (odataObject.DeclareTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfTenderCurrency) : undefined;\n \n this.TenderedAmountOfStoreCurrency = \n (odataObject.TenderedAmountOfStoreCurrency != null) ? parseFloat(odataObject.TenderedAmountOfStoreCurrency) : undefined;\n \n this.TenderedAmountOfTenderCurrency = \n (odataObject.TenderedAmountOfTenderCurrency != null) ? parseFloat(odataObject.TenderedAmountOfTenderCurrency) : undefined;\n \n this.ChangeAmountOfStoreCurrency = \n (odataObject.ChangeAmountOfStoreCurrency != null) ? parseFloat(odataObject.ChangeAmountOfStoreCurrency) : undefined;\n \n this.ChangeAmountOfTenderCurrency = \n (odataObject.ChangeAmountOfTenderCurrency != null) ? parseFloat(odataObject.ChangeAmountOfTenderCurrency) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.Notes = \n odataObject.Notes;\n \n this.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : undefined;\n \n this.OverriddenTenderedAmountInTenderedCurrency = \n (odataObject.OverriddenTenderedAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInTenderedCurrency) : undefined;\n \n this.OverShortAmountOfTenderCurrency = \n (odataObject.OverShortAmountOfTenderCurrency != null) ? parseFloat(odataObject.OverShortAmountOfTenderCurrency) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTenderLineClass'] = ShiftTenderLineClass;\n \n /**\n * StockCountJournalTransaction entity class.\n */\n export class StockCountJournalTransactionClass implements Entities.StockCountJournalTransaction {\n public JournalId: string;\n public RecordId: number;\n public OperationType: number;\n public ItemId: string;\n public DataAreaId: string;\n public ProductRecordId: number;\n public ItemName: string;\n public InventDimId: string;\n public Counted: number;\n public Quantity: number;\n public EstimatedOnHandQuantity: number;\n public OnHandCalculationDateTime: Date;\n public Unit: string;\n public UserId: string;\n public TerminalId: string;\n public CountedDate: Date;\n public Status: number;\n public InventBatchId: string;\n public WarehouseLocationId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public WarehousePalletId: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public InventSerialId: string;\n public TrackingGuid: string;\n public UpdatedInAx: boolean;\n public Message: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OperationType = \n odataObject.OperationType;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.Counted = \n (odataObject.Counted != null) ? parseFloat(odataObject.Counted) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.EstimatedOnHandQuantity = \n (odataObject.EstimatedOnHandQuantity != null) ? parseFloat(odataObject.EstimatedOnHandQuantity) : undefined;\n \n this.OnHandCalculationDateTime = \n (odataObject.OnHandCalculationDateTime instanceof Date) ? odataObject.OnHandCalculationDateTime\n : (odataObject.OnHandCalculationDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OnHandCalculationDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.UserId = \n odataObject.UserId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CountedDate = \n (odataObject.CountedDate instanceof Date) ? odataObject.CountedDate\n : (odataObject.CountedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CountedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WarehouseLocationId = \n odataObject.WarehouseLocationId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.WarehousePalletId = \n odataObject.WarehousePalletId;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.TrackingGuid = \n odataObject.TrackingGuid;\n \n this.UpdatedInAx = \n odataObject.UpdatedInAx;\n \n this.Message = \n odataObject.Message;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalTransactionClass'] = StockCountJournalTransactionClass;\n \n /**\n * TaxLine entity class.\n */\n export class TaxLineClass implements Entities.TaxLine {\n public TaxGroup: string;\n public Percentage: number;\n public IsExempt: boolean;\n public TaxBasis: number;\n public IsIncludedInPrice: boolean;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TaxCode: string;\n public Amount: number;\n public AmountRefunded: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.IsExempt = \n odataObject.IsExempt;\n \n this.TaxBasis = \n (odataObject.TaxBasis != null) ? parseFloat(odataObject.TaxBasis) : undefined;\n \n this.IsIncludedInPrice = \n odataObject.IsIncludedInPrice;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TaxCode = \n odataObject.TaxCode;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxLineClass'] = TaxLineClass;\n \n /**\n * TenderLine entity class.\n */\n export class TenderLineClass implements Entities.TenderLine {\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public InternalTransactionId: string;\n public RefundableAmount: number;\n public CaptureToken: string;\n public CardToken: string;\n public Authorization: string;\n public TransactionStatusValue: number;\n public IncomeExpenseAccountTypeValue: number;\n public MaskedCardNumber: string;\n public TenderDate: Date;\n public IsPreProcessed: boolean;\n public IsDeposit: boolean;\n public IsCustomerAccountFloorLimitUsed: boolean;\n public AuthorizationReferenceId: string;\n public IsIncrementalCaptureEnabled: boolean;\n public IsReauthorizationEnabled: boolean;\n public IncrementalOffsetAmount: number;\n public ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public RoundingDifference: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity class.\n */\n export class FiscalIntegrationTechnicalProfileSearchCriteriaClass implements Entities.FiscalIntegrationTechnicalProfileSearchCriteria {\n public ExcludeOptionalProcessLines: boolean;\n public FunctionalityProfileGroupIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExcludeOptionalProcessLines = \n odataObject.ExcludeOptionalProcessLines;\n \n this.FunctionalityProfileGroupIds = undefined;\n if (odataObject.FunctionalityProfileGroupIds) {\n this.FunctionalityProfileGroupIds = [];\n for (var i = 0; i < odataObject.FunctionalityProfileGroupIds.length; i++) {\n if (odataObject.FunctionalityProfileGroupIds[i] != null) {\n this.FunctionalityProfileGroupIds[i] = \n odataObject.FunctionalityProfileGroupIds[i];\n } else {\n this.FunctionalityProfileGroupIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileSearchCriteriaClass'] = FiscalIntegrationTechnicalProfileSearchCriteriaClass;\n \n /**\n * FiscalIntegrationServiceInfo entity class.\n */\n export class FiscalIntegrationServiceInfoClass implements Entities.FiscalIntegrationServiceInfo {\n public ServiceName: string;\n public ServiceProperties: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ServiceName = \n odataObject.ServiceName;\n \n this.ServiceProperties = \n odataObject.ServiceProperties;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceInfoClass'] = FiscalIntegrationServiceInfoClass;\n \n /**\n * FiscalIntegrationServiceStatus entity class.\n */\n export class FiscalIntegrationServiceStatusClass implements Entities.FiscalIntegrationServiceStatus {\n public IsReady: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsReady = \n odataObject.IsReady;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceStatusClass'] = FiscalIntegrationServiceStatusClass;\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity class.\n */\n export class FiscalIntegrationServiceCommunicationResultClass implements Entities.FiscalIntegrationServiceCommunicationResult {\n public Response: string;\n public CommunicationResultTypeValue: number;\n public FailureDetails: Entities.FiscalIntegrationServiceFailureDetails;\n public FiscalIntegrationServiceInfo: string;\n public UserNotificationMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Response = \n odataObject.Response;\n \n this.CommunicationResultTypeValue = \n odataObject.CommunicationResultTypeValue;\n \n if (odataObject.FailureDetails == null) {\n this.FailureDetails = undefined;\n } else if (odataObject.FailureDetails['@odata.type'] == null) {\n this.FailureDetails = new FiscalIntegrationServiceFailureDetailsClass(odataObject.FailureDetails);\n } else {\n var className: string = odataObject.FailureDetails['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailureDetails = new entityDictionary[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceCommunicationResultClass'] = FiscalIntegrationServiceCommunicationResultClass;\n \n /**\n * FiscalIntegrationSequentialSignatureData entity class.\n */\n export class FiscalIntegrationSequentialSignatureDataClass implements Entities.FiscalIntegrationSequentialSignatureData {\n public LastRegisterResponse: string;\n public SequenceKey: string;\n public IsOffline: boolean;\n public SequentialNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LastRegisterResponse = \n odataObject.LastRegisterResponse;\n \n this.SequenceKey = \n odataObject.SequenceKey;\n \n this.IsOffline = \n odataObject.IsOffline;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSequentialSignatureDataClass'] = FiscalIntegrationSequentialSignatureDataClass;\n \n /**\n * DiscountsSearchCriteria entity class.\n */\n export class DiscountsSearchCriteriaClass implements Entities.DiscountsSearchCriteria {\n public ChannelId: number;\n public Keyword: string;\n public IsDiscountCodeRequired: boolean;\n public StartDate: Date;\n public EndDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Keyword = \n odataObject.Keyword;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountsSearchCriteriaClass'] = DiscountsSearchCriteriaClass;\n \n /**\n * Promotion entity class.\n */\n export class PromotionClass implements Entities.Promotion {\n public OfferId: string;\n public OfferName: string;\n public PeriodicDiscountTypeValue: number;\n public IsDiscountCodeRequired: boolean;\n public ValidationPeriodId: string;\n public AdditionalRestrictions: string;\n public Description: string;\n public ValidFromDate: Date;\n public ValidToDate: Date;\n public ValidationPeriod: Entities.ValidationPeriod;\n public CouponCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ValidationPeriodId = \n odataObject.ValidationPeriodId;\n \n this.AdditionalRestrictions = \n odataObject.AdditionalRestrictions;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFromDate = \n (odataObject.ValidFromDate instanceof Date) ? odataObject.ValidFromDate\n : (odataObject.ValidFromDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDate = \n (odataObject.ValidToDate instanceof Date) ? odataObject.ValidToDate\n : (odataObject.ValidToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.ValidationPeriod == null) {\n this.ValidationPeriod = undefined;\n } else if (odataObject.ValidationPeriod['@odata.type'] == null) {\n this.ValidationPeriod = new ValidationPeriodClass(odataObject.ValidationPeriod);\n } else {\n var className: string = odataObject.ValidationPeriod['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationPeriod = new entityDictionary[className](odataObject.ValidationPeriod)\n }\n }\n\n \n this.CouponCodes = undefined;\n if (odataObject.CouponCodes) {\n this.CouponCodes = [];\n for (var i = 0; i < odataObject.CouponCodes.length; i++) {\n if (odataObject.CouponCodes[i] != null) {\n this.CouponCodes[i] = \n odataObject.CouponCodes[i];\n } else {\n this.CouponCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PromotionClass'] = PromotionClass;\n \n /**\n * CategoryPathLookup entity class.\n */\n export class CategoryPathLookupClass implements Entities.CategoryPathLookup {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathLookupClass'] = CategoryPathLookupClass;\n \n /**\n * CategoryPathResult entity class.\n */\n export class CategoryPathResultClass implements Entities.CategoryPathResult {\n public ProductId: number;\n public CategoryPath: Entities.CategoryPath[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CategoryPath = undefined;\n if (odataObject.CategoryPath) {\n this.CategoryPath = [];\n for (var i = 0; i < odataObject.CategoryPath.length; i++) {\n if (odataObject.CategoryPath[i] != null) {\n if (odataObject.CategoryPath[i]['@odata.type'] != null) {\n var className: string = odataObject.CategoryPath[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategoryPath[i] = new entityDictionary[className](odataObject.CategoryPath[i])\n }\n } else {\n this.CategoryPath[i] = new CategoryPathClass(odataObject.CategoryPath[i]);\n }\n } else {\n this.CategoryPath[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathResultClass'] = CategoryPathResultClass;\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity class.\n */\n export class PickupTimeslotAvailabilitySearchCriteriaClass implements Entities.PickupTimeslotAvailabilitySearchCriteria {\n public DeliveryModeCode: string;\n public StoreId: string;\n public StartDate: Date;\n public EndDate: Date;\n public SearchOptionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SearchOptionValue = \n odataObject.SearchOptionValue;\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilitySearchCriteriaClass'] = PickupTimeslotAvailabilitySearchCriteriaClass;\n \n /**\n * PickupTimeslotAvailability entity class.\n */\n export class PickupTimeslotAvailabilityClass implements Entities.PickupTimeslotAvailability {\n public AvailableCapacity: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AvailableCapacity = \n odataObject.AvailableCapacity;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilityClass'] = PickupTimeslotAvailabilityClass;\n \n /**\n * CheckInForOrderPickupConfirmation entity class.\n */\n export class CheckInForOrderPickupConfirmationClass implements Entities.CheckInForOrderPickupConfirmation {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CheckInForOrderPickupConfirmationClass'] = CheckInForOrderPickupConfirmationClass;\n \n /**\n * ExtensionProfile entity class.\n */\n export class ExtensionProfileClass implements Entities.ExtensionProfile {\n public ExtensionServiceUrl: string;\n public AttachedServices: Entities.AttachedService[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionServiceUrl = \n odataObject.ExtensionServiceUrl;\n \n this.AttachedServices = undefined;\n if (odataObject.AttachedServices) {\n this.AttachedServices = [];\n for (var i = 0; i < odataObject.AttachedServices.length; i++) {\n if (odataObject.AttachedServices[i] != null) {\n if (odataObject.AttachedServices[i]['@odata.type'] != null) {\n var className: string = odataObject.AttachedServices[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttachedServices[i] = new entityDictionary[className](odataObject.AttachedServices[i])\n }\n } else {\n this.AttachedServices[i] = new AttachedServiceClass(odataObject.AttachedServices[i]);\n }\n } else {\n this.AttachedServices[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionProfileClass'] = ExtensionProfileClass;\n \n /**\n * ChannelInventoryConfiguration entity class.\n */\n export class ChannelInventoryConfigurationClass implements Entities.ChannelInventoryConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowTransferOrderOverDelivery: boolean;\n public AllowTransferOrderUnderDelivery: boolean;\n public UserLocationProfileId: string;\n public InventoryProductAttributeRecordId: number;\n public InventoryOutOfStockAttributeValueText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowTransferOrderOverDelivery = \n odataObject.AllowTransferOrderOverDelivery;\n \n this.AllowTransferOrderUnderDelivery = \n odataObject.AllowTransferOrderUnderDelivery;\n \n this.UserLocationProfileId = \n odataObject.UserLocationProfileId;\n \n this.InventoryProductAttributeRecordId = \n (odataObject.InventoryProductAttributeRecordId != null) ? parseInt(odataObject.InventoryProductAttributeRecordId, 10) : undefined;\n \n this.InventoryOutOfStockAttributeValueText = \n odataObject.InventoryOutOfStockAttributeValueText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelInventoryConfigurationClass'] = ChannelInventoryConfigurationClass;\n \n /**\n * ChannelPurchaseConfiguration entity class.\n */\n export class ChannelPurchaseConfigurationClass implements Entities.ChannelPurchaseConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowOverDelivery: boolean;\n public AllowSubDelivery: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this.AllowSubDelivery = \n odataObject.AllowSubDelivery;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPurchaseConfigurationClass'] = ChannelPurchaseConfigurationClass;\n \n /**\n * InventoryJournalName entity class.\n */\n export class InventoryJournalNameClass implements Entities.InventoryJournalName {\n public RecordId: number;\n public JournalNameId: string;\n public InventoryJournalTypeValue: number;\n public Description: string;\n public DefaultAdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.JournalNameId = \n odataObject.JournalNameId;\n \n this.InventoryJournalTypeValue = \n odataObject.InventoryJournalTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DefaultAdjustmentTypeValue = \n odataObject.DefaultAdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameClass'] = InventoryJournalNameClass;\n \n /**\n * ShiftRetrievalCriteria entity class.\n */\n export class ShiftRetrievalCriteriaClass implements Entities.ShiftRetrievalCriteria {\n public ShiftStatusValue: number;\n public FilterByUserRole: boolean;\n public IncludeAllShiftsForStore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftStatusValue = \n odataObject.ShiftStatusValue;\n \n this.FilterByUserRole = \n odataObject.FilterByUserRole;\n \n this.IncludeAllShiftsForStore = \n odataObject.IncludeAllShiftsForStore;\n \n }\n }\n entityDictionary['ShiftRetrievalCriteriaClass'] = ShiftRetrievalCriteriaClass;\n \n /**\n * UserDefinedSecretCertificateResult entity class.\n */\n export class UserDefinedSecretCertificateResultClass implements Entities.UserDefinedSecretCertificateResult {\n public CertificateData: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CertificateData = \n odataObject.CertificateData;\n \n }\n }\n entityDictionary['UserDefinedSecretCertificateResultClass'] = UserDefinedSecretCertificateResultClass;\n \n /**\n * TerminalInfo entity class.\n */\n export class TerminalInfoClass implements Entities.TerminalInfo {\n public TerminalId: string;\n public DeviceNumber: string;\n public Name: string;\n public DeviceType: number;\n public ActivationStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.Name = \n odataObject.Name;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TerminalInfoClass'] = TerminalInfoClass;\n \n /**\n * CustomerTimelineItemTypeMap entity class.\n */\n export class CustomerTimelineItemTypeMapClass implements Entities.CustomerTimelineItemTypeMap {\n public EntityType: string;\n public Types: Entities.CustomerTimelineItemType[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EntityType = \n odataObject.EntityType;\n \n this.Types = undefined;\n if (odataObject.Types) {\n this.Types = [];\n for (var i = 0; i < odataObject.Types.length; i++) {\n if (odataObject.Types[i] != null) {\n if (odataObject.Types[i]['@odata.type'] != null) {\n var className: string = odataObject.Types[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Types[i] = new entityDictionary[className](odataObject.Types[i])\n }\n } else {\n this.Types[i] = new CustomerTimelineItemTypeClass(odataObject.Types[i]);\n }\n } else {\n this.Types[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeMapClass'] = CustomerTimelineItemTypeMapClass;\n \n /**\n * CustomerTimelineRefiner entity class.\n */\n export class CustomerTimelineRefinerClass implements Entities.CustomerTimelineRefiner {\n public RefinedResultsCount: number;\n public EntityType: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinedResultsCount = \n odataObject.RefinedResultsCount;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineRefinerClass'] = CustomerTimelineRefinerClass;\n \n /**\n * CustomerTitle entity class.\n */\n export class CustomerTitleClass implements Entities.CustomerTitle {\n public Text: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Text = \n odataObject.Text;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTitleClass'] = CustomerTitleClass;\n \n /**\n * ProductWarehouse entity class.\n */\n export class ProductWarehouseClass implements Entities.ProductWarehouse {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseClass'] = ProductWarehouseClass;\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public AggregatedProductInventoryAvailabilities: Entities.ProductInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductWarehouseInventoryAvailabilities = undefined;\n if (odataObject.ProductWarehouseInventoryAvailabilities) {\n this.ProductWarehouseInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.ProductWarehouseInventoryAvailabilities.length; i++) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i] != null) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new entityDictionary[className](odataObject.ProductWarehouseInventoryAvailabilities[i])\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = new ProductWarehouseInventoryAvailabilityClass(odataObject.ProductWarehouseInventoryAvailabilities[i]);\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.AggregatedProductInventoryAvailabilities = undefined;\n if (odataObject.AggregatedProductInventoryAvailabilities) {\n this.AggregatedProductInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.AggregatedProductInventoryAvailabilities.length; i++) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i] != null) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregatedProductInventoryAvailabilities[i] = new entityDictionary[className](odataObject.AggregatedProductInventoryAvailabilities[i])\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = new ProductInventoryAvailabilityClass(odataObject.AggregatedProductInventoryAvailabilities[i]);\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryInformationClass'] = ProductWarehouseInventoryInformationClass;\n \n /**\n * InventoryAvailabilitySearchCriteria entity class.\n */\n export class InventoryAvailabilitySearchCriteriaClass implements Entities.InventoryAvailabilitySearchCriteria {\n public ProductIds: number[];\n public DefaultWarehouseOnly: boolean;\n public SearchArea: Entities.SearchArea;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public QuantityUnitTypeValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n if (odataObject.SearchArea == null) {\n this.SearchArea = undefined;\n } else if (odataObject.SearchArea['@odata.type'] == null) {\n this.SearchArea = new SearchAreaClass(odataObject.SearchArea);\n } else {\n var className: string = odataObject.SearchArea['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchArea = new entityDictionary[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['InventoryAvailabilitySearchCriteriaClass'] = InventoryAvailabilitySearchCriteriaClass;\n \n /**\n * ExtensibleEnumerationContainer entity class.\n */\n export class ExtensibleEnumerationContainerClass implements Entities.ExtensibleEnumerationContainer {\n public TypeName: string;\n public ExtensibleEnumerations: Entities.ExtensibleEnumeration[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeName = \n odataObject.TypeName;\n \n this.ExtensibleEnumerations = undefined;\n if (odataObject.ExtensibleEnumerations) {\n this.ExtensibleEnumerations = [];\n for (var i = 0; i < odataObject.ExtensibleEnumerations.length; i++) {\n if (odataObject.ExtensibleEnumerations[i] != null) {\n if (odataObject.ExtensibleEnumerations[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensibleEnumerations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEnumerations[i] = new entityDictionary[className](odataObject.ExtensibleEnumerations[i])\n }\n } else {\n this.ExtensibleEnumerations[i] = new ExtensibleEnumerationClass(odataObject.ExtensibleEnumerations[i]);\n }\n } else {\n this.ExtensibleEnumerations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensibleEnumerationContainerClass'] = ExtensibleEnumerationContainerClass;\n \n /**\n * PackingSlipData entity class.\n */\n export class PackingSlipDataClass implements Entities.PackingSlipData {\n public PackingSlipId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PackingSlipId = \n odataObject.PackingSlipId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PackingSlipDataClass'] = PackingSlipDataClass;\n \n /**\n * EmailReceiptSettings entity class.\n */\n export class EmailReceiptSettingsClass implements Entities.EmailReceiptSettings {\n public ReceiptTypeValue: number;\n public EmailBehaviorValue: number;\n public ReceiptTitle: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.EmailBehaviorValue = \n odataObject.EmailBehaviorValue;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmailReceiptSettingsClass'] = EmailReceiptSettingsClass;\n \n /**\n * OrgUnitAddress entity class.\n */\n export class OrgUnitAddressClass\n extends AddressClass\n implements Entities.OrgUnitAddress {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrgUnitAddress\";\n \n }\n }\n entityDictionary['OrgUnitAddressClass'] = OrgUnitAddressClass;\n \n /**\n * WarehouseDetails entity class.\n */\n export class WarehouseDetailsClass\n extends AddressClass\n implements Entities.WarehouseDetails {\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.WarehouseDetails\";\n \n }\n }\n entityDictionary['WarehouseDetailsClass'] = WarehouseDetailsClass;\n \n /**\n * AttributeSwatch entity class.\n */\n export class AttributeSwatchClass implements Entities.AttributeSwatch {\n public SwatchValue: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public IsDefault: boolean;\n public ProductImageUrls: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SwatchValue = \n odataObject.SwatchValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ProductImageUrls = undefined;\n if (odataObject.ProductImageUrls) {\n this.ProductImageUrls = [];\n for (var i = 0; i < odataObject.ProductImageUrls.length; i++) {\n if (odataObject.ProductImageUrls[i] != null) {\n this.ProductImageUrls[i] = \n odataObject.ProductImageUrls[i];\n } else {\n this.ProductImageUrls[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeSwatchClass'] = AttributeSwatchClass;\n \n /**\n * AttributeBooleanValue entity class.\n */\n export class AttributeBooleanValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeBooleanValue {\n public Value: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\";\n \n }\n }\n entityDictionary['AttributeBooleanValueClass'] = AttributeBooleanValueClass;\n \n /**\n * AttributeCurrencyValue entity class.\n */\n export class AttributeCurrencyValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeCurrencyValue {\n public CurrencyValue: number;\n public CurrencyCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeCurrencyValue\";\n \n }\n }\n entityDictionary['AttributeCurrencyValueClass'] = AttributeCurrencyValueClass;\n \n /**\n * AttributeDateTimeOffsetValue entity class.\n */\n export class AttributeDateTimeOffsetValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeDateTimeOffsetValue {\n public Value: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value instanceof Date) ? odataObject.Value\n : (odataObject.Value != null) ? jsonLightReadStringPropertyValue(odataObject.Value, \"Edm.DateTimeOffset\", false) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeDateTimeOffsetValue\";\n \n }\n }\n entityDictionary['AttributeDateTimeOffsetValueClass'] = AttributeDateTimeOffsetValueClass;\n \n /**\n * AttributeFloatValue entity class.\n */\n export class AttributeFloatValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeFloatValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeFloatValue\";\n \n }\n }\n entityDictionary['AttributeFloatValueClass'] = AttributeFloatValueClass;\n \n /**\n * AttributeIntValue entity class.\n */\n export class AttributeIntValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeIntValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeIntValue\";\n \n }\n }\n entityDictionary['AttributeIntValueClass'] = AttributeIntValueClass;\n \n /**\n * AttributeMediaLocationValue entity class.\n */\n export class AttributeMediaLocationValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeMediaLocationValue {\n public Value: Entities.MediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = undefined;\n if (odataObject.Value) {\n this.Value = [];\n for (var i = 0; i < odataObject.Value.length; i++) {\n if (odataObject.Value[i] != null) {\n if (odataObject.Value[i]['@odata.type'] != null) {\n var className: string = odataObject.Value[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value[i] = new entityDictionary[className](odataObject.Value[i])\n }\n } else {\n this.Value[i] = new MediaLocationClass(odataObject.Value[i]);\n }\n } else {\n this.Value[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeMediaLocationValue\";\n \n }\n }\n entityDictionary['AttributeMediaLocationValueClass'] = AttributeMediaLocationValueClass;\n \n /**\n * AttributeTextValue entity class.\n */\n export class AttributeTextValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeTextValue {\n public TextValue: string;\n public TextValueTranslations: Entities.TextValueTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TextValue = \n odataObject.TextValue;\n \n this.TextValueTranslations = undefined;\n if (odataObject.TextValueTranslations) {\n this.TextValueTranslations = [];\n for (var i = 0; i < odataObject.TextValueTranslations.length; i++) {\n if (odataObject.TextValueTranslations[i] != null) {\n if (odataObject.TextValueTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.TextValueTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TextValueTranslations[i] = new entityDictionary[className](odataObject.TextValueTranslations[i])\n }\n } else {\n this.TextValueTranslations[i] = new TextValueTranslationClass(odataObject.TextValueTranslations[i]);\n }\n } else {\n this.TextValueTranslations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\n \n }\n }\n entityDictionary['AttributeTextValueClass'] = AttributeTextValueClass;\n \n /**\n * ButtonGridButton entity class.\n */\n export class ButtonGridButtonClass implements Entities.ButtonGridButton {\n public Action: number;\n public ActionProperty: string;\n public BackColorAsARGB: Entities.ARGBColor;\n public BorderColorAsARGB: Entities.ARGBColor;\n public Column: number;\n public ColumnSpan: number;\n public DisplayText: string;\n public FontColorAsARGB: Entities.ARGBColor;\n public ButtonId: number;\n public Row: number;\n public RowSpan: number;\n public UseCustomLookAndFeel: boolean;\n public PictureId: number;\n public PictureAsBase64: string;\n public FontStyle: number;\n public FontSize: number;\n public EnableCustomFontForPOS: boolean;\n public HideButtonText: boolean;\n public Tooltip: string;\n public EnableLiveContent: boolean;\n public NotificationContentAlignment: number;\n public ImageAlignment: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionProperty = \n odataObject.ActionProperty;\n \n if (odataObject.BackColorAsARGB == null) {\n this.BackColorAsARGB = undefined;\n } else if (odataObject.BackColorAsARGB['@odata.type'] == null) {\n this.BackColorAsARGB = new ARGBColorClass(odataObject.BackColorAsARGB);\n } else {\n var className: string = odataObject.BackColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BackColorAsARGB = new entityDictionary[className](odataObject.BackColorAsARGB)\n }\n }\n\n \n if (odataObject.BorderColorAsARGB == null) {\n this.BorderColorAsARGB = undefined;\n } else if (odataObject.BorderColorAsARGB['@odata.type'] == null) {\n this.BorderColorAsARGB = new ARGBColorClass(odataObject.BorderColorAsARGB);\n } else {\n var className: string = odataObject.BorderColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BorderColorAsARGB = new entityDictionary[className](odataObject.BorderColorAsARGB)\n }\n }\n\n \n this.Column = \n odataObject.Column;\n \n this.ColumnSpan = \n odataObject.ColumnSpan;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n if (odataObject.FontColorAsARGB == null) {\n this.FontColorAsARGB = undefined;\n } else if (odataObject.FontColorAsARGB['@odata.type'] == null) {\n this.FontColorAsARGB = new ARGBColorClass(odataObject.FontColorAsARGB);\n } else {\n var className: string = odataObject.FontColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FontColorAsARGB = new entityDictionary[className](odataObject.FontColorAsARGB)\n }\n }\n\n \n this.ButtonId = \n odataObject.ButtonId;\n \n this.Row = \n odataObject.Row;\n \n this.RowSpan = \n odataObject.RowSpan;\n \n this.UseCustomLookAndFeel = \n odataObject.UseCustomLookAndFeel;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.FontStyle = \n odataObject.FontStyle;\n \n this.FontSize = \n odataObject.FontSize;\n \n this.EnableCustomFontForPOS = \n odataObject.EnableCustomFontForPOS;\n \n this.HideButtonText = \n odataObject.HideButtonText;\n \n this.Tooltip = \n odataObject.Tooltip;\n \n this.EnableLiveContent = \n odataObject.EnableLiveContent;\n \n this.NotificationContentAlignment = \n odataObject.NotificationContentAlignment;\n \n this.ImageAlignment = \n odataObject.ImageAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridButtonClass'] = ButtonGridButtonClass;\n \n /**\n * ARGBColor entity class.\n */\n export class ARGBColorClass implements Entities.ARGBColor {\n public A: number;\n public R: number;\n public G: number;\n public B: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.A = \n (odataObject.A != null) ? parseInt(odataObject.A, 10) : undefined;\n \n this.R = \n (odataObject.R != null) ? parseInt(odataObject.R, 10) : undefined;\n \n this.G = \n (odataObject.G != null) ? parseInt(odataObject.G, 10) : undefined;\n \n this.B = \n (odataObject.B != null) ? parseInt(odataObject.B, 10) : undefined;\n \n }\n }\n entityDictionary['ARGBColorClass'] = ARGBColorClass;\n \n /**\n * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n ","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { ChannelReferenceLookupCriteria, OrderShipments, SalesOrder, SalesOrdersDataActions, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * IOrderHistory.\n */\nexport interface IOrderHistory {\n salesOrders: OrderShipments[];\n products: SimpleProduct[];\n}\n\n/**\n * Action input.\n */\nexport class GetSalesOrderDetailsByConfirmationInput implements IActionInput {\n\n public channelReferenceLookupCriteria: ChannelReferenceLookupCriteria | null;\n\n public confirmationId: string | undefined;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(\n channelReferenceLookupCriteria: ChannelReferenceLookupCriteria | null,\n apiSettings: ICommerceApiSettings) {\n this.channelReferenceLookupCriteria = channelReferenceLookupCriteria;\n this.apiSettings = apiSettings;\n this.confirmationId = channelReferenceLookupCriteria?.ChannelReferenceId;\n }\n\n /**\n * GetCacheKey.\n * @returns - String.\n */\n public getCacheKey = (): string => buildCacheKey(`OrderDetails-${this.confirmationId ? this.confirmationId : ''}`, this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns - String.\n */\n public getCacheObjectType = (): string => 'OrderDetails';\n\n /**\n * DataCacheType.\n * @returns - String.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Get sales order details by confirmation id action.\n * @param input - GetOrderHistory hydration input.\n * @param context - Channel context.\n * @returns - Sales Order Details.\n */\nexport async function getSalesOrderDetailsByChannelReferenceIdAction(\n input: GetSalesOrderDetailsByConfirmationInput,\n context: IActionContext\n): Promise {\n return SalesOrdersDataActions.getOrderByChannelReferenceLookupCriteriaAsync(\n { callerContext: context }, input.channelReferenceLookupCriteria);\n}\n\n/**\n * GetSalesOrderDetailsByConfirmationIdDataAction.\n * @returns -- IObservableAction.\n */\nexport const getSalesOrderDetailsByChannelReferenceIdDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/order-lookup/get-sales-order-details-by-confirmation-id',\n action: getSalesOrderDetailsByChannelReferenceIdAction as IAction\n});\n\nexport default getSalesOrderDetailsByChannelReferenceIdDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings,\n ICreateActionContext } from '@msdyn365-commerce/core';\nimport {\n ChannelReferenceAdditionalLookupCriteria,\n ChannelReferenceLookupCriteria,\n ExtensibleEnumeration,\n IDictionary, ProductDeliveryOptions,\n ProductsDataActions,\n SalesOrder,\n SalesOrdersDataActions,\n SearchLocation,\n SimpleProduct,\n StoreOperationsDataActions,\n TransactionType\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, buildCacheKey, getSimpleProducts, ObjectExtensions, ProductInput, QueryResultSettingsProxy }\n from '@msdyn365-commerce-modules/retail-actions';\n\nimport { getSalesOrderDetailsByChannelReferenceIdAction, GetSalesOrderDetailsByConfirmationInput } from './get-sales-order-details-by-confirmation-id';\n\n/**\n * ISalesOrderWithHydrations.\n */\ninterface ISalesOrderWithHydrations {\n salesOrder: SalesOrder;\n products: SimpleProduct[];\n productDeliveryOptions?: ProductDeliveryOptions[];\n}\n\n/**\n * AdditionalLookupCriteria entity interface.\n */\nexport interface IAdditionalLookupCriteria {\n orderStatusLookUpParameterTypeName: string;\n orderStatusLookUpParameterValue: string;\n}\n\n/**\n * OrderTypes Types of orders.\n */\nexport enum orderTypes {\n salesOrder = 'salesOrder',\n transaction = 'transaction'\n}\n\n/**\n * GetQueryStringParameters.\n * @param context -- URL.\n * @returns Additional lookup criteria -- IAdditionalLookupCriteria[].\n */\nconst getQueryStringParameters = (context: IActionContext): IAdditionalLookupCriteria[] => {\n const addtionalLookupParameter: IAdditionalLookupCriteria[] = [];\n let query: IDictionary;\n if (context.requestContext.query) {\n query = context.requestContext.query;\n const queryArray = Object.entries(query);\n\n for (let index = 1; index <= queryArray.length; index++) {\n const additionalFieldName: string = `field${index}Name`;\n const additionalFieldValue = `field${index}Value`;\n if (additionalFieldName in query && additionalFieldValue in query) {\n addtionalLookupParameter.push({\n orderStatusLookUpParameterTypeName: query[additionalFieldName],\n orderStatusLookUpParameterValue: query[additionalFieldValue]\n });\n }\n }\n }\n return addtionalLookupParameter;\n};\n\n/**\n * Calls the Retail API and returns the sales order for anonymous user.\n * @param confirmationId -- Confirmation Id.\n * @returns SalesOrder -- Promise.\n */\nconst getSalesOrderDetailsByLookupCriteria = (confirmationId: string) => async (context: IActionContext): Promise => {\n const {\n propertyName = '',\n propertyValue = ''\n } = (context.requestContext.query) ?? {};\n\n const addtionalLookupParameter: IAdditionalLookupCriteria[] = getQueryStringParameters(context);\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync(\n { callerContext: context });\n\n const orderLookupExtensibleEnum: ExtensibleEnumeration[] = getExtensibleEnumerations.find(\n item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const channelReferenceAdditionalLookupCriteria: ChannelReferenceAdditionalLookupCriteria[] = [];\n\n for (const item of orderLookupExtensibleEnum) {\n const retailProxyValue: string = item.Name.toLocaleLowerCase();\n const retailProxyTypeValue: number = item.Value;\n const orderLookupSearchPropertyName: string = propertyName.toLocaleLowerCase();\n if (retailProxyValue === orderLookupSearchPropertyName) {\n channelReferenceAdditionalLookupCriteria.push({\n OrderLookupAdditionalCriteriaTypeValue: item.Value,\n OrderLookupAdditionalCriteriaTypeParameterValue: propertyValue\n });\n }\n if (ArrayExtensions.hasElements(addtionalLookupParameter)) {\n for (const additionalItem of addtionalLookupParameter) {\n if (retailProxyValue === additionalItem.orderStatusLookUpParameterTypeName.toLocaleLowerCase()) {\n channelReferenceAdditionalLookupCriteria.push({\n OrderLookupAdditionalCriteriaTypeValue: retailProxyTypeValue,\n OrderLookupAdditionalCriteriaTypeParameterValue: additionalItem.orderStatusLookUpParameterValue\n });\n }\n }\n }\n }\n\n const channelReferenceLookupCriteria: ChannelReferenceLookupCriteria = {\n ChannelReferenceId: confirmationId,\n ChannelReferenceAdditionalLookupCriteria: channelReferenceAdditionalLookupCriteria\n };\n\n const input = new GetSalesOrderDetailsByConfirmationInput(channelReferenceLookupCriteria, context.requestContext.apiSettings);\n\n return getSalesOrderDetailsByChannelReferenceIdAction(input, context);\n};\n\n/**\n * Calls the Retail API and returns the sales order.\n * @param orderType -- Order Type.\n * @param orderId -- Order id.\n * @returns SalesOrder -- Promise.\n */\nconst getSalesOrder = (orderType: string = '', orderId: string = '') => async (context: IActionContext): Promise => {\n const {\n confirmationId = ''\n } = (context.requestContext.query) ?? {};\n\n if (confirmationId) {\n return getSalesOrderDetailsByLookupCriteria(confirmationId)(context);\n } else if (orderType === orderTypes.salesOrder) {\n return SalesOrdersDataActions.getSalesOrderDetailsBySalesIdAsync({ callerContext: context }, orderId);\n }\n\n return SalesOrdersDataActions.getSalesOrderDetailsByTransactionIdAsync({ callerContext: context }, orderId, SearchLocation.All);\n};\n\n/**\n * Calls the Retail API and returns the products.\n * @param productIds - The product ids of the product to retrieve.\n * @param channelId - The channel id for the products.\n * @returns Simple product data.\n */\nconst getProducts = (productIds: (string | number)[] = [], channelId?: number) => async (context: IActionContext): Promise => {\n const productInputs = productIds.map(productId => new ProductInput(\n productId, context.requestContext.apiSettings, channelId, undefined, context.requestContext));\n return getSimpleProducts(productInputs, context);\n};\n\n/**\n * Action input.\n */\nexport class GetSalesOrderWithHydrationsInput implements IActionInput {\n public orderType: string | undefined;\n\n public orderId: string | undefined ;\n\n public confirmationId: string | undefined;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(orderType: string | undefined, orderId: string | undefined, apiSettings: ICommerceApiSettings, confirmationId?: string) {\n this.orderType = orderType;\n this.orderId = orderId;\n this.apiSettings = apiSettings;\n this.confirmationId = confirmationId;\n }\n\n /**\n * GetCacheKey.\n * @returns String.\n */\n public getCacheKey = (): string => buildCacheKey('SalesOrderWithHydrations', this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns String.\n */\n public getCacheObjectType = (): string => `SalesOrderWithHydrations-${this.orderType ?? ''}-${this.orderId ?? ''}-${this.confirmationId ?? ''}`;\n\n /**\n * DataCacheType.\n * @returns CacheType.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- InputData as ICreateActionContext.\n * @returns Action Input.\n */\nconst createSalesOrderWithHydrationsInput = (inputData: ICreateActionContext) => {\n const { salesId = '', transactionId = '', confirmationId = '' } = (inputData.requestContext.query) ?? {};\n\n if (confirmationId) {\n const orderType = undefined;\n const orderId = undefined;\n return new GetSalesOrderWithHydrationsInput(orderType, orderId, inputData.requestContext.apiSettings, confirmationId);\n } else if (salesId) {\n return new GetSalesOrderWithHydrationsInput(orderTypes.salesOrder, salesId, inputData.requestContext.apiSettings);\n } else if (transactionId) {\n return new GetSalesOrderWithHydrationsInput(orderTypes.transaction, transactionId, inputData.requestContext.apiSettings);\n }\n\n throw new Error('createSalesOrderWithHydrationsInput - No salesId, confirmationId or transactionId provided.');\n};\n\n/**\n * Get sales order with hydrations action.\n * @param input -- Input.\n * @param context -- Context.\n * @returns ISalesOrderWithHydrations.\n */\nexport async function getSalesOrderWithHydrationsAction(\n input: GetSalesOrderWithHydrationsInput,\n context: IActionContext\n): Promise {\n\n const { orderType, orderId } = input;\n\n const { confirmationId = '', salesId = '', transactionId = '' } = (context.requestContext.query) ?? {};\n\n if (context.requestContext.user.isAuthenticated && (!orderType || !orderId) && !confirmationId) {\n context.trace('[getSalesOrderWithHydrationsAction] No orderType or orderId or confirmationId provided.');\n return {};\n }\n\n if ((salesId || transactionId) && !context.requestContext.user.isAuthenticated) {\n const signInUrl: string = context.requestContext.user.signInUrl ?? '';\n window.location.assign(signInUrl);\n return {} as unknown as ISalesOrderWithHydrations;\n }\n\n const salesOrder = await getSalesOrder(orderType, orderId)(context);\n\n if (!salesOrder) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesOrder found.');\n return {};\n }\n\n // If it is salesInvoice, return salesOrder and empty products\n if (salesOrder.TransactionTypeValue === TransactionType.SalesInvoice) {\n return {\n salesOrder,\n products: []\n };\n }\n\n if (!ArrayExtensions.hasElements(salesOrder.SalesLines)) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesLine found.');\n return {};\n }\n\n const productIds = salesOrder.SalesLines.map(salesLine => salesLine.ProductId ?? '');\n\n if (!ArrayExtensions.hasElements(productIds)) {\n context.trace('[getSalesOrderWithHydrationsAction] No products in saleLines found.');\n return {};\n }\n\n const products = await getProducts(productIds, salesOrder.ChannelId)(context);\n\n if (!ArrayExtensions.hasElements(products)) {\n context.trace('[getSalesOrderWithHydrationsAction] No simple products found.');\n return {};\n }\n\n const validProducts = products.filter(product => !ObjectExtensions.isNullOrUndefined(product.RecordId));\n\n const deliveryOptions = await ProductsDataActions.getDeliveryOptionsAsync(\n {\n callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n validProducts.map(product => product.RecordId), {}, 4)\n .then(result => {\n return result;\n }).catch((error: Error) => {\n context.trace(error.message);\n context.telemetry.exception(error);\n context.telemetry.debug('[getDeliveryOptionsForCartLineItems]Error executing action');\n throw new Error('[getDeliveryOptionsForCartLineItems]Error executing action');\n });\n\n return {\n salesOrder,\n products,\n deliveryOptions\n };\n}\n\n/**\n * GetSalesOrderWithHydrationsAction Data Action.\n * @param options -- Options.\n */\nexport const getSalesOrderWithHydrationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-sales-order-with-hydrations',\n action: getSalesOrderWithHydrationsAction as IAction,\n input: createSalesOrderWithHydrationsInput\n});\n\nexport default getSalesOrderWithHydrationsActionDataAction;\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 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 = searchValue == undefined ? 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 if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var 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 // 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 var 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 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 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 = regexp == undefined ? 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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';\n","var 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-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/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 $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, IAction, IActionContext, IActionInput,\n ICommerceApiSettings\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport {\n readAsync, updateAsync\n} 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 */\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(input: IUpdateCustomerPersonalizationInput, ctx: IActionContext): 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. All rights reserved.\n * See License.txt 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 // @ts-expect-error\n cartTenderLineItem['@odata.type'] = '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CartTenderLine';\n\n // @ts-expect-error\n cartTenderLineItem['Amount@odata.type'] = '#Decimal';\n\n if (cartTenderLineItem.TokenizedPaymentCard) {\n // @ts-expect-error\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 // @ts-expect-error\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","'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 isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } 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 = (inputData: ICreateActionContext>, newUser: BusinessPartnerUser): 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)\n .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","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 * Private constructor, expect instances to be created with the factory method.\n * @param queryResultSettings - Query result setting.\n */\n private constructor(\n queryResultSettings: QueryResultSettings\n ) {\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 = (this.queryResultSettings.Sorting!.Columns || []).map((column: SortColumn) => {\n return `${column.ColumnName}--${column.IsDescending && 'desc' || 'asc'}`;\n }).join(',') || undefined;\n const sortingHint = `sortBy-${sortingHintData}`;\n return `${topHint}|${skipHint}|${sortingHint}`;\n }\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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric, IRequestContext } 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 { buildCacheKey } 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 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) {\n this._mappedToHierarchy = mappedToHierarchy;\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 = () => buildCacheKey(`${this.channelId}|${this.sitePath}|top-${this.maxItems || 250} | ${this.catalogId}`,\n this.apiSettings, this.locale);\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 = (categoryList: Category[], ctx: IActionContext, locale?: string): CategoryHierarchy[] => {\n if (!categoryList || categoryList.length === 0) {\n return [];\n }\n\n const categoryMap: ICategoryMap = categoryList.reduce((memo: ICategoryMap, category: Category) => {\n const localName = getFriendlyName(locale, category.NameTranslations);\n const categoryHierarchy = { ...category };\n categoryHierarchy.NeutralizedName = category.Name;\n categoryHierarchy.Name = localName || categoryHierarchy.NeutralizedName;\n memo[category.RecordId] = categoryHierarchy;\n return memo;\n }, {});\n\n let zeroCategory = categoryMap[0];\n\n Object.keys(categoryMap).forEach((id: string) => {\n const element = categoryMap[+id];\n const parentId = element.ParentCategory;\n element.Url = getCategoryUrl(element, ctx, categoryMap);\n if (parentId === 0) {\n zeroCategory = element;\n return;\n }\n\n const parent = parentId && categoryMap[parentId];\n if (parent) {\n parent.Children = parent.Children || [];\n parent.Children.push(element);\n }\n });\n\n return (zeroCategory && zeroCategory.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(\n new RawCategoriesInput(ctx.requestContext, false, input.maxItems),\n ctx\n );\n return mapCategoryToHierarchy(categories, ctx, input.getLocale());\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext,\n IRequestContext\n} from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport {\n buildCacheKeyWithUrlTokens,\n getFullOrderTemplate,\n GetFullOrderTemplateInput,\n IQueryResultSettingsModuleConfig,\n OrderTemplate,\n QueryResultSettingsProxy\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Input class for getActiveOrderTemplateLines data action.\n */\nexport class ActiveOrderTemplateLinesInput implements IActionInput {\n public requestContext: IRequestContext;\n\n public orderTemplateId: string;\n\n public queryResultSettings: IQueryResultSettings;\n\n constructor(requestContext: IRequestContext, config: IQueryResultSettingsModuleConfig) {\n if (!requestContext.query?.id) {\n throw new Error('Failed to get order template id from the query.');\n }\n if (!config) {\n throw new Error('Failed to get order template module configuration');\n }\n this.orderTemplateId = requestContext.query.id;\n this.queryResultSettings = QueryResultSettingsProxy.fromModuleData(requestContext, config).QueryResultSettings;\n\n this.queryResultSettings.count = true;\n this.requestContext = requestContext;\n }\n\n public getCacheKey = (): string => buildCacheKeyWithUrlTokens('ActiveOrderTemplateLines', this.requestContext);\n\n public getCacheObjectType = (): string => 'ActiveOrderTemplateLines';\n\n public dataCacheType = (): CacheType => 'instance';\n\n public shouldCacheOutput = () => false;\n}\n\n/**\n * Calls the Retail API and returns a ProductList object based on the passed GetCartInput.\n * @param input\n * @param context\n */\nexport async function getActiveOrderTemplateLines(input: ActiveOrderTemplateLinesInput, context: IActionContext): Promise {\n return getFullOrderTemplate(new GetFullOrderTemplateInput(input.orderTemplateId, input.queryResultSettings), context);\n}\n\nexport const getActiveOrderTemplateLinesDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-template/order-template/get-order-template-lines',\n action: >getActiveOrderTemplateLines,\n input: (context: ICreateActionContext) => {\n if (!context.config) {\n throw new Error('Failed to get order template module configuration');\n }\n return new ActiveOrderTemplateLinesInput(context.requestContext, context.config);\n }\n});\n\nexport default getActiveOrderTemplateLinesDataAction;\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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } 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 = (inputData: ICreateActionContext>, newUser: BusinessPartnerUser): 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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/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","var 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-x/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 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\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","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ProductAvailableQuantity, ProductDimensionValueInventoryAvailability, ProductInventoryAvailability } 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): InventoryLevelValues | undefined => {\n\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): InventoryLevelValues | undefined => {\n\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","var 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 $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var 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 boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport { IListMapViewState, ILoadMapApiInput, IStoreInfo, IStoreSelectionStateContext, IStoreSelectorLocation, IStoreSelectorStateManager } 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\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\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(storeId?: string, storeName?: string | undefined, writeToCookie: boolean = false, latitude?: number, longitude?: number): 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. All rights reserved.\n * See License.txt 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 (!searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled) {\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 = actionContext.requestContext.app && actionContext.requestContext.app.config && actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT}/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\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}` : ''}${input.market ? `&setMkt=${input.market}` : ''}`;\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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var $ = 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","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext, IActionInput,\n IAny, ICommerceApiSettings, ICreateActionContext, IDictionary, IGeneric, 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 } from './utilities';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { buildCacheKey, 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, apiSettings: ICommerceApiSettings,\n channelId?: number, warehouseId?: string, 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 = () => buildCacheKey(\n `RecordId-${this.productId.toString()}-ChannelId-${this.channelId.toString()}-WahehouseId-${this.warehouseId ?? ''}-${this.catalogId ?? 0}`,\n this.apiSettings);\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) ? [] : productIds.map((productId: string) => {\n return new ProductInput(productId, inputData.requestContext.apiSettings,\n undefined, undefined,\n 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 // eslint-disable-next-line unicorn/no-for-loop -- Need to use indices for dictionary.\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(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 }\n\n const products = ArrayExtensions.flatten(await Promise.all(getProductPromises));\n const mappedProducts = products.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 }).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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\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\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';\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\n .execute(nextTier, requestCache, appCache, this.requestContext.query && !!this.requestContext.query.cachebypass, [])\n .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 (\n nextTier.currentActionsInQueue > 0 &&\n nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier\n ) {\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 this.requestContext.query && !!this.requestContext.query.cachebypass,\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 { 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 public getCacheKey = (): string => buildCacheKey(`${this.channelId}|${this.customerAccountNumber}`, 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","var 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 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 || 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 = {};\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 = 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. All rights reserved.\n * See License.txt 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(cart: Readonly, newLoyaltyCardId: string, actionContext: IActionContext): 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 $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 $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. All rights reserved.\n * See License.txt 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 { OrgUnitLocation, SearchArea } from '@msdyn365-commerce/retail-proxy';\nimport { getOrgUnitLocationsByAreaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Interface of Org Unit Locations.\n */\ninterface IOrgUnitLocations {\n orgUnitLocations: OrgUnitLocation[];\n}\n\nconst searchArea: SearchArea = {\n Radius: Math.max(),\n DistanceUnitValue: 0 // 0 is miles\n};\n\n/**\n * Calls the Retail API and returns the orgUnitLocations.\n * @returns - List Org Unit Locations.\n */\nconst getOrgUnitLocations = () => async (ctx: IActionContext): Promise => {\n return getOrgUnitLocationsByAreaAsync(\n {\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n },\n searchArea\n );\n};\n\n/**\n * Action input.\n */\nexport class GetOrgUnitLocationsInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('OrgUnitLocations', this.apiSettings);\n\n public getCacheObjectType = () => 'OrgUnitLocations';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Action Context.\n * @returns - Org Unit Location input.\n */\nconst createOrgUnitLocationsInput = (inputData: ICreateActionContext>) => {\n return new GetOrgUnitLocationsInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * Get orgUnitLocations action.\n * @param input - Org UNit Locations Input.\n * @param context - Action Context.\n */\nexport async function getOrgUnitLocationsAction(\n input: GetOrgUnitLocationsInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getOrgUnitLocationsAction - Action context cannot be null/undefined');\n }\n\n let orgUnitLocations: OrgUnitLocation[] = [];\n\n try {\n orgUnitLocations = await getOrgUnitLocations()(context);\n } catch (error) {\n throw error;\n }\n\n return { orgUnitLocations };\n}\n\nexport const getOrgUnitLocationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-org-unit-locations',\n action: >getOrgUnitLocationsAction,\n input: createOrgUnitLocationsInput\n});\n\nexport default getOrgUnitLocationsActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext } 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 return getFullOrderTemplates(new GetFullOrderTemplatesInput(input.queryResultSettings), 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICommerceApiSettings, ICreateActionContext, IGeneric } 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 (input: GetChannelDeliveryConfigurationInput, ctx: IActionContext): 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. All rights reserved.\n * See License.txt 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 { ChannelIdentity } from '@msdyn365-commerce/retail-proxy';\nimport { getChannelsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Interface of Channel Identity..\n */\ninterface IChannelIdentity {\n channelIdentities: ChannelIdentity[];\n}\n\n/**\n * Calls the Retail API and returns the channels.\n * @returns - List of channel identity.\n */\nconst getChannels = () => async (ctx: IActionContext): Promise => {\n return getChannelsAsync(\n {\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n }\n );\n};\n\n/**\n * Action input.\n */\nexport class GetChannelIdentitiesInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('ChannelIdentities', this.apiSettings);\n\n public getCacheObjectType = () => 'ChannelIdentities';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Action Data Input.\n * @returns - Input object.\n */\nconst createChannelIdentitiesInput = (inputData: ICreateActionContext>) => {\n return new GetChannelIdentitiesInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * Get channels action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - Channel Identity.\n */\nexport async function getChannelsAction(\n input: GetChannelIdentitiesInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getChannelsAction - Action context cannot be null/undefined');\n }\n\n let channels: ChannelIdentity[] = [];\n\n try {\n channels = await getChannels()(context);\n } catch (error) {\n throw error;\n }\n\n return { channelIdentities: channels };\n}\n\n/**\n * Get sales order with hydrations action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Channel api response.\n */\nexport const getChannelsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-channels',\n action: >getChannelsAction,\n input: createChannelIdentitiesInput\n});\n\nexport default getChannelsActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { createGetTenderTypesInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { TenderType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\n/**\n * Get Tender Types Data Action.\n */\nexport const retailActionDataAction = createObservableDataAction({\n action: >retailAction,\n input: () => createGetTenderTypesInput({})\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\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 { 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 = 408;\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 },\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 // 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 = {\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 // 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};\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 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 /* 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 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 if (operationalInsightsInstrumentationKey !== '') {\n internalTelemetry.registerTraceLogger({\n traceLogger: operationalClientAppInsightsJSLogger\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 (appInsightsInstrumentationKey !== '') {\n moduleTelemetry.registerTraceLogger({\n traceLogger: msftClientAppInsightsJSLogger\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","var 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 { CategoryClass, AttributeCategoryClass } from '../Entities/CommerceModels.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, CategoryClass, '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, AttributeCategoryClass, '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, AttributeCategoryClass, '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, CategoryClass, '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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n 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(input: GetProductListLinesInput, context: IActionContext): 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 callerContext: context\n }, input.productListId, input.searchText);\n\n const productListLines = await promise;\n const productInputs: FullProductInput[] = [];\n\n if (ArrayExtensions.hasElements(productListLines)) {\n // eslint-disable-next-line length-extensions-check -- Need to check length.\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(new FullProductInput(listLine.ProductId,\n context.requestContext.apiSettings, getProductDetailsCriteriaFromActionInput(context),\n context.requestContext));\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(product => product.ProductDetails.RecordId === line.productListLine.ProductId);\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","var 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 $RangeError('Wrong offset');\n return offset;\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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(\n lines: CartLine[],\n cartLineToAdd: CartLine\n): number {\n let elementFoundAt: number = -1;\n const productIdToFind = cartLineToAdd.ProductId;\n\n for (const [index, line] of lines.entries()) {\n if (line.ProductId === productIdToFind &&\n (line.DeliveryMode || '') === (cartLineToAdd.DeliveryMode || '') &&\n (line.FulfillmentStoreId || '') === (cartLineToAdd.FulfillmentStoreId || '')) {\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 }[]): 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 (cart.CartLines[i].ProductId === productIdToFind &&\n (cart.CartLines[i].DeliveryMode || '') === (inputItem.cartLineToAdd.DeliveryMode || '') &&\n (cart.CartLines[i].FulfillmentStoreId || '') === (inputItem.cartLineToAdd.FulfillmentStoreId || '')) {\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 (error.name === 'Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity' ||\n error.name === 'Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity') {\n addCartLinesResult = { cart: undefined, status: 'FAILED', substatus: 'QUANTITYLIMITS', 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 = { cart: undefined, status: 'FAILED', substatus: 'INVOICEINCART', errorDetails: { LocalizedMessage: error.message } };\n return addCartLinesResult;\n }\n\n addCartLinesResult = { cart: undefined, 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 }, validationResults: error.data?.ValidationResults };\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 }[]): 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 {\n cartLineToAdd: inputItem.cartLineToAdd, availableQuantity: inputItem.availableQuantity,\n shouldEnableStockCheck: inputItem.enableStockCheck, 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 (!inputItem.isAddServiceItemToCart &&\n inputItem.cartLineToAdd &&\n inputItem.cartLineToAdd.Quantity &&\n inputItem.cartLineToAdd.Quantity > 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 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 }).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 = { cart: undefined, status: 'FAILED', substatus: 'INVOICEINCART', errorDetails: { LocalizedMessage: error.message } };\n return cartActionResult;\n }\n\n cartActionResult = { cart: undefined, 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 }, validationResults: error.data?.ValidationResults };\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 }[]): Promise {\n\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 }).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 = { cart: undefined, 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 }, 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(\n cart, actionContext, input);\n}\n\nexport async function addProductToCartInternal(\n cart: Readonly, cartLineToAdd: CartLine, actionContext: IActionContext, orderQuantityLimitsFeatureIsEnabled: boolean,\n availableQuantity?: number, enableStockCheck?: boolean, isAddServiceItemToCart?: boolean,\n isMaxByQuantityValidationFeatureDefined?: boolean, shouldSkipSiteSettings?: boolean\n): Promise {\n if (shouldSkipSiteSettings) {\n return addProductsToCartWithoutSiteSettings(\n cart, actionContext, [{ cartLineToAdd }]\n );\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(\n cart, actionContext, [{ cartLineToAdd, availableQuantity, enableStockCheck, isAddServiceItemToCart }]);\n }\n return addProductsToCartValidateMaxAgainstSiteSettings(\n cart, actionContext, [{ cartLineToAdd, availableQuantity, enableStockCheck, isAddServiceItemToCart }]);\n\n}\n\nexport default addProductToCartInternal;\n","var 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-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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(cart: Readonly, actionContext: IActionContext): 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 }).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","import { ICoreContext } from '@msdyn365-commerce/core-internal';\r\nimport { IGetExperlogixStateData } from '.';\r\n\r\n// Listing of pages for URL fabrication\r\nconst configureItemPage = '/site/pages/ConfigureItem.aspx';\r\nconst experlogixParam_Auth = 'Auth';\r\nconst experlogixParam_CartId = 'CartId';\r\nconst experlogixParam_CartLineId = 'CartLineId';\r\nconst experlogixParam_ProductId = 'ProductId';\r\n\r\nexport function getExperlogixUrl(context: ICoreContext): string {\r\n return (context.app as any).config.experlogixSiteUrl;\r\n}\r\n\r\n// Reconstitute the application root URL for the Web Configurator.\r\n// Example return: http://localhost:5000/experlogix\r\nexport const getExperlogixRootUrl = (anyExperlogixUrl: string) => {\r\n const url = new URL(anyExperlogixUrl);\r\n\r\n // Ignoring the first character, which is guaranteed to be a slash, find the first\r\n // slash which terminates the first path element (if present).\r\n var firstSlashPosition = url.pathname.indexOf('/', 1);\r\n\r\n // Preserve the path up to the first path element, if discovered.\r\n const path = firstSlashPosition === -1 ? url.pathname : url.pathname.slice(0, firstSlashPosition);\r\n\r\n return `${url.protocol}//${url.hostname}${path}`;\r\n};\r\n\r\nexport const getExperlogixConfigureItemUrl = (anyExperlogixUrl: string) => `${getExperlogixRootUrl(anyExperlogixUrl)}${configureItemPage}`;\r\n\r\nexport const assembleUrlParams = (...urlParams: { key: string | undefined; value: string }[]) =>\r\n urlParams\r\n .map(p => (p.key !== undefined ? `${encodeURIComponent(p.key)}=${encodeURIComponent(p.value)}` : encodeURIComponent(p.value)))\r\n .join('&');\r\n\r\nexport const getExperlogixLaunchUrl = (experlogixSiteUrl: string, experlogixState: IGetExperlogixStateData, productId: number | null) => {\r\n let url = getExperlogixConfigureItemUrl(experlogixSiteUrl);\r\n if (experlogixState.cartLineId) {\r\n // Launch CPQ directly to an existing Cart Line's configuration\r\n url = `${url}?${assembleUrlParams(\r\n { key: experlogixParam_CartId, value: experlogixState.cart.Id },\r\n { key: experlogixParam_CartLineId, value: experlogixState.cartLineId },\r\n { key: experlogixParam_Auth, value: experlogixState.authNonce }\r\n )}`;\r\n } else {\r\n // Launch CPQ to create a new Configuration for the Cart\r\n url = `${url}?${assembleUrlParams(\r\n { key: experlogixParam_CartId, value: experlogixState.cart.Id },\r\n { key: experlogixParam_ProductId, value: productId?.toString() ?? '' },\r\n { key: experlogixParam_Auth, value: experlogixState.authNonce }\r\n )}`;\r\n }\r\n return url;\r\n};\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType,\n createObservableDataAction,\n IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { ProductDeliveryOptions, SalesOrder, SimpleProduct, TransactionType } from '@msdyn365-commerce/retail-proxy';\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport { getSalesOrderDetailsBySalesIdAsync,\n getSalesOrderDetailsByTransactionIdAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/SalesOrdersDataActions.g';\nimport { ArrayExtensions, buildCacheKey, getSimpleProducts, ObjectExtensions, ProductInput,\n QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Sales order response interface.\n */\ninterface ISalesOrderWithHydrations {\n salesOrder: SalesOrder;\n products: SimpleProduct[];\n productDeliveryOptions?: ProductDeliveryOptions[];\n}\n\n/**\n * OrderTypes Types of orders.\n */\nexport enum orderTypes {\n salesOrder = 'salesOrder',\n transaction = 'transaction'\n}\n\n/**\n * Calls the Retail API and returns the sales order.\n * @param orderType - OrderType.\n * @param orderId - Unique OrderId for each order.\n * @returns Sales Order.\n */\nconst getSalesOrder = (orderType: string = '', orderId: string = '') => async (context: IActionContext): Promise => {\n // Local (1) searches the retail server database, and remote (2) searches\n // on the headquarters side. All (3) and none (0) are not supported.\n const localSearch = 1;\n return orderType === orderTypes.salesOrder ? getSalesOrderDetailsBySalesIdAsync({ callerContext: context }, orderId) : getSalesOrderDetailsByTransactionIdAsync({ callerContext: context }, orderId, localSearch);\n};\n\n/**\n * Calls the Retail API and returns the products.\n * @param productIds - The product ids of the product to retrieve.\n * @param channelId - The channel id for the products.\n * @returns Simple product data.\n */\nconst getProducts = (productIds: (string | number)[] = [], channelId?: number) => async (context: IActionContext): Promise => {\n const productInputs = productIds.map(productId => new ProductInput(\n productId, context.requestContext.apiSettings, channelId, undefined, context.requestContext));\n return getSimpleProducts(productInputs, context);\n};\n\n/**\n * Action input.\n */\nexport class GetSalesOrderConfirmationWithHydrationsInput implements IActionInput {\n public orderType: string;\n\n public orderId: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(orderType: string, orderId: string, apiSettings: ICommerceApiSettings) {\n this.orderType = orderType;\n this.orderId = orderId;\n this.apiSettings = apiSettings;\n }\n\n /**\n * Get cache key.\n * @returns String.\n */\n public getCacheKey = () => buildCacheKey('SalesOrderConfirmationWithHydrations', this.apiSettings);\n\n /**\n * Get cache object.\n * @returns String.\n */\n public getCacheObjectType = () => `SalesOrderConfirmationWithHydrations-${this.orderType}-${this.orderId}`;\n\n /**\n * Get cache data type.\n * @returns String.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Actioncontext data.\n * @returns Sales Order Input.\n */\nconst createSalesOrderConfrimationWithHydrationsInput = (inputData: ICreateActionContext) => {\n const { salesId = '', transactionId = '' } = (inputData.requestContext.query) || {};\n if (salesId) {\n return new GetSalesOrderConfirmationWithHydrationsInput(orderTypes.salesOrder, salesId, inputData.requestContext.apiSettings);\n } else if (transactionId) {\n return new GetSalesOrderConfirmationWithHydrationsInput(orderTypes.transaction, transactionId, inputData.requestContext.apiSettings);\n }\n throw new Error('createSalesOrderConfrimationWithHydrationsInput - No salesId or transactionId provided.');\n};\n\n/**\n * Get sales order with hydrations action.\n * @param input - Input for data action.\n * @param context - Action context.\n * @returns Sales order response.\n */\nexport async function getSalesOrderConfirmationWithHydrationsAction(\n input: GetSalesOrderConfirmationWithHydrationsInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getSalesOrderConfirmationWithHydrationsAction - Action context cannot be null/undefined');\n }\n\n const { orderType, orderId } = input;\n\n if (!orderType || !orderId) {\n context.trace('[getSalesOrderConfirmationWithHydrationsAction] No orderType or orderId provided.');\n return {};\n }\n\n const salesOrder = await getSalesOrder(orderType, orderId)(context);\n\n if (!salesOrder) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesOrder found.');\n return {};\n }\n\n // If it is salesInvoice, return salesOrder and empty products\n if (salesOrder.TransactionTypeValue === TransactionType.SalesInvoice) {\n return {\n salesOrder,\n products: []\n };\n }\n\n if (!ArrayExtensions.hasElements(salesOrder.SalesLines)) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesLine found.');\n return {};\n }\n\n const productIds = salesOrder.SalesLines.map(salesLine => salesLine.ProductId ?? '');\n\n if (!ArrayExtensions.hasElements(productIds)) {\n context.trace('[getSalesOrderWithHydrationsAction] No products in saleLines found.');\n return {};\n }\n\n const products = await getProducts(productIds, salesOrder.ChannelId)(context);\n\n if (!ArrayExtensions.hasElements(products)) {\n context.trace('[getSalesOrderWithHydrationsAction] No simple products found.');\n return {};\n }\n\n const validProducts = products.filter(product => !ObjectExtensions.isNullOrUndefined(product.RecordId));\n const filterPickup = 4;\n const deliveryOptions = await getDeliveryOptionsAsync(\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\n validProducts.map(product => product.RecordId), {}, filterPickup)\n .then(result => {\n return result;\n }).catch((error: Error) => {\n context.trace(error.message);\n context.telemetry.exception(error);\n context.telemetry.debug('[getDeliveryOptionsForCartLineItems]Error executing action');\n throw new Error('[getDeliveryOptionsForCartLineItems]Error executing action');\n });\n\n return {\n salesOrder,\n products,\n deliveryOptions\n };\n}\n\n/**\n * Get sales order with hydrations action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Sales order response.\n */\nexport const getSalesOrderConfirmationWithHydrationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-sales-order-confirmation-with-hydrations',\n action: >getSalesOrderConfirmationWithHydrationsAction,\n input: createSalesOrderConfrimationWithHydrationsInput\n});\n\nexport default getSalesOrderConfirmationWithHydrationsActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IProductDimensionsWithAvailabilitiesFull, ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext, IActionInput,\n IAny, ICreateActionContext, IGeneric, IRequestContext\n} from '@msdyn365-commerce/core';\nimport {\n ProductDimension, ProductDimensionAvailabilitySearchCriteria,\n ProductDimensionValue, ProductDimensionValueInventoryAvailability, ProductsDataActions\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ArrayExtensions } from './utilities';\nimport { createInventoryAvailabilitySearchCriteria } from './utilities/product-inventory-utils';\nimport { QueryResultSettingsProxy } from './utilities/QueryResultSettingsProxy';\nimport { getDimensionValuesFromQuery, getSelectedProductIdFromActionInput } from './utilities/utils';\n\n/* eslint-disable inclusive-language/use-inclusive-words -- disabling inclusive words for this file. */\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 public constructor(productId: number, channelId: number, matchingDimensionValues?: ProductDimension[], requestContext?: IRequestContext) {\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 = () => `DimensionsForSelectedVariantInput-${this.productId}-${this.channelId}-${this.catalogId ?? 0}`;\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 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(newDimension.dimensionValuesWithInventory?.map(value => value.DimensionValue));\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 callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n }, input.channelId, [input.productId], null, input.catalogId ?? 0));\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 {\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\n MatchingDimensionValues: input.matchingDimensionValues.filter(item => item.DimensionTypeValue !== dimension.DimensionTypeValue),\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/* eslint-enable inclusive-language/use-inclusive-words -- enabling it back. */\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-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/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-x/no-symbol -- safe\n var symbol = Symbol();\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","var 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/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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(searchCriteria: ProductSearchCriteria, queryResultSettings: IQueryResultSettings, ctx: IActionContext): Promise {\n return getProductSearchRefinersAsync({ callerContext: ctx, queryResultSettings }, searchCriteria).then((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 * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext } 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-chanId:${this.apiSettings.channelId}-catId:${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 ((isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Auth) || (!isAuthenticated && cartCookieParts[0] === CartTokenPrefix.Anon)) {\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","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICommerceApiSettings,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { SortColumn } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSearchConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n// TODO: import from commerce entities when available\r\ninterface SearchConfiguration {\r\n ProductSortColumns?: SortColumn[];\r\n}\r\n\r\nexport interface MappedSearchConfiguration {\r\n key: string;\r\n sortColumn: SortColumn;\r\n}\r\n\r\nexport const sortOptions = {\r\n sortByOptionRelevanceDesc: 'Ranking-Desc',\r\n sortByOptionRatingAsc: 'AverageRating-Asc',\r\n sortByOptionRatingDesc: 'AverageRating-Desc',\r\n sortByOptionNameAsc: 'Name-Asc',\r\n sortByOptionNameDesc: 'Name-Desc',\r\n sortByOptionPriceAsc: 'Price-Asc',\r\n sortByOptionPriceDesc: 'Price-Desc',\r\n sortByOptionBestSelling: 'BestSelling',\r\n sortByOptionNewScore: 'NewScore',\r\n sortByOptionTrendingScore: 'TrendingScore'\r\n};\r\n\r\n/**\r\n * ActionInput class for the get-mapped-search-configuration Data Action.\r\n */\r\nexport class MappedSearchInput implements IActionInput {\r\n private readonly apiSettings: ICommerceApiSettings;\r\n\r\n constructor(apiSettings: ICommerceApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey('MappedSearchInput', this.apiSettings);\r\n\r\n public getCacheObjectType = () => 'MappedSearchInput';\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * Get a mapped search configuration that is easy to use for sorting.\r\n * @param input\r\n * @param ctx\r\n */\r\nexport async function getMappedSearchConfiguration(input: MappedSearchInput, ctx: IActionContext): Promise {\r\n return getSearchConfigurationAsync({ callerContext: ctx }).then((searchConfiguration: SearchConfiguration) => {\r\n return (searchConfiguration.ProductSortColumns || [])\r\n .map((sortColumn: SortColumn) => {\r\n let key = '';\r\n if (sortColumn.ColumnName) {\r\n switch (sortColumn.ColumnName.toUpperCase()) {\r\n case 'NAME':\r\n key = sortColumn.IsDescending ? sortOptions.sortByOptionNameDesc : sortOptions.sortByOptionNameAsc;\r\n break;\r\n case 'PRICE':\r\n key = sortColumn.IsDescending ? sortOptions.sortByOptionPriceDesc : sortOptions.sortByOptionPriceAsc;\r\n break;\r\n case 'AVERAGERATING':\r\n key = sortColumn.IsDescending ? sortOptions.sortByOptionRatingDesc : sortOptions.sortByOptionRatingAsc;\r\n break;\r\n case 'RANKING':\r\n key = sortOptions.sortByOptionRelevanceDesc;\r\n break;\r\n case 'BESTSELLINGSCORE':\r\n key = sortOptions.sortByOptionBestSelling;\r\n break;\r\n case 'NEWSCORE':\r\n key = sortOptions.sortByOptionNewScore;\r\n break;\r\n case 'TRENDINGSCORE':\r\n key = sortOptions.sortByOptionTrendingScore;\r\n break;\r\n default:\r\n }\r\n } else {\r\n ctx.telemetry.warning('[get-mapped-search-configuration] unknown search option');\r\n }\r\n if (key) {\r\n return {\r\n key,\r\n sortColumn\r\n };\r\n }\r\n return undefined;\r\n })\r\n .filter(Boolean);\r\n });\r\n}\r\n\r\nexport const createInput = (inputData: ICreateActionContext>): IActionInput => {\r\n return new MappedSearchInput(inputData.requestContext.apiSettings);\r\n};\r\n\r\nexport const getMappedSearchConfigurationDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/search-result-container/get-mapped-search-configuration',\r\n action: >getMappedSearchConfiguration,\r\n input: createInput\r\n});\r\n\r\nexport default getMappedSearchConfigurationDataAction;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\nexport interface IRatingsReviewsState {\n filterKey: string;\n}\n\nexport function createRatingsReviewsStateInput(result: IRatingsReviewsState): GenericInput {\n return new GenericInput('ratingsReviewsState', result, 'ratingsReviewsStateInput');\n}\n\nconst createInternalRatingsReviewsStateInput = (): IActionInput => {\n return createRatingsReviewsStateInput({ filterKey: '1;2;3;4;5' });\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createInternalRatingsReviewsStateInput\n});\n\nexport default getGenericActionDataAction;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\n// eslint-disable-next-line es-x/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\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 un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","var 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. All rights reserved.\n * See License.txt 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(\n productId: string,\n tenantId: string,\n serviceEndpoint: string\n ) {\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 PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw 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. All rights reserved.\n * See License.txt 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","'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/define-iterator');\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 kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: 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","var 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.exec(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","/* 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-x/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","var 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.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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(cart: Readonly, cartLineDeliverySpecifications: LineDeliverySpecification[], actionContext: IActionContext): Promise {\n if (!cart || !cart.CartLines || cartLineDeliverySpecifications.length === 0) {\n return { cart: undefined, status: 'FAILED', substatus: 'EMPTYCART' };\n }\n\n return updateLineDeliverySpecificationsAsync(\n { callerContext: actionContext },\n cart.Id,\n cartLineDeliverySpecifications\n )\n .then(newCart => {\n return { cart: newCart, status: 'SUCCESS' };\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","// 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","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\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['@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'] = {\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","var 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","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { getDimensionAvailabilitiesForProductsAction, ProductsDimensionAvailabilitiesInput } from './get-dimension-availabilities-for-products';\nimport { ArrayExtensions, checkIfShouldDisplayAsSwatch, DimensionTypes, getInventoryLevelCodeFromDimensionValue,\n IDimensionsApp, InventoryLevelValues } 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 constructor(products: ProductSearchResult[], dimensionContext: ICoreContext) {\n this.products = products;\n this.dimensionContext = dimensionContext;\n }\n\n /**\n * Get the cache key.\n * @returns The cache key.\n */\n public getCacheKey = (): string => `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): DimensionAvailabilitiesForProductSearchResultInput => {\n\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\n for (const product of products) {\n const filteredProductAttributes = product.AttributeValues?.filter(attributeValue => {\n return checkIfShouldDisplayAsSwatch(\n (attributeValue.Name?.toLocaleLowerCase() ?? '') as DimensionTypes, input.dimensionContext);\n });\n\n if (ArrayExtensions.hasElements(filteredProductAttributes)) {\n for (const attributeValue of filteredProductAttributes) {\n if (attributeValue.Name) {\n const productionDimensionType: ProductDimensionType = ProductDimensionType[attributeValue.Name as keyof typeof ProductDimensionType];\n\n productsDimensionInputs.push(new ProductsDimensionAvailabilitiesInput(\n // eslint-disable-next-line inclusive-language/use-inclusive-words -- existing property.\n product.MasterProductId ?? product.RecordId,\n productionDimensionType,\n context.requestContext));\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, context);\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 // eslint-disable-next-line inclusive-language/use-inclusive-words, woke/all -- existing property.\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';\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/create-iterator-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 in IterablePrototype) return IterablePrototype[KIND];\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 } 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","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var 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 $TypeError(\"Can't convert object to primitive value\");\n};\n","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ObjectExtensions } from './object-extensions';\n\n/**\n * Namespace which extends enum functionality.\n */\nexport namespace EnumExtensions {\n\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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 /**\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","var 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 $TypeError('RegExp#exec called on incompatible receiver');\n};\n","var $ = 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-x/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var 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-x/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. All rights reserved.\n * See License.txt 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(\n new GetCheckoutCartInput(this.actionContext.requestContext.apiSettings),\n this.actionContext\n );\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext, msdyn365Commerce } 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","/*!\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, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, } from '../Entities/CommerceTypes.g';\n import { ReceiptMaskClass, DeliveryOptionClass, AffiliationClass, PromotionClass, PaymentMerchantInformationClass, StoreSafeClass, ShiftReconciliationLineClass, SearchSuggestionClass, DeviceActivationResultClass, CreateHardwareStationTokenResultClass, ValidateHardwareStationTokenResultClass, BarcodeClass, ButtonGridClass, MediaBlobClass, CardTypeInfoClass, CityInfoClass, CountryRegionInfoClass, OnlineChannelClass, CountyInfoClass, CreditMemoClass, DataDownloadParametersClass, DataUploadParametersClass, DownloadSessionClass, NumberSequenceSeedDataClass, ReceiptNumberResetInfoClass, LoyaltyRewardPointActivityClass, CurrencyAmountClass, DiscountCodeClass, DistrictInfoClass, HardwareStationProfileClass, HardwareProfileClass, LocalizedStringClass, OperationPermissionClass, ReasonCodeClass, ReportDataSetClass, IncomeExpenseAccountClass, StateProvinceInfoClass, ZipCodeInfoClass, KitTransactionClass, LoyaltyCardClass, LoyaltyCardTransactionClass, TransactionClass, GiftCardClass, NonSalesTransactionClass, DropAndDeclareTransactionClass, TaxOverrideClass, CustomerBalancesClass, LinkToExistingCustomerResultClass, OfflineSyncStatsLineClass, StorageAccessTokenClass, FrameworkClass, TaskGuidesSearchResultClass, RecordingClass, AttributeDefinitionClass, AttributeGroupDefinitionClass, AuditEventClass, InventoryAvailableToPromiseClass, SalesOrderClass, NotificationItemClass, FiscalIntegrationDocumentClass, FiscalIntegrationRegistrationProcessClass, FiscalIntegrationSupportedEventsClass, FiscalIntegrationTechnicalProfileClass, FiscalIntegrationServiceStatusClass, FiscalIntegrationServiceCommunicationResultClass, FeatureStateClass, FiscalIntegrationSequentialSignatureDataClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, CartClass, OperationalInsightsConfigurationClass, CashDeclarationClass, CustomerGroupClass, ChannelDeliveryOptionConfigurationClass, ChannelIdentityClass, EnvironmentConfigurationClass, SearchConfigurationClass, ExtensionPackageDefinitionClass, ExtensionProfileClass, DeviceConfigurationClass, VisualProfileClass, SupportedLanguageClass, SalesTaxGroupClass, TenderTypeClass, UnitOfMeasureClass, CurrencyClass, CommissionSalesGroupClass, ChannelInventoryConfigurationClass, ChannelPurchaseConfigurationClass, InventoryJournalNameClass, DeviceClass, UserDefinedSecretCertificateResultClass, ExtensibleEnumerationContainerClass, AddressPurposeClass, ReturnPolicyClass, EmailReceiptSettingsClass } from '../Entities/CommerceModels.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, DeliveryOptionClass, '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, AffiliationClass, '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, PromotionClass, '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, PaymentMerchantInformationClass, '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, StoreSafeClass, '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, ShiftReconciliationLineClass, '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, ReceiptMaskClass, '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, SearchSuggestionClass, '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, DeviceActivationResultClass, '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, DeviceActivationResultClass, '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, CreateHardwareStationTokenResultClass, '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, ValidateHardwareStationTokenResultClass, '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, BarcodeClass, '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, ButtonGridClass, '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, ButtonGridClass, '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, ButtonGridClass, '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, MediaBlobClass, '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, CardTypeInfoClass, '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, CardTypeInfoClass, '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, CityInfoClass, '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, CountryRegionInfoClass, '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, CountryRegionInfoClass, '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, OnlineChannelClass, '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, CountyInfoClass, '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, CreditMemoClass, '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, DataDownloadParametersClass, '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, DataUploadParametersClass, '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, DownloadSessionClass, '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, DownloadSessionClass, '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): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, NumberSequenceSeedDataClass, 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, { });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings);\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, ReceiptNumberResetInfoClass, '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, LoyaltyRewardPointActivityClass, '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, LoyaltyRewardPointActivityClass, '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, CurrencyAmountClass, '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, DiscountCodeClass, '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, DiscountCodeClass, '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, DiscountCodeClass, '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, DistrictInfoClass, '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, HardwareStationProfileClass, '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, HardwareProfileClass, '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, LocalizedStringClass, '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, OperationPermissionClass, '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, ReasonCodeClass, '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, ReportDataSetClass, '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, ReportDataSetClass, '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, ReportDataSetClass, '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, IncomeExpenseAccountClass, '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, StateProvinceInfoClass, '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, ZipCodeInfoClass, '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, ZipCodeInfoClass, '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, KitTransactionClass, '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, LoyaltyCardClass, '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, LoyaltyCardClass, '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, LoyaltyCardClass, '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, LoyaltyCardTransactionClass, '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, LoyaltyRewardPointActivityClass, '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, TransactionClass, '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, GiftCardClass, '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, GiftCardClass, '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, NonSalesTransactionClass, '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, NonSalesTransactionClass, '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, DropAndDeclareTransactionClass, '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, TaxOverrideClass, '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, CustomerBalancesClass, '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, LinkToExistingCustomerResultClass, '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, LinkToExistingCustomerResultClass, '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, OfflineSyncStatsLineClass, '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 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, StorageAccessTokenClass, '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, FrameworkClass, '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, FrameworkClass, '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, TaskGuidesSearchResultClass, '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, RecordingClass, '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, RecordingClass, '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, AttributeDefinitionClass, '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, AttributeGroupDefinitionClass, '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, AuditEventClass, '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, InventoryAvailableToPromiseClass, '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, SalesOrderClass, '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, NotificationItemClass, '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 createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationRegistrationProcessClass, '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, FiscalIntegrationSupportedEventsClass, '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, FiscalIntegrationTechnicalProfileClass, '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, FiscalIntegrationTechnicalProfileClass, '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 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, FiscalIntegrationTechnicalProfileClass, '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, FiscalIntegrationServiceStatusClass, '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, FiscalIntegrationServiceCommunicationResultClass, '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, FeatureStateClass, '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, FiscalIntegrationSequentialSignatureDataClass, '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, FiscalTransactionClass, '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, PickupTimeslotAvailabilityClass, '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, CartClass, '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 createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, ButtonGridClass, '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, ButtonGridClass, '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, OperationalInsightsConfigurationClass, '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, CashDeclarationClass, '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, CountryRegionInfoClass, '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, CustomerGroupClass, '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, ChannelDeliveryOptionConfigurationClass, '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, ChannelIdentityClass, '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, ChannelIdentityClass, '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, ChannelIdentityClass, '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, EnvironmentConfigurationClass, '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 createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, SearchConfigurationClass, '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, ExtensionPackageDefinitionClass, '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, ExtensionProfileClass, '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, DeviceConfigurationClass, '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, VisualProfileClass, '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, SupportedLanguageClass, '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, AffiliationClass, '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, OperationPermissionClass, '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, ReasonCodeClass, '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, ReasonCodeClass, '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, SalesTaxGroupClass, '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, TenderTypeClass, '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, UnitOfMeasureClass, '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, DiscountCodeClass, '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, CurrencyClass, '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, CurrencyAmountClass, '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, CommissionSalesGroupClass, '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, CommissionSalesGroupClass, '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, PaymentMerchantInformationClass, '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, PaymentMerchantInformationClass, '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, ChannelInventoryConfigurationClass, '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, ChannelPurchaseConfigurationClass, '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, InventoryJournalNameClass, '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, DeviceClass, '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, UserDefinedSecretCertificateResultClass, '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, MediaBlobClass, '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, ExtensibleEnumerationContainerClass, '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, AddressPurposeClass, '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, ReturnPolicyClass, '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, EmailReceiptSettingsClass, '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 ","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/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 $ = 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 un$ToFixed = 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 un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\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 $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. All rights reserved.\n * See License.txt 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 = ['DataTypeValue', 'LeftValueBoundString', 'RefinerRecordId', 'RefinerSourceValue', 'RightValueBoundString', 'UnitText'];\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.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 }).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) => (first.RefinerRecordId && second.RefinerRecordId &&\n (first.RefinerRecordId > second.RefinerRecordId) ? 1 : -1));\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};\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","var 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. All rights reserved.\n * See License.txt 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","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ScanResult } from '../Entities/CommerceTypes.g';\n import { ScanResultClass } from '../Entities/CommerceModels.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';","var 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 $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 { ChecklistClass, ChecklistTaskClass, ChecklistTaskTeamsIntegrationConfigurationClass } from '../Entities/CommerceModels.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, ChecklistClass, '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, ChecklistTaskClass, '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, ChecklistTaskClass, '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, ChecklistClass, '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, ChecklistTaskClass, '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, ChecklistTaskClass, '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, ChecklistTaskTeamsIntegrationConfigurationClass, '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 { 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUser, Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnerUsersDataActions.g';\n\nimport getCustomer, { GetCustomerInput } from './get-customer';\nimport { buildCacheKey } from './utilities/utils';\n\n/**\n * Input class for get current business partner user data action.\n */\nexport class GetCurrentBusinessPartnerUserInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('CurrentBusinessPartnerUser', this.apiSettings);\n\n public getCacheObjectType = () => 'BusinessPartner';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\nexport const createGetCurrentBusinessPartnerUserInput = (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 return new GetCurrentBusinessPartnerUserInput(requestContext.apiSettings);\n};\n\nexport async function getCurrentBusinessPartnerUser(input: GetCurrentBusinessPartnerUserInput, ctx: IActionContext): Promise {\n const customerInput = new GetCustomerInput(ctx.requestContext.apiSettings);\n const customer: Customer = await getCustomer(customerInput, ctx);\n\n if (customer?.IsB2b) {\n return getCurrentAsync({ callerContext: ctx });\n }\n return undefined;\n\n}\n\nexport default createObservableDataAction({\n id: 'get-current-business-partner-user',\n action: >getCurrentBusinessPartnerUser,\n input: createGetCurrentBusinessPartnerUserInput\n});\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType,\n getCatalogId,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { convertToString, IQueryResultSettings, ProductRefinerValue, SortColumn } from '@msdyn365-commerce/retail-proxy';\nimport {\n buildCacheKey,\n QueryResultSettingsProxy\n} 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 &&\n inputData.config &&\n inputData.config.includeAttributes !== undefined &&\n 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 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 ) {\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 }\n\n public getCacheKey = () => {\n const queryResultSettings = {\n ...this.queryResultSettings.Paging,\n ...toJS(this.queryResultSettings.Sorting)\n };\n\n const cacheKey = buildCacheKey(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- disabling this as inputs can be undefined depending on page type\n `${this.pageType}-${this.locale}-${this.category || this.searchText}-${this.catalogId}-${this.refiners.map(refiner => `${refiner.RefinerRecordId + (refiner.LeftValueBoundString || '') + (refiner.RightValueBoundString || '')}-`)}-${convertToString(queryResultSettings)}`, this.apiSettings, 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) => 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) ? 'Category' : '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.productId && args.requestContext.query.recommendation) {\n return new inputClassConstuctor(\n pageType,\n args.requestContext.apiSettings,\n queryResultSettings,\n queryRefiners,\n undefined,\n JSON.stringify({ ProductId: args.requestContext.query.productId, Recommendation: args.requestContext.query.recommendation }),\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 && extraData.request.headers) {\n extraData.request.headers = {};\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext, 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, buildCacheKey, generateImageUrl, getProductUrlSync, getSelectedProductIdFromActionInput, QueryResultSettingsProxy\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(config: IProductPageSummaryConfig, apiSettings: ICommerceApiSettings, productId: number, requestContext?: IRequestContext) {\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 => `${buildCacheKey('ProductPageSummary', this.apiSettings)}-${this.config.title}-${this.productId}-${this.catalogId ?? 0}`;\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(args.config, args.requestContext.apiSettings, +productId, args.requestContext);\n }\n throw new Error('Unable to create ProductPageSummaryAction input, no productId found on module config or query');\n\n};\n\n// Checks product attributes for the presence of brand attribute to extract the brand name for product metadata\nconst getProductBrand = async (context: IActionContext, recordId: number, channelId: number, catalogId: number): Promise => {\n const productAttributes = await getAttributeValuesAsync({\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n }, recordId, channelId, catalogId);\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 callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n }, apiSettings.channelId, [productId], null, input.catalogId ?? 0));\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 } 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};\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 definePropertyModule = require('../internals/object-define-property');\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 var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, IAction, IActionContext, IActionInput,\n ICommerceApiSettings\n} from '@msdyn365-commerce/core';\nimport { Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy';\nimport {\n readAsync, updateAsync\n} 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\n/**\n * Input class for the updateCustomerAttributes.\n */\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(userAccountNumber: string, customerAttributes: CustomerAttribute[], apiSettings: ICommerceApiSettings, phone?: string, vatNumber?: string) {\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 const newCustomer = { ...customer };\n newCustomer.Phone = phone;\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 * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { ArrayExtensions } from './extensions/array-extensions';\nimport { IProductInventoryInformation } from './product-inventory-information';\n\n/**\n * Cart line inventory validation result interface.\n */\nexport interface ICartLineInventoryValidationResult {\n\n /**\n * Define whether the cart lines inventory is valid across multiple cart lines.\n */\n readonly isValid: boolean;\n\n /**\n * Defines the list of product id with invalid inventory.\n */\n readonly productIdWithErrors: number [];\n}\n\n/**\n * Validates inventory across cart lines.\n * @param cartLines - The cart lines.\n * @param productAvailabilities - The product availability collection.\n * @param actionContext - The action context.\n * @param products - The products.\n * @param emailDeliveryModeCode - The emailDeliveryModeCode.\n * @returns True if all product quantity are available, false otherwise.\n */\nexport function validateCartLinesInventory(\n cartLines: CartLine[],\n productAvailabilities: IProductInventoryInformation[],\n actionContext: IActionContext,\n products?: SimpleProduct[],\n emailDeliveryModeCode?: string | undefined): ICartLineInventoryValidationResult {\n const cartLineMap = new Map();\n const defaultCartLineQuantity = 1;\n if (!actionContext.requestContext.app.config.enableStockCheck) {\n return {\n isValid: true,\n productIdWithErrors: []\n };\n }\n const productIdWithErrors = [];\n let isValid = true;\n\n if (ArrayExtensions.hasElements(cartLines) && ArrayExtensions.hasElements(productAvailabilities)) {\n\n // Consolidate products in different cart lines into single entry with the total cart quantity\n for (const cartLine of cartLines) {\n // Skip validation if is an invoice inline.\n if (cartLine.ProductId && !cartLine.IsInvoiceLine) {\n if (!cartLineMap.has(cartLine.ProductId)) {\n cartLineMap.set(cartLine.ProductId, cartLine.Quantity ?? defaultCartLineQuantity);\n } else {\n const cartLineTotal = cartLineMap.get(cartLine.ProductId) ?? 0;\n cartLineMap.delete(cartLine.ProductId);\n cartLineMap.set(cartLine.ProductId, cartLineTotal + (cartLine.Quantity ?? defaultCartLineQuantity));\n }\n }\n }\n\n // Hashing product availability object by product ID.\n const productAvailabilityMap = new Map();\n for (const productAvailability of productAvailabilities) {\n\n if (productAvailability.ProductAvailableQuantity.ProductId &&\n !productAvailabilityMap.has(productAvailability.ProductAvailableQuantity.ProductId)) {\n productAvailabilityMap.set(productAvailability.ProductAvailableQuantity.ProductId, productAvailability);\n }\n }\n\n // Compare total quantity with the available quantity from the inventory API, also validate that the product is available.\n for (const productId of Array.from(cartLineMap.keys())) {\n const cartLineQty = cartLineMap.get(productId) ?? defaultCartLineQuantity;\n const productAvailability = productAvailabilityMap.get(productId);\n const availableQuantity = productAvailability?.ProductAvailableQuantity.AvailableQuantity ?? undefined;\n\n // If product is non-stocked or cartLine is electronic delivery, then no inventory check\n const cartLine = cartLines.find(line => line.ProductId === productId);\n const cartLineProduct = products?.find(product => product.RecordId === productId);\n let isStockedItem = true;\n if (cartLineProduct) {\n isStockedItem = !!cartLineProduct.Behavior?.IsStockedProduct;\n }\n const isEmailDelivery = (cartLine?.DeliveryMode && cartLine.DeliveryMode !== '') ? cartLine.DeliveryMode === emailDeliveryModeCode : false;\n const shouldSkipInventoryCheck = !isStockedItem || isEmailDelivery;\n\n // If product is non-stocked or cartLine is electronic delivery, then no inventory check\n if (shouldSkipInventoryCheck) {\n continue;\n }\n if (!productAvailability?.IsProductAvailable || (availableQuantity && cartLineQty > availableQuantity)) {\n productIdWithErrors.push(productId);\n isValid = false;\n }\n }\n }\n return {\n isValid,\n productIdWithErrors\n };\n}\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('aad-generic') && (binding.modules['aad-generic'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-aad-generic' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/aad-generic/aad-generic'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'aad-generic',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/aad-generic'\n });\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('account-address-tile') && (binding.modules['account-address-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-address-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-address-tile/account-address-tile'),\n $type: 'contentModule',\n da: [{name:'address', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-address', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-address-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-address-tile'\n });\n \n\n isNotRegistered('account-customer-balance') && (binding.modules['account-customer-balance'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-customer-balance' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-customer-balance/account-customer-balance'),\n $type: 'contentModule',\n da: [{name:'b2bUserInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user', runOn: 0},{name:'balance', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-customer-balance',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-customer-balance'\n });\n \n\n isNotRegistered('account-customer-balance-tile') && (binding.modules['account-customer-balance-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-customer-balance-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-customer-balance-tile/account-customer-balance-tile'),\n $type: 'contentModule',\n da: [{name:'balance', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-customer-balance-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-customer-balance-tile'\n });\n \n\n isNotRegistered('account-generic-tile') && (binding.modules['account-generic-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-generic-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-generic-tile/account-generic-tile'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-generic-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-generic-tile'\n });\n \n\n isNotRegistered('account-invoice-tile') && (binding.modules['account-invoice-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-invoice-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-invoice-tile/account-invoice-tile'),\n $type: 'contentModule',\n da: [{name:'customerBalance', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance', runOn: 0},{name:'invoices', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-invoice-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-invoice-tile'\n });\n \n\n isNotRegistered('account-loyalty') && (binding.modules['account-loyalty'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-loyalty' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-loyalty/account-loyalty'),\n $type: 'contentModule',\n da: [{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-loyalty',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-loyalty'\n });\n \n\n isNotRegistered('account-loyalty-tile') && (binding.modules['account-loyalty-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-loyalty-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-loyalty-tile/account-loyalty-tile'),\n $type: 'contentModule',\n da: [{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-loyalty-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-loyalty-tile'\n });\n \n\n isNotRegistered('account-management-address') && (binding.modules['account-management-address'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-address-account-management-address' */\n '@msdyn365-commerce-modules/address/dist/lib/modules/account-management-address/account-management-address'),\n $type: 'contentModule',\n da: [{name:'address', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-address', runOn: 0},{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-management-address',\n p: 'address',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/address/dist/lib/modules/account-management-address'\n });\n \n\n isNotRegistered('account-order-templates-tile') && (binding.modules['account-order-templates-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-order-templates-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-order-templates-tile/account-order-templates-tile'),\n $type: 'contentModule',\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:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-order-templates-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-order-templates-tile'\n });\n \n\n isNotRegistered('account-profile') && (binding.modules['account-profile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-profile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-profile/account-profile'),\n $type: 'contentModule',\n da: [{name:'attributeDefinitions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-attribute-definitions', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-profile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-profile'\n });\n \n\n isNotRegistered('account-profile-edit') && (binding.modules['account-profile-edit'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-profile-edit' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-profile-edit/account-profile-edit'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-profile-edit',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-profile-edit'\n });\n \n\n isNotRegistered('account-welcome-tile') && (binding.modules['account-welcome-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-welcome-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-welcome-tile/account-welcome-tile'),\n $type: 'contentModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'account-welcome-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-welcome-tile'\n });\n \n\n isNotRegistered('account-wishlist-tile') && (binding.modules['account-wishlist-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-account-wishlist-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/account-wishlist-tile/account-wishlist-tile'),\n $type: 'contentModule',\n da: [{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: 'account-wishlist-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/account-wishlist-tile'\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','search','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('b2b-requests-status') && (binding.modules['b2b-requests-status'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-b2b-requests-status' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/b2b-requests-status/b2b-requests-status'),\n $type: 'contentModule',\n da: [{name:'b2bUserInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'operationRequests', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-business-partner-operation-requests', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'b2b-requests-status',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/b2b-requests-status'\n });\n \n\n isNotRegistered('b2b-requests-tile') && (binding.modules['b2b-requests-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-b2b-requests-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/b2b-requests-tile/b2b-requests-tile'),\n $type: 'contentModule',\n da: [{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'b2b-requests-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/b2b-requests-tile'\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('bulk-purchase') && (binding.modules['bulk-purchase'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-bulk-purchase-bulk-purchase' */\n '@msdyn365-commerce-modules/bulk-purchase/dist/lib/modules/bulk-purchase/bulk-purchase'),\n $type: 'contentModule',\n da: [{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 1},{name:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview', runOn: 1},{name:'productDimensions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-dimensions-with-availabilities', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'bulk-purchase',\n p: 'bulk-purchase',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/bulk-purchase/dist/lib/modules/bulk-purchase'\n });\n \n\n isNotRegistered('business-account-address') && (binding.modules['business-account-address'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-address-business-account-address' */\n '@msdyn365-commerce-modules/address/dist/lib/modules/business-account-address/business-account-address'),\n $type: 'contentModule',\n da: [{name:'address', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-address', runOn: 0},{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'business-account-address',\n p: 'address',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/address/dist/lib/modules/business-account-address'\n });\n \n\n isNotRegistered('business-organization-list') && (binding.modules['business-organization-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-business-organization-list-business-organization-list' */\n '@msdyn365-commerce-modules/business-organization-list/dist/lib/modules/business-organization-list/business-organization-list'),\n $type: 'contentModule',\n da: [{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'users', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'business-organization-list',\n p: 'business-organization-list',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/business-organization-list/dist/lib/modules/business-organization-list'\n });\n \n\n isNotRegistered('business-sign-up') && (binding.modules['business-sign-up'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-business-account-management-business-sign-up' */\n '@msdyn365-commerce-modules/business-account-management/dist/lib/modules/business-sign-up/business-sign-up'),\n $type: 'containerModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'business-sign-up',\n p: 'business-account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/business-account-management/dist/lib/modules/business-sign-up'\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:'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('cart') && (binding.modules['cart'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-cart-cart' */\n '@msdyn365-commerce-modules/cart/dist/lib/modules/cart/cart'),\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-cartlines', 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:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 0},{name:'productAvailabilites', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines', runOn: 0},{name:'products', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart', 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:'wishlistItems', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'cart',\n p: 'cart',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/cart/dist/lib/modules/cart'\n });\n \n\n isNotRegistered('cart-icon') && (binding.modules['cart-icon'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-cart-cart-icon' */\n '@msdyn365-commerce-modules/cart/dist/lib/modules/cart-icon/cart-icon'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action', runOn: 1},{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:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'cart-icon',\n p: 'cart',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/cart/dist/lib/modules/cart-icon'\n });\n \n\n isNotRegistered('catalog-picker') && (binding.modules['catalog-picker'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-catalog-picker-catalog-picker' */\n '@msdyn365-commerce-modules/catalog-picker/dist/lib/modules/catalog-picker/catalog-picker'),\n $type: 'contentModule',\n da: [{name:'catalogs', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'catalog-picker',\n p: 'catalog-picker',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/catalog-picker/dist/lib/modules/catalog-picker'\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('check-in-for-pickup') && (binding.modules['check-in-for-pickup'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-check-in-for-pickup-check-in-for-pickup' */\n '@msdyn365-commerce-modules/check-in-for-pickup/dist/lib/modules/check-in-for-pickup/check-in-for-pickup'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'check-in-for-pickup',\n p: 'check-in-for-pickup',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/check-in-for-pickup/dist/lib/modules/check-in-for-pickup'\n });\n \n\n isNotRegistered('checkout') && (binding.modules['checkout'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/checkout'),\n $type: 'containerModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{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-cartlines', runOn: 1},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 1},{name:'products', path:'@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout'\n });\n \n\n isNotRegistered('checkout-billing-address') && (binding.modules['checkout-billing-address'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-address-checkout-billing-address' */\n '@msdyn365-commerce-modules/address/dist/lib/modules/checkout-billing-address/checkout-billing-address'),\n $type: 'contentModule',\n da: [{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-billing-address',\n p: 'address',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/address/dist/lib/modules/checkout-billing-address'\n });\n \n\n isNotRegistered('checkout-customer-account-payment') && (binding.modules['checkout-customer-account-payment'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-customer-account-payment' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-customer-account-payment/checkout-customer-account-payment'),\n $type: 'contentModule',\n da: [{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'creditBalances', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-customer-account-payment',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-customer-account-payment'\n });\n \n\n isNotRegistered('checkout-delivery-options') && (binding.modules['checkout-delivery-options'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-delivery-options' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-delivery-options/checkout-delivery-options'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{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: 'checkout-delivery-options',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-delivery-options'\n });\n \n\n isNotRegistered('checkout-express') && (binding.modules['checkout-express'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-express' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-express/checkout-express'),\n $type: 'contentModule',\n da: [{name:'cardPaymentAcceptPoint', path:'@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-express/actions/get-card-payment-accept-point', runOn: 1},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{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-express',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-express'\n });\n \n\n isNotRegistered('checkout-gift-card') && (binding.modules['checkout-gift-card'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-gift-card' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-gift-card/checkout-gift-card'),\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-gift-card',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-gift-card'\n });\n \n\n isNotRegistered('checkout-guest-profile') && (binding.modules['checkout-guest-profile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-guest-profile' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-guest-profile/checkout-guest-profile'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 1},{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-guest-profile',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-guest-profile'\n });\n \n\n isNotRegistered('checkout-loyalty') && (binding.modules['checkout-loyalty'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-loyalty' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-loyalty/checkout-loyalty'),\n $type: 'contentModule',\n da: [{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 1},{name:'loyaltyTransactionEstimation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-transaction-estimation', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-loyalty',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-loyalty'\n });\n \n\n isNotRegistered('checkout-order-confirmation') && (binding.modules['checkout-order-confirmation'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-management-checkout-order-confirmation' */\n '@msdyn365-commerce-modules/order-management/dist/lib/modules/checkout-order-confirmation/checkout-order-confirmation'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 1},{name:'tenderTypes', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-order-confirmation',\n p: 'order-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-management/dist/lib/modules/checkout-order-confirmation'\n });\n \n\n isNotRegistered('checkout-payment-instrument') && (binding.modules['checkout-payment-instrument'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-payment-instrument' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-payment-instrument/checkout-payment-instrument'),\n $type: 'contentModule',\n da: [{name:'cardPaymentAcceptPoint', path:'@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-payment-instrument/actions/get-card-payment-accept-point', runOn: 1},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{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: 'checkout-payment-instrument',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-payment-instrument'\n });\n \n\n isNotRegistered('checkout-pickup') && (binding.modules['checkout-pickup'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-pickup' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-pickup/checkout-pickup'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'deliveryOptions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-pickup',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-pickup'\n });\n \n\n isNotRegistered('checkout-section-container') && (binding.modules['checkout-section-container'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-section-container' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-section-container/checkout-section-container'),\n $type: 'containerModule',\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-section-container',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-section-container'\n });\n \n\n isNotRegistered('checkout-shipping-address') && (binding.modules['checkout-shipping-address'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-address-checkout-shipping-address' */\n '@msdyn365-commerce-modules/address/dist/lib/modules/checkout-shipping-address/checkout-shipping-address'),\n $type: 'contentModule',\n da: [{name:'address', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-address', runOn: 0},{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-shipping-address',\n p: 'address',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/address/dist/lib/modules/checkout-shipping-address'\n });\n \n\n isNotRegistered('checkout-terms-and-conditions') && (binding.modules['checkout-terms-and-conditions'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-checkout-terms-and-conditions' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-terms-and-conditions/checkout-terms-and-conditions'),\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-terms-and-conditions',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-terms-and-conditions'\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-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('gift-card-balance-check') && (binding.modules['gift-card-balance-check'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-checkout-gift-card-balance-check' */\n '@msdyn365-commerce-modules/checkout/dist/lib/modules/gift-card-balance-check/gift-card-balance-check'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'gift-card-balance-check',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/gift-card-balance-check'\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:'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('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('invoice-details') && (binding.modules['invoice-details'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-invoice-details-invoice-details' */\n '@msdyn365-commerce-modules/invoice-details/dist/lib/modules/invoice-details/invoice-details'),\n $type: 'contentModule',\n da: [{name:'invoice', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice', runOn: 0},{name:'invoiceDetails', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice-details', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'invoice-details',\n p: 'invoice-details',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/invoice-details/dist/lib/modules/invoice-details'\n });\n \n\n isNotRegistered('invoices-list') && (binding.modules['invoices-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-invoice-invoices-list' */\n '@msdyn365-commerce-modules/invoice/dist/lib/modules/invoices-list/invoices-list'),\n $type: 'contentModule',\n da: [{name:'b2bUserInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user', runOn: 0},{name:'customer', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'customerBalance', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance', runOn: 0},{name:'invoices', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'invoices-list',\n p: 'invoice',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/invoice/dist/lib/modules/invoices-list'\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('loyalty-sign-up') && (binding.modules['loyalty-sign-up'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-loyalty-sign-up' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/loyalty-sign-up/loyalty-sign-up'),\n $type: 'contentModule',\n da: [{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'loyalty-sign-up',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/loyalty-sign-up'\n });\n \n\n isNotRegistered('loyalty-terms') && (binding.modules['loyalty-terms'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-loyalty-terms' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/loyalty-terms/loyalty-terms'),\n $type: 'containerModule',\n da: [{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'loyalty-terms',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/loyalty-terms'\n });\n \n\n isNotRegistered('map') && (binding.modules['map'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-map-map' */\n '@msdyn365-commerce-modules/map/dist/lib/modules/map/map'),\n $type: 'contentModule',\n da: [{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'map',\n p: 'map',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/map/dist/lib/modules/map'\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('order-confirmation') && (binding.modules['order-confirmation'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-management-order-confirmation' */\n '@msdyn365-commerce-modules/order-management/dist/lib/modules/order-confirmation/order-confirmation'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 1},{name:'orderHydration', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-confirmation-with-hydrations', runOn: 0},{name:'tenderTypes', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-confirmation',\n p: 'order-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-management/dist/lib/modules/order-confirmation'\n });\n \n\n isNotRegistered('order-details') && (binding.modules['order-details'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-management-order-details' */\n '@msdyn365-commerce-modules/order-management/dist/lib/modules/order-details/order-details'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'channels', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'loyaltyCard', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card', runOn: 1},{name:'orderHydration', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-with-hydrations', runOn: 0},{name:'orgUnitLocations', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations', runOn: 0},{name:'tenderTypes', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-details',\n p: 'order-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-management/dist/lib/modules/order-details'\n });\n \n\n isNotRegistered('order-history') && (binding.modules['order-history'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-management-order-history' */\n '@msdyn365-commerce-modules/order-management/dist/lib/modules/order-history/order-history'),\n $type: 'contentModule',\n da: [{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'channels', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels', runOn: 0},{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:'orgUnitLocations', path:'@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-history',\n p: 'order-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-management/dist/lib/modules/order-history'\n });\n \n\n isNotRegistered('order-lookup') && (binding.modules['order-lookup'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-management-order-lookup' */\n '@msdyn365-commerce-modules/order-management/dist/lib/modules/order-lookup/order-lookup'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-lookup',\n p: 'order-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-management/dist/lib/modules/order-lookup'\n });\n \n\n isNotRegistered('order-template') && (binding.modules['order-template'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-template-order-template' */\n '@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template/order-template'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'orderTemplate', path:'@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template/actions/get-order-template', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-template',\n p: 'order-template',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template'\n });\n \n\n isNotRegistered('order-template-list') && (binding.modules['order-template-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-order-template-order-template-list' */\n '@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template-list/order-template-list'),\n $type: 'contentModule',\n da: [{name:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'order-template-list',\n p: 'order-template',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template-list'\n });\n \n\n isNotRegistered('organization-users-tile') && (binding.modules['organization-users-tile'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-organization-users-tile' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/organization-users-tile/organization-users-tile'),\n $type: 'contentModule',\n da: [{name:'users', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users-count', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'organization-users-tile',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/organization-users-tile'\n });\n \n\n isNotRegistered('password-reset') && (binding.modules['password-reset'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-password-reset' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/password-reset/password-reset'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'password-reset',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/password-reset'\n });\n \n\n isNotRegistered('password-reset-verification') && (binding.modules['password-reset-verification'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-password-reset-verification' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/password-reset-verification/password-reset-verification'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'password-reset-verification',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/password-reset-verification'\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:'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('quick-order') && (binding.modules['quick-order'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-quick-order-quick-order' */\n '@msdyn365-commerce-modules/quick-order/dist/lib/modules/quick-order/quick-order'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 1},{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}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'quick-order',\n p: 'quick-order',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/quick-order/dist/lib/modules/quick-order'\n });\n \n\n isNotRegistered('quick-order-grid') && (binding.modules['quick-order-grid'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-quick-order-grid-quick-order-grid' */\n '@msdyn365-commerce-modules/quick-order-grid/dist/lib/modules/quick-order-grid/quick-order-grid'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 1},{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:'quickOrderTemplate', path:'@msdyn365-commerce-modules/quick-order-grid/dist/lib/modules/quick-order-grid/actions/get-product-list', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'quick-order-grid',\n p: 'quick-order-grid',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/quick-order-grid/dist/lib/modules/quick-order-grid'\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('ratings-histogram') && (binding.modules['ratings-histogram'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-ratings-reviews-ratings-histogram' */\n '@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/ratings-histogram/ratings-histogram'),\n $type: 'contentModule',\n da: [{name:'ratingsReviewsState', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action', runOn: 1},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'ratings-histogram',\n p: 'ratings-reviews',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/ratings-histogram'\n });\n \n\n isNotRegistered('reviews-list') && (binding.modules['reviews-list'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-ratings-reviews-reviews-list' */\n '@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/reviews-list/reviews-list'),\n $type: 'contentModule',\n da: [{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'ratingsReviewsState', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action', runOn: 1},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 0},{name:'reviewsList', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-product-reviews', runOn: 0},{name:'userReview', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'reviews-list',\n p: 'ratings-reviews',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/reviews-list'\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('sign-in') && (binding.modules['sign-in'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-sign-in' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/sign-in/sign-in'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'sign-in',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/sign-in'\n });\n \n\n isNotRegistered('sign-up') && (binding.modules['sign-up'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-account-management-sign-up' */\n '@msdyn365-commerce-modules/account-management/dist/lib/modules/sign-up/sign-up'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'sign-up',\n p: 'account-management',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/account-management/dist/lib/modules/sign-up'\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('store-selector') && (binding.modules['store-selector'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-store-selector-store-selector' */\n '@msdyn365-commerce-modules/store-selector/dist/lib/modules/store-selector/store-selector'),\n $type: 'containerModule',\n da: [{name:'availabilitiesWithHours', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-full-available-inventory-nearby', runOn: 1},{name:'storeLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-store-location-information', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'store-selector',\n p: 'store-selector',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/store-selector/dist/lib/modules/store-selector'\n });\n \n\n isNotRegistered('subscribe') && (binding.modules['subscribe'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-subscribe-subscribe' */\n '@msdyn365-commerce-modules/subscribe/dist/lib/modules/subscribe/subscribe'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'subscribe',\n p: 'subscribe',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/subscribe/dist/lib/modules/subscribe'\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 isNotRegistered('wishlist-items') && (binding.modules['wishlist-items'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-wishlist-wishlist-items' */\n '@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/wishlist-items'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{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:'productAvailability', path:'@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-product-availabilities-wishlist-items', runOn: 1},{name:'products', path:'@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-items-in-wishlists', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'wishlist-items',\n p: 'wishlist',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items'\n });\n \n\n isNotRegistered('write-review') && (binding.modules['write-review'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '@msdyn365-commerce-modules-ratings-reviews-write-review' */\n '@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/write-review/write-review'),\n $type: 'contentModule',\n da: [{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'userReview', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'write-review',\n p: 'ratings-reviews',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/write-review'\n });\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('account-address-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-address';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-address');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-address-tile')){\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('account-customer-balance')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-customer-balance')){\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('account-customer-balance')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-customer-balance-tile')){\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('account-customer-balance-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-invoice-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-invoice-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-loyalty')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-loyalty-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-management-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-management-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-management-address')){\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('account-management-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-address';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-address');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-order-templates-tile')){\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('account-order-templates-tile')){\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('account-order-templates-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-profile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-attribute-definitions';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-attribute-definitions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('account-profile')){\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('account-welcome-tile')){\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('account-wishlist-tile')){\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('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('b2b-requests-status')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-business-partner-operation-requests';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-business-partner-operation-requests');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('b2b-requests-status')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('b2b-requests-status')){\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('b2b-requests-tile')){\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('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('bulk-purchase')){\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('bulk-purchase')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-dimensions-with-availabilities';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-dimensions-with-availabilities');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('bulk-purchase')){\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('business-account-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('business-account-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('business-account-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('business-account-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-address';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-address');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('business-organization-list')){\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('business-organization-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users');\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-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('cart')){\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('cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart')){\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('cart')){\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('cart')){\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('cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart')){\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('cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart')){\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('cart')){\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('cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart')){\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('cart-icon')){\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('cart-icon')){\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('cart-icon')){\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('cart-icon')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('cart-icon')){\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('catalog-picker')){\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('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')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart';\n let dataAction = require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout')){\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('checkout')){\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('checkout')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout')){\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('checkout')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout')){\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('checkout-billing-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-billing-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-billing-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-billing-address')){\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('checkout-billing-address')){\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('checkout-billing-address')){\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('checkout-billing-address')){\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('checkout-customer-account-payment')){\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('checkout-customer-account-payment')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-customer-account-payment')){\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('checkout-delivery-options')){\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('checkout-delivery-options')){\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('checkout-delivery-options')){\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('checkout-express')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-express/actions/get-card-payment-accept-point';\n let dataAction = require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-express/actions/get-card-payment-accept-point');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-express')){\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('checkout-express')){\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('checkout-gift-card')){\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('checkout-guest-profile')){\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('checkout-guest-profile')){\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('checkout-loyalty')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-loyalty')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-transaction-estimation';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-transaction-estimation');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-loyalty')){\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('checkout-order-confirmation')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-order-confirmation')){\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('checkout-order-confirmation')){\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('checkout-order-confirmation')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-order-confirmation')){\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('checkout-payment-instrument')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-payment-instrument/actions/get-card-payment-accept-point';\n let dataAction = require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-payment-instrument/actions/get-card-payment-accept-point');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-payment-instrument')){\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('checkout-payment-instrument')){\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('checkout-payment-instrument')){\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('checkout-pickup')){\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('checkout-pickup')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-pickup')){\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('checkout-pickup')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-pickup')){\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('checkout-section-container')){\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('checkout-shipping-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-shipping-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-shipping-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-shipping-address')){\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('checkout-shipping-address')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-address';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-address');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('checkout-shipping-address')){\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('checkout-shipping-address')){\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('checkout-shipping-address')){\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('checkout-shipping-address')){\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('checkout-terms-and-conditions')){\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-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('invoice-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('invoice-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice-details';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoice-details');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('invoices-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-current-business-partner-user');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('invoices-list')){\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('invoices-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer-balance');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('invoices-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/invoices/get-invoices');\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('loyalty-sign-up')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('loyalty-terms')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('map')){\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('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('order-confirmation')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-confirmation-with-hydrations';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-confirmation-with-hydrations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-confirmation')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-confirmation')){\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('order-confirmation')){\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('order-confirmation')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-with-hydrations';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-sales-order-with-hydrations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-tender-types');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-details')){\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('order-details')){\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('order-details')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-loyalty-card');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-history')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-channels');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-history')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/order-management/dist/lib/actions/get-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-history')){\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('order-history')){\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('order-history')){\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('order-template')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template/actions/get-order-template';\n let dataAction = require('@msdyn365-commerce-modules/order-template/dist/lib/modules/order-template/actions/get-order-template');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('order-template')){\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('order-template-list')){\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('organization-users-tile')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users-count';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-organization-users-count');\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-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('quick-order')){\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('quick-order')){\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('quick-order')){\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('quick-order-grid')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/quick-order-grid/dist/lib/modules/quick-order-grid/actions/get-product-list';\n let dataAction = require('@msdyn365-commerce-modules/quick-order-grid/dist/lib/modules/quick-order-grid/actions/get-product-list');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('quick-order-grid')){\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('quick-order-grid')){\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('quick-order-grid')){\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('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('ratings-histogram')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('ratings-histogram')){\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('reviews-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-product-reviews';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-product-reviews');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('reviews-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('reviews-list')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('reviews-list')){\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('reviews-list')){\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')){\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('store-selector')){\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('store-selector')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-full-available-inventory-nearby';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-full-available-inventory-nearby');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('store-selector')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-store-location-information';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-store-location-information');\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 if (isNotRegistered('wishlist-items')){\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('wishlist-items')){\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('wishlist-items')){\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('wishlist-items')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-items-in-wishlists';\n let dataAction = require('@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-items-in-wishlists');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('wishlist-items')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-product-availabilities-wishlist-items';\n let dataAction = require('@msdyn365-commerce-modules/wishlist/dist/lib/modules/wishlist-items/actions/get-product-availabilities-wishlist-items');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('wishlist-items')){\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('write-review')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/get-user-review');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('write-review')){\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 \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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport {\n ChannelDeliveryOption,\n DeliveryModeTypeFilter,\n FeatureState,\n ItemAvailability,\n OrgUnitAvailability,\n OrgUnitLocation,\n ProductWarehouseInventoryInformation,\n SearchArea,\n StoreHours } from '@msdyn365-commerce/retail-proxy';\nimport {\n getChannelDeliveryOptionsAsync,\n getOrgUnitLocationsByAreaAsync,\n getStoreHoursAsync } 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(_productId?: number, _latitude?: number, _longitude?: number, _radius?: number, _DistanceUnitValue?: number, _IgnoreLocation?: boolean) {\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 = (inputData: ICreateActionContext>): 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(item => item.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature')?.IsEnabled;\n const searchCriteria = createInventoryAvailabilitySearchCriteria(ctx, [input.productId], false, true, searchArea, DeliveryMode.pickup);\n return getEstimatedAvailabilityAsync(\n { callerContext: ctx }, searchCriteria)\n .then(async (productWarehouseInformation: ProductWarehouseInventoryInformation) => {\n // For store selector, inventory should always come from an individual store\n const productInventoryInformation = mapProductInventoryInformation(ctx, productWarehouseInformation.ProductWarehouseInventoryAvailabilities);\n return getOrgUnitLocationsByAreaAsync({\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n }, searchArea, DeliveryModeTypeFilter.Pickup)\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(_channeldeliveryoption => _channeldeliveryoption.ChannelId === store.ChannelId);\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('[GetFullAvailableInventoryNearby][getEstimatedAvailabilityAsync] error getting availability product warehouse information.');\n ctx.trace(error.message);\n ctx.telemetry.error(error.message);\n ctx.telemetry.debug('[GetFullAvailableInventoryNearby][getEstimatedAvailabilityAsync] error getting availability product warehouse information.');\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, channelDeleiveryOptions: ChannelDeliveryOption | undefined): 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 &&\n storeMap) {\n productInventoryInformation.forEach(element => {\n if (element.InventLocationId && storeMap.has(element.InventLocationId) &&\n element.InventLocationId === orgUnitLocation.InventoryLocationId) {\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 return {\n OrgUnitAvailability: availability,\n ProductInventoryInformation: productInventoryInformation,\n OrgUnitPickUpDeliveryModes: channelDeleiveryOptions };\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): Promise {\n if (channelCollection?.length === 0 || channelCollection === undefined) {\n return undefined;\n }\n\n const channelIdList: number[] = [];\n channelCollection?.map(id => {\n if (id !== undefined) {\n return channelIdList.push(id);\n }\n });\n\n // To get all channel pickup delivery mode filterOption should be 4\n return getChannelDeliveryOptionsAsync({\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n }, channelIdList, 4)\n .then((channelDeliveryOptions: ChannelDeliveryOption[]) => {\n\n if (channelDeliveryOptions && !(channelDeliveryOptions instanceof Error)) {\n return channelDeliveryOptions;\n }\n\n return undefined;\n })\n .catch((error: Error) => {\n ctx.trace('[GetFullAvailableInventoryNearby][getChannelDeliveryOptionsAsync] error getting availability with channel delivery options');\n ctx.trace(error.message);\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('[GetFullAvailableInventoryNearby] [getChannelDeliveryOptionsAsync] error getting availability with channel delivery options');\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');\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 () { execCalled = true; return null; };\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","var 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","// 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICreateActionContext } 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 callerContext: ctx,\n queryResultSettings: {}\n }, null);\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(new FullProductInput(\n commerceListLine.ProductId,\n ctx.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(ctx),\n ctx.requestContext));\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 })\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\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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, IAction, IActionContext, IActionInput,\n ICommerceApiSettings, ICreateActionContext, isEmptyOrNullObject\n} from '@msdyn365-commerce/core';\nimport { getCheckoutState, ICheckoutState } from '@msdyn365-commerce/global-state';\nimport {\n getCardPaymentAcceptPointAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n CardPaymentAcceptPoint\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\nimport get from 'lodash/get';\n\nexport interface IGetCardPaymentAcceptPointInput {\n showBillingAddress?: boolean;\n paymenTenderType?: string;\n apiSettings: ICommerceApiSettings;\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\n amountDue?: number;\n}\n\n/**\n * GetCardPaymentAcceptPointInput - Input for create GetCardPaymentAcceptPoint.\n */\nexport class GetCardPaymentAcceptPointInput implements IActionInput {\n public showBillingAddress?: boolean;\n\n public paymenTenderType?: string;\n\n public shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\n\n public amountDue?: number;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(input: IGetCardPaymentAcceptPointInput) {\n this.showBillingAddress = input.showBillingAddress;\n this.paymenTenderType = input.paymenTenderType;\n this.apiSettings = input.apiSettings;\n this.shouldEnableSinglePaymentAuthorizationCheckout = input.shouldEnableSinglePaymentAuthorizationCheckout;\n this.amountDue = input.amountDue;\n }\n\n public getCacheKey = () => buildCacheKey(`CardPaymentAcceptPoint${this.paymenTenderType ? `-${this.paymenTenderType}` : ''}`, this.apiSettings);\n\n public getCacheObjectType = () => 'CardPaymentAcceptPoint';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createCheckoutPaymentInstrumentInput = (inputData: ICreateActionContext) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- keep existing name.\n const { showBillingAddress, paymenTenderType, shouldEnableSinglePaymentAuthorizationCheckout, amountDue } = inputData.config ?? {};\n const getCardPaymentAcceptPointInput = {\n showBillingAddres: showBillingAddress,\n paymenTenderType,\n apiSettings: inputData.requestContext.apiSettings,\n shouldEnableSinglePaymentAuthorizationCheckout,\n amountDue\n };\n\n return new GetCardPaymentAcceptPointInput(getCardPaymentAcceptPointInput);\n};\n\n/**\n * Calls the Retail API and returns a cart object based on the passed GetCartInput.\n * @param input\n * @param ctx\n */\nexport async function getCardPaymentAcceptPointAction(\n input: GetCardPaymentAcceptPointInput,\n ctx: IActionContext\n): Promise {\n // If no cart ID is provided in input, we need to create a cart object\n if (!input) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing'));\n throw new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing');\n }\n\n const { showBillingAddress, paymenTenderType, amountDue = 0 } = input;\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n if (\n isEmptyOrNullObject(checkoutState) ||\n isEmptyOrNullObject(checkoutState.checkoutCart) ||\n isEmptyOrNullObject(checkoutState.checkoutCart.cart)\n ) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Unable to get cart'));\n throw new Error('[getCardPaymentAcceptPointAction] Unable to get cart');\n }\n\n if (!checkoutState.checkoutCart.cart.CartLines || checkoutState.checkoutCart.cart.CartLines.length === 0) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Cart is empty'));\n throw new Error('[getCardPaymentAcceptPointAction] Cart is empty');\n }\n\n const requestUrl =\n typeof ctx.requestContext.url.requestUrl === 'string' ? new URL(ctx.requestContext.url.requestUrl) : ctx.requestContext.url.requestUrl;\n const origin = get(window, 'location.origin') || requestUrl.origin;\n\n const cardPaymentAcceptSettings = {\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CardPaymentAcceptSettings',\n HostPageOrigin: origin,\n AdaptorPath: `${origin}/Connectors/` || origin,\n CardPaymentEnabled: false,\n CardTokenizationEnabled: true,\n ...(!showBillingAddress && { HideBillingAddress: true }),\n ...(paymenTenderType && { TenderTypeId: paymenTenderType }),\n PaymentAmount: amountDue !== 0 ? amountDue : (checkoutState.checkoutCart.cart.AmountDue ?? 0)\n };\n\n return getCardPaymentAcceptPointAsync(\n { callerContext: ctx, bypassCache: 'get' },\n checkoutState.checkoutCart.cart.Id,\n cardPaymentAcceptSettings,\n []\n )\n .then(cardPaymentAcceptPoint => {\n if (!cardPaymentAcceptPoint.AcceptPageUrl && !cardPaymentAcceptPoint.AcceptPageContent) {\n throw new Error(\n '[getCardPaymentAcceptPointAction] Payment Accept Page has neither return AcceptPageUrl nor AcceptPageContent in updatePaymentAcceptPageData'\n );\n }\n return cardPaymentAcceptPoint;\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n ctx.telemetry.debug('Unable to get Card Payment Accept Point');\n throw error;\n });\n}\n\nexport const getCardPaymentAcceptPointActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/checkout-payment-instrument/get-card-payment-accept-point',\n action: >getCardPaymentAcceptPointAction,\n input: createCheckoutPaymentInstrumentInput\n});\n\nexport default getCardPaymentAcceptPointActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext,\n IActionInput, IAny, ICreateActionContext, IGeneric\n} from '@msdyn365-commerce/core';\nimport { getCartFromCustomer } from '@msdyn365-commerce/global-state';\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\nimport { getActivePricesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\nimport {\n AffiliationLoyaltyTier,\n ProductPrice,\n ProductType,\n ProjectionDomain,\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 { 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(\n +productId,\n +inputData.requestContext.apiSettings.channelId,\n undefined);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n\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 let affliations: AffiliationLoyaltyTier[] | undefined = [];\n if (ctx.requestContext.user.isAuthenticated) {\n const cart = await getCartFromCustomer(ctx);\n affliations = cart?.AffiliationLines;\n }\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(input.productId, input.channelId,\n undefined, undefined, ctx.requestContext);\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 affliations,\n true,\n featureStates.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature')?.IsEnabled &&\n // eslint-disable-next-line inclusive-language/use-inclusive-words -- Existing property name.\n (activeProduct.ProductTypeValue === ProductType.Master || activeProduct.ProductTypeValue === ProductType.KitMaster)\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 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 call = require('../internals/function-call');\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 call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var 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-x/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","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IRefineFullProductSearchOutput } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction, IActionContext,\n IActionInput, IAny, ICreateActionContext, 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(\n input,\n ctx,\n () => {\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. All rights reserved.\n * See License.txt 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\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 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}\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport msdyn365Commerce, { IParameterizeFeatureFlags } from '@msdyn365-commerce/core';\n\nexport function parameterize(name: string = '', sep = '-', parameterizeFeatureFlags: IParameterizeFeatureFlags = {}, neutralizedName?: string) {\n // If neutralizedName flag enabled, we use neutralizedName to construct string\n const candidateName = (msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.enableUrlLocalization || parameterizeFeatureFlags.enableUrlLocalization) ? name : 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 (parameterizeFeatureFlags.enableUrlEncoding || msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.enableUrlEncoding) {\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(candidateName.toLowerCase().replace(/[\\s!&'()*]+/g, '-').trim().replace(/-+/g, '-').replace(/^-+|-+$/g, ''));\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. All rights reserved.\n * See License.txt 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(category: CategoryHierarchy, categoryMap: ICategoryMap, parameterizeFeatureFlags?: IParameterizeFeatureFlags): 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 = category.Slug || `${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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\n\n/**\n * Syncronously creates an invoice detail page url.\n * @param invoiceId Invoice Id.\n * @param ctx\n */\nexport function getInvoiceDetailsPageUrlSync(invoiceId: string, ctx: IActionContext): string {\n let url = getUrlSync('invoice-details', ctx) || '';\n url = url.includes('?') ? url.substr(0, url.indexOf('?')) : url;\n return `${url}?invoiceId=${invoiceId}`;\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput, ICommerceApiSettings, ICreateActionContext } 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(input: GetLoyaltyTransactionEstimationInput, ctx: IActionContext): Promise {\n\n if (!ctx.requestContext.user.isAuthenticated) {\n return {};\n }\n\n const promises: [Promise, Promise, Promise] = [_getCart(ctx), _getLoyalty(input, ctx), _getOrgUnits(ctx)];\n return Promise.all(promises)\n .then((result) => {\n if (result && result.length >= 2 && result[1].CardNumber) {\n return getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(\n { callerContext: ctx }, result[0].Id, result[1].CardNumber, result[2].Currency || '')\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} 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","var 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 * 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","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { RatingsSummary } from '@msdyn365-commerce/commerce-entities';\nimport { createObservableDataAction, IAction, IActionContext, IActionInput, IAny, ICreateActionContext, IGeneric, sendRequest } 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 */\nasync 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?` +\n `tenantId=${input.tenantId}`;\n return sendRequest(requestUrl, 'get').then((response) => {\n return response.data;\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('experlogix-web-configurator') && (binding.modules['experlogix-web-configurator'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-experlogix-web-configurator' */\n 'partner/modules/experlogix-web-configurator/experlogix-web-configurator.tsx'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'experlogix', path:'actions/get-experlogix-state.action', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'experlogix-web-configurator',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/experlogix-web-configurator'\n });\n \n\n isNotRegistered('poc-cart') && (binding.modules['poc-cart'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-poc-cart' */\n 'partner/modules/poc-cart/poc-cart.tsx'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', 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-cartlines', 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:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 0},{name:'productAvailabilites', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines', runOn: 0},{name:'products', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 0},{name:'wishlistItems', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'poc-cart',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/poc-cart'\n });\n \n\n isNotRegistered('poc-search-result-container') && (binding.modules['poc-search-result-container'] = {\n c: async () => import(/* webpackInclude: /.(t|j)sx?$/ */ \n \n /* webpackExclude: /.data.|.autogenerated.|.test.|.field.|.data-model./ */\n /* webpackChunkName: '__local__-__local__-poc-search-result-container' */\n 'partner/modules/poc-search-result-container/poc-search-result-container.tsx'),\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:'modules/poc-search-result-container/list-page-state', runOn: 0},{name:'products', path:'modules/poc-search-result-container/actions/get-full-products-by-collection', runOn: 0},{name:'refiners', path:'modules/poc-search-result-container/actions/get-refiners-for-collection', runOn: 0},{name:'searchConfiguration', path:'modules/poc-search-result-container/actions/get-mapped-search-configuration', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'poc-search-result-container',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/poc-search-result-container'\n });\n \n\n { \n const actionPath = 'actions/get-experlogix-state.action';\n binding.dataActions[actionPath] = require('partner/actions/get-experlogix-state.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'actions/get-product-experlogix-seriesmodel.action';\n binding.dataActions[actionPath] = require('partner/actions/get-product-experlogix-seriesmodel.action');\n registerActionId(actionPath);\n }\n\n if (isNotRegistered('experlogix-web-configurator')){\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('experlogix-web-configurator')){\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('experlogix-web-configurator')){\n const sanitizedActionPath = 'actions/get-experlogix-state.action';\n let dataAction = require('partner/actions/get-experlogix-state.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\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('poc-cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-availabilities-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\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('poc-cart')){\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('poc-cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\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('poc-cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-items-in-wishlist');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-products-in-active-cart');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\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('poc-cart')){\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('poc-cart')){\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-cart')){\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('poc-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('poc-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('poc-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('poc-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('poc-search-result-container')){\n const sanitizedActionPath = 'modules/poc-search-result-container/actions/get-full-products-by-collection';\n let dataAction = require('partner/modules/poc-search-result-container/actions/get-full-products-by-collection');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-search-result-container')){\n const sanitizedActionPath = 'modules/poc-search-result-container/actions/get-mapped-search-configuration';\n let dataAction = require('partner/modules/poc-search-result-container/actions/get-mapped-search-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-search-result-container')){\n const sanitizedActionPath = 'modules/poc-search-result-container/actions/get-refiners-for-collection';\n let dataAction = require('partner/modules/poc-search-result-container/actions/get-refiners-for-collection');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n if (isNotRegistered('poc-search-result-container')){\n const sanitizedActionPath = 'modules/poc-search-result-container/list-page-state';\n let dataAction = require('partner/modules/poc-search-result-container/list-page-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n } catch (e) {\n handleError('-', e);\n }\n \n return binding;\n};","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\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 || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { FullProduct, IRefineFullProductSearchOutput } from '@msdyn365-commerce/commerce-entities';\nimport {\n CacheType, createObservableDataAction, getCatalogId, IAction,\n IActionContext, IActionInput, IAny, ICreateActionContext, 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 ) {\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 = 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(product.RecordId, apiSettings, input.ProductDetailsCriteria || new ProductDetailsCriteria(), ctx.requestContext);\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}\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 *