{"version":3,"file":"static/js/2daf72bb3f1c86a6b4c6.bundle.js","mappings":"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,UACT,QAAS,UACT,QAAS,WACT,QAAS,QACT,QAAS,QACT,QAAS,SACT,QAAS,WACT,QAAS,mBACT,QAAS,WACT,QAAS,MACT,QAAS,QACT,QAAS,MACT,QAAS,WACT,QAAS,WACT,QAAS,iCACT,QAAS,iBACT,QAAS,kBACT,QAAS,QACT,QAAS,SACT,QAAS,sBACT,QAAS,wBACT,QAAS,SACT,QAAS,UACT,aAAc,SACd,QAAS,aACT,QAAS,YACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,MACT,QAAS,SACT,QAAS,aACT,QAAS,OACT,QAAS,cASAC,EAA2C,CACpD,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,QAAS,MACT,QAAS,KACT,QAAS,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","sources":["webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?f0c8","webpack://Msdyn365.Commerce.Online/./src/price/price.components.tsx?7295","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/utilities/key-codes.ts?1004","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/utilities/string-extensions.ts?3689","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/utilities/html-extensions.ts?9642","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/utilities/player-utility.ts?33e3","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/utilities/utilities.ts?65c9","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?e6e1","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/helper/localization-helper.ts?26d0","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/helper/closed-caption-helper.ts?8eff","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/helper/player-helper.ts?800e","webpack://Msdyn365.Commerce.Online/./src/rating/rating.component.tsx?1ba8","webpack://Msdyn365.Commerce.Online/./src/order-template/order-templates-list/order-template-products-preview.tsx?832a","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/player.tsx?8176","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/add-to-cart.component.tsx?c15a","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/items-added-to-cart.ts?4f10","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/items-added-to-cart-error-component.tsx?3e3e","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/items-added-to-cart-dialog-component.tsx?3a1e","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/notifications/item-successfully-added-to-cart-notification-component.tsx?1092","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/notifications/item-successfully-added-to-cart-notification.ts?b5b4","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/notifications/multi-items-successfully-added-to-cart-notification-component.tsx?ec23","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/notifications/multi-items-successfully-added-to-cart-notification.ts?4d32","webpack://Msdyn365.Commerce.Online/./src/add-to-cart/product-model.ts?91f1","webpack://Msdyn365.Commerce.Online/./src/order-template/add-order-template-to-cart/add-order-template-to-cart.component.tsx?b3bb","webpack://Msdyn365.Commerce.Online/./src/order-template/rename-order-template/rename-order-template.component.tsx?22f7","webpack://Msdyn365.Commerce.Online/./src/order-template/lines-added-to-cart-dialog/lines-added-to-cart-dialog.component.tsx?3b78","webpack://Msdyn365.Commerce.Online/./src/order-template/order-template-name-dialog/order-template-name-dialog.component.tsx?aa9c","webpack://Msdyn365.Commerce.Online/./src/order-template/order-templates-list/order-template-list.tsx?9a9e","webpack://Msdyn365.Commerce.Online/./src/order-template/add-to-order-template-dialog/add-to-order-template-dialog.component.tsx?94ad","webpack://Msdyn365.Commerce.Online/./src/order-template/lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component.tsx?8a37","webpack://Msdyn365.Commerce.Online/./src/order-template/add-products-to-order-template/add-products-to-order-template.component.tsx?bf4c","webpack://Msdyn365.Commerce.Online/./src/order-template/duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component.tsx?1ec3","webpack://Msdyn365.Commerce.Online/./src/order-template/item-added-to-order-template-dialog/item-added-to-order-template-dialog.component.tsx?017f","webpack://Msdyn365.Commerce.Online/./src/order-template/add-to-order-template/add-to-order-template.component.tsx?0066","webpack://Msdyn365.Commerce.Online/./src/order-template/item-added-to-cart-dialog/item-added-to-cart-dialog.component.tsx?9757","webpack://Msdyn365.Commerce.Online/./src/order-template/save-cart-to-order-template/save-cart-to-order-template.component.tsx?c47e","webpack://Msdyn365.Commerce.Online/./src/product-card-v2/components/product-component-swatch-v2.tsx?1bc1","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/ttml-settings.ts?ff45","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/ttml-context.ts?2af4","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/ttml-time-parser.ts?72f5","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/ttml-parser.ts?6362","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/video-closed-captions.tsx?4d40","webpack://Msdyn365.Commerce.Online/./src/social-media/social-media.components.tsx?9b27","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/action-toggle/action-toggle.tsx?246b","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/age-gate/age-gate.tsx?96c8","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/data/player-constants.ts?0a75","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/data/player-metadata.ts?24d6","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/closed-captions/video-closed-captions-settings.ts?2fc2","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/menu/menu.tsx?4ce6","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/menu-item/menu-item.tsx?471c","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/play-pause-trigger/play-pause-trigger.tsx?3fa4","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/video-controls/video-controls.tsx?32a5","webpack://Msdyn365.Commerce.Online/./src/carousel/CarouselContext.tsx?5738","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/components/node_modules/react-transition-group/esm/config.js?fb42","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/components/node_modules/react-transition-group/esm/TransitionGroupContext.js?52c4","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/components/node_modules/react-transition-group/esm/utils/reflow.js?ddda","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/components/node_modules/react-transition-group/esm/Transition.js?196e","webpack://Msdyn365.Commerce.Online/./src/carousel/CarouselItem.tsx?ecad","webpack://Msdyn365.Commerce.Online/./src/carousel/Carousel.tsx?9349","webpack://Msdyn365.Commerce.Online/./src/cart-icon/cart-icon.component.tsx?ef29","webpack://Msdyn365.Commerce.Online/./src/promocode/promocode.component.tsx?37c7","webpack://Msdyn365.Commerce.Online/./src/action-menu/action-menu.component.tsx?7298","webpack://Msdyn365.Commerce.Online/./src/add-to-wishlist/add-to-wishlist.component.tsx?0a03","webpack://Msdyn365.Commerce.Online/./src/cartline/components/cart-line-price-editor.tsx?6767","webpack://Msdyn365.Commerce.Online/./src/cartline/cartlineitem.component.tsx?be39","webpack://Msdyn365.Commerce.Online/./src/product-card/components/product-component-swatch.tsx?a399","webpack://Msdyn365.Commerce.Online/./src/product-card/product.component.tsx?32e2","webpack://Msdyn365.Commerce.Online/./src/product-dimension/dropdown/dropdown.tsx?9ac3","webpack://Msdyn365.Commerce.Online/./src/product-dimension/product-dimension.component.tsx?387b","webpack://Msdyn365.Commerce.Online/./src/product-dimension/swatch/swatch-item.tsx?72c2","webpack://Msdyn365.Commerce.Online/./src/product-dimension/swatch/swatch.tsx?6550","webpack://Msdyn365.Commerce.Online/./src/product-dimensions-matrix/components/product-dimensions-matrix-dimension-item.tsx?0f56","webpack://Msdyn365.Commerce.Online/./src/product-dimensions-matrix/components/product-dimensions-matrix-dimension-selection.tsx?2e77","webpack://Msdyn365.Commerce.Online/./src/product-dimensions-matrix/components/product-dimensions-matrix-enter-all-quantity-button.tsx?43c1","webpack://Msdyn365.Commerce.Online/./src/product-dimensions-matrix/product-dimensions-matrix.tsx?50f3","webpack://Msdyn365.Commerce.Online/./src/refiner/common.tsx?5431","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-apply.component.tsx?c65c","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-choice-summary.component.tsx?bb08","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-footer.component.tsx?922c","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-toggle.component.tsx?191b","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-sort.component.tsx?6742","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-header.component.tsx?f32a","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-item-check.component.tsx?49ea","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-item-daterange.component.tsx?a87f","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-modal.component.tsx?e1db","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner-options.component.tsx?7d6b","webpack://Msdyn365.Commerce.Online/./src/refiner/refiner.component.tsx?4a59","webpack://Msdyn365.Commerce.Online/./src/search-bar/search-bar.component.tsx?4f38","webpack://Msdyn365.Commerce.Online/./src/table/table.component.tsx?d5d2","webpack://Msdyn365.Commerce.Online/./src/wishlist-icon/wishlist-icon.component.tsx?a133","webpack://Msdyn365.Commerce.Online/./src/video-player-utilities/components/data/player-options.ts?0c9c","webpack://Msdyn365.Commerce.Online/./src/product-card-v2/product-v2.component.tsx?2a5e"],"sourcesContent":["'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ProductPrice, ProductType, SalesAgreementPriceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { Button, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst defaultPrice: number = 0;\nconst freePrice: number = 0;\n\n/**\n * Interface for price component resources.\n * @param {string} priceRangeSeparator - The price range separator.\n */\nexport interface IPriceComponentResources {\n priceRangeSeparator?: string;\n salesAgreementPricePrompt?: string;\n salesAgreementExpirationDatePrompt?: string;\n salesAgreementCommittedQuantityPrompt?: string;\n salesAgreementRemainingQuantityPrompt?: string;\n}\n\n/**\n * Interface for price component props.\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\n * @param {IPriceComponentResources} priceResources - The price range resources.\n */\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\n className?: string;\n product?: SimpleProduct;\n savingsText?: string;\n freePriceText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n isPriceMinMaxEnabled?: boolean;\n isSalesAgreementPriceFeatureEnabled?: boolean;\n salesAgreementLineId?: number;\n priceResources?: IPriceComponentResources;\n salesAgreementDetailCollapseProps?: ICollapseProps;\n currencyCode?: string;\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\n}\n\n/**\n * The interface of price component.\n */\nexport interface IPriceComponent extends IComponent {}\n\nconst priceComponentActions = {};\n\n/**\n * Get the original price from price component props.\n * @param props - The IPriceComponentProps.\n * @returns The original price.\n */\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\n return props.data.price.AdjustedPrice ?? props.data.price.TradeAgreementPrice ?? props.data.price.BasePrice ?? defaultPrice;\n};\n\nconst getActivePrice = (props: IPriceComponentProps): number => {\n if (showPriceRangeForMasterProduct(props) && props.data.price.MinVariantPrice !== undefined) {\n return props.data.price.MinVariantPrice;\n }\n\n if (props.data.price.CustomerContextualPrice !== undefined) {\n return props.data.price.CustomerContextualPrice;\n }\n\n return getOriginalPrice(props);\n};\n\n/**\n * Get the formatted currency.\n * @param props - The props.\n * @param price - The price.\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\n * @returns The formatted currency.\n */\nconst formatCurrency = (\n props: IPriceComponentProps,\n price: number | undefined,\n shouldUseFreePriceText: boolean | undefined,\n currencyCode?: string | undefined\n): string => {\n if (price === undefined) {\n return '';\n }\n\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\n return props.freePriceText;\n }\n\n return props.context.cultureFormatter.formatCurrency(price, currencyCode);\n};\n\nconst showPriceRangeForMasterProduct = (props: IPriceComponentProps): boolean => {\n return (\n (props.isPriceMinMaxEnabled ?? false) &&\n (props.product?.ProductTypeValue === ProductType.Master || props.product?.ProductTypeValue === ProductType.KitMaster) &&\n props.data.price.MinVariantPrice !== undefined &&\n props.data.price.MaxVariantPrice !== undefined\n );\n};\n\n/**\n * ShowStrikethroughPricing.\n * @param props - The props.\n * @returns True if showStrikethroughPricing, false otherwise.\n */\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\n const originalSalesPrice = getOriginalPrice(props);\n const activeSalesPrice = showPriceRangeForMasterProduct(props)\n ? props.data.price.MinVariantPrice\n : props.data.price.CustomerContextualPrice;\n\n if (activeSalesPrice && originalSalesPrice) {\n return activeSalesPrice < originalSalesPrice;\n }\n\n return false;\n};\n\n/**\n * Render current price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false, props.currencyCode);\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false, props.currencyCode);\n if (\n props.isPriceMinMaxEnabled &&\n props.data.price.MaxVariantPrice &&\n props.data.price.MinVariantPrice &&\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\n ) {\n return (\n \n \n {minVariantPrice}\n \n \n {props.priceResources?.priceRangeSeparator}\n \n \n {maxVariantPrice}\n \n \n );\n }\n\n return (\n \n {formatCurrency(props, getActivePrice(props), true, props.currencyCode)}\n \n );\n};\n\n/**\n * Render active sales price with original sales price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\n const initialPrice: string = formatCurrency(props, getOriginalPrice(props), true);\n\n return (\n <>\n \n {` `}\n {props.originalPriceText}\n {` `}\n {initialPrice}\n {` `}\n {props.currentPriceText}\n {` `}\n {renderCurrentPrice(props)}\n \n \n \n {props.savingsText && {props.savingsText}}\n \n );\n};\n\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\n // In most cases there should be only one sales agreement line.\n // If there are more than one, only the first one will be shown.\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\n return (\n

\n

\n {/* Available date */}\n {` · ${format(\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\n )}`}\n

\n

\n {/* Quantity commitment */}\n {` · ${format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}`}\n

\n

\n {/* Remaining quantity to qualify */}\n {` · ${format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}`}\n

\n

\n );\n};\n\n/**\n * Price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\n // CustomerContextualPrice could be zero\n if (props.data.price.CustomerContextualPrice === undefined) {\n return null;\n }\n\n // Determine if contract price is avaiable/applied by:\n // isFeatureEnabled and SA price != 0, for PDP.\n // SA line id != 0, for cart line.\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const toggle = () => {\n setIsExpanded(!isExpanded);\n };\n return (\n \n \n

\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\n

\n \n {props.priceResources?.salesAgreementPricePrompt}\n \n {isExpanded && renderSalesAgreementDetail(props)}\n
\n
\n );\n }\n\n return (\n \n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\n \n );\n};\n\n/**\n * The PriceComponent.\n */\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponent('Price', {\n component: Price,\n ...priceComponentActions\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * KeyCodes Enum.\n */\nexport enum KeyCodes {\n Back = 8,\n Tab = 9,\n Enter = 13,\n Shift = 16,\n Ctrl = 17,\n Alt = 18,\n Break = 19,\n CapsLock = 20,\n Escape = 27,\n Space = 32,\n PageUp = 33,\n PageDown = 34,\n End = 35,\n Home = 36,\n ArrowLeft = 37,\n ArrowUp = 38,\n ArrowRight = 39,\n ArrowDown = 40,\n Print = 44,\n Insert = 45,\n Delete = 46,\n Colon2 = 59, // Opera and Firefox\n Equals2 = 61, // Opera\n Equals3 = 107, // Firefox\n Minus2 = 109, // Opera and Firefox\n Period = 190,\n WindowsLeft = 91,\n WindowsRight = 92,\n WindowsOpera = 219, // Opera\n Menu = 93,\n NumPad0 = 96,\n NumPad1 = 97,\n NumPad2 = 98,\n NumPad3 = 99,\n NumPad4 = 100,\n NumPad5 = 101,\n NumPad6 = 102,\n NumPad7 = 103,\n NumPad8 = 104,\n NumPad9 = 105,\n NumPadMultiply = 106,\n NumPadPlus = 107,\n NumPadMinus = 109,\n NumPadDot = 110,\n NumPadDivide = 111,\n Function1 = 112,\n Function2 = 113,\n Function3 = 114,\n Function4 = 115,\n Function5 = 116,\n Function6 = 117,\n Function7 = 118,\n Function8 = 119,\n Function9 = 120,\n Function10 = 121,\n Function11 = 122,\n Function12 = 123,\n NavigationUp = 138,\n NavigationDown = 139,\n NavigationLeft = 140,\n NavigationRight = 141,\n NavigationAccept = 142,\n NumLock = 144,\n ScrollLock = 145,\n Colon = 186,\n Equals = 187,\n Comma = 188,\n Minus = 189,\n ForwardSlash = 191,\n Tilde = 192,\n GamepadA = 195,\n GamepadB = 196,\n GamepadX = 197,\n GamepadY = 198,\n GamepadRightButton = 199,\n GamepadLeftButton = 200,\n GamepadLeftTrigger = 201,\n GamepadRightTrigger = 202,\n GamepadDPadUp = 203,\n GamepadDPadDown = 204,\n GamepadDPadLeft = 205,\n GamepadDPadRight = 206,\n GamepadSelect = 207,\n GamepadStart = 208,\n GamepadLeftThumbstick = 209,\n GamepadRightThumbstick = 210,\n GamepadLeftThumbstickUp = 211,\n GamepadLeftThumbstickDown = 212,\n GamepadLeftThumbstickRight = 213,\n GamepadLeftThumbstickLeft = 214,\n GamepadRightThumbstickUp = 215,\n GamepadRightThumbstickDown = 216,\n GamepadRightThumbstickRight = 217,\n GamepadRightThumbstickLeft = 218,\n OpenBracket = 219,\n BackSlash = 220,\n CloseBracket = 221,\n Quote = 222\n}\n\n/**\n * Here for test coverage.\n */\nexport class KeycodesClass {\n public testCoverage(): string {\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\n/**\n * Format the passed string.\n * @param formatSpecifier - FormatSpecifier.\n * @param parameters -- Any number of parameters.\n * @returns The formated string.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(formatSpecifier: string, ...parameters: any[]): string {\n if (!formatSpecifier) {\n return '';\n }\n\n return formatSpecifier.replace(/{(\\d+)}/g, (match: string, index: number) => {\n if (index >= parameters.length) {\n return match;\n }\n\n const value = parameters[index];\n\n if (typeof value !== 'number' && !value) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n return value.toString();\n });\n}\n\n/**\n * Determines if the specified string is undefined, null, empty, or whitespace.\n * @param value - The string to examine.\n * @returns - True if the value is undefined, null, empty, or whitespace, otherwise false.\n */\nexport function isNullOrWhiteSpace(value: string): boolean {\n return !value || typeof value !== 'string' || !trim(value);\n}\n\n/**\n * Trims leading and trailing whitespace from the string.\n * @param value - The string to examine.\n * @returns - The trimmed string.\n */\nexport function trim(value: string): string {\n // Any flavor of !value (ie. null/undefined/'') should return itself.\n if (!value || typeof value !== 'string') {\n return value;\n }\n\n if (value.trim) {\n return value.trim();\n }\n\n return value.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determines if the specified string starts with the specified value.\n * @param value - The string to look in.\n * @param prefix - The prefix to look for.\n * @param ignoreCase - Ignore Case.\n * @returns - True if the string starts with the prefix, otherwise false.\n */\nexport function startsWith(value: string, prefix: string, ignoreCase: boolean = true): boolean {\n if (!value || !prefix) {\n return false;\n }\n\n if (ignoreCase) {\n value = value.toLocaleLowerCase();\n prefix = prefix.toLocaleLowerCase();\n }\n\n if (value.startsWith) {\n return value.startsWith(prefix);\n }\n\n return value.startsWith(prefix);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNullOrWhiteSpace, trim } from './string-extensions';\n\n/**\n * Get the text of the element.\n * @param element - HTML element.\n * @returns The content of the element.\n */\nexport function getText(element?: HTMLElement | Element): string {\n return element ? element.textContent || '' : '';\n}\n\n/**\n * Add a css class to an element.\n * @param element - The element to add the css class to.\n * @param cssClass - The css class to add.\n */\nexport function addClass(element: HTMLElement, cssClass: string): void {\n if (element && !isNullOrWhiteSpace(cssClass) && !hasClass(element, cssClass)) {\n if (element.classList) {\n element.classList.add(cssClass);\n } else {\n element.className = trim(`${element.className} ${cssClass}`);\n }\n }\n}\n\n/**\n * Checks for the presence of a css class on an element.\n * @param element - The element to check the css class of.\n * @param cssClass - The css class to check for.\n * @returns True if the element's className has the specified class, otherwise false.\n */\nexport function hasClass(element: HTMLElement, cssClass: string): boolean {\n if (!element || isNullOrWhiteSpace(cssClass)) {\n return false;\n } else if (element.classList) {\n return element.classList.contains(cssClass);\n }\n return `' ' ${element.className} ' '`.includes(`' ' ${trim(cssClass)} ' '`);\n}\n\n/**\n * Convert node list to array.\n * @param nodeList - Node List.\n * @returns Array of the node list.\n */\nexport function nodeListToArray(\n nodeList: NodeListOf | NodeListOf | HTMLCollection | NodeList | NamedNodeMap\n): T[] {\n if (!nodeList) {\n return [];\n }\n\n const elements: T[] = [];\n\n for (let n = 0; n < nodeList.length; n++) {\n elements.push(nodeList[n]);\n }\n\n return elements;\n}\n\n/**\n * Select elements in a context.\n * @param selector - Can be class, id or tag selector.\n * @param [context] - Any element to scope the selection. It's optional. If not provided document will be assumed.\n * @returns HTMLElement[].\n */\nexport function selectElements(selector: string, context?: HTMLElement): HTMLElement[] {\n return selectElementsT(selector, context);\n}\n\n/**\n * Select elements in a context.\n * @param selector - Can be class, id or tag selector.\n * @param [context] - Any element to scope the selection. It's optional. If not provided document will be assumed.\n * @returns T[].\n */\nexport function selectElementsT(selector: string, context?: HTMLElement): T[] {\n if (isNullOrWhiteSpace(selector) || selector === '#') {\n return [];\n }\n\n const currentContext: HTMLElement | Document = context || document;\n\n // Check if the first character is class or id.\n if (/^[#.]?[\\w-]+$/.test(selector)) {\n // eslint-disable-next-line default-case\n switch (selector[0]) {\n case '.':\n if (currentContext.getElementsByClassName) {\n return nodeListToArray(currentContext.getElementsByClassName(selector.slice(1)));\n }\n return nodeListToArray(currentContext.querySelectorAll(selector));\n\n case '#':\n const element = currentContext.querySelector(selector);\n return (element ? [element] : []);\n }\n\n return nodeListToArray(currentContext.getElementsByTagName(selector));\n }\n\n return nodeListToArray(currentContext.querySelectorAll(selector));\n}\n\n/**\n * Sets or gets CSS properties.\n * @param element - HTML Element.\n * @param property - The CSS property name.\n * @param [value] - The value to set on the CSS property.\n * @returns - The value of the CSS property.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function css(element: HTMLElement | Node, property: string, value?: any): any {\n if (!element) {\n return null;\n }\n\n if (value || value === '') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element).style[property] = value;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = (element).style[property];\n\n if (isNullOrWhiteSpace(value)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = getComputedStyle(element as any);\n value = value[property];\n }\n\n return value;\n }\n}\n\n/**\n * Remove all inner HTML from a parent element - used to delete child elements.\n * @param parentElement - The parent element from which all children should be removed.\n */\nexport function removeInnerHtml(parentElement: HTMLElement): void {\n if (parentElement) {\n parentElement.innerHTML = '';\n }\n}\n\n/**\n * Select first element from the selected elements using provided selector.\n * @param selector - Element selector.\n * @param [context] - An optional context to scope the selection.\n * @returns - The first element from the match.\n */\nexport function selectFirstElement(selector: string, context?: HTMLElement): HTMLElement | null {\n const elementsSelected = selectElementsT(selector, context);\n return !elementsSelected || !elementsSelected.length ? null : elementsSelected[0];\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-next-line @typescript-eslint/no-explicit-any\ndeclare let window: any;\n\n/**\n * @name - XDomainRequest\n * @description - typescript declaration for XDomainRequest object.\n * @type {object}\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let XDomainRequest: any;\n\n/**\n * PlayerUtilities class.\n * @classdesc - The PlayerOptions class is used to pass player options settings to the player.\n * It supplies default values which can be overridden via overrides passed to the constructor.\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class PlayerUtility {\n /**\n * @name - pendingAjaxRequests\n * @description - array to hold pending ajax requests.\n * @private\n * @static\n * @returns {any}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static readonly pendingAjaxRequests: any = [];\n\n /**\n * Gets request data using ajax call.\n * @param url - Url from where to fetch data.\n * @param done - On success callback function.\n * @param failed - On failed callback function.\n */\n public static ajax(url: string, done: Function, failed?: Function): void {\n if (!url) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let ajaxRequest: any = null;\n\n // For IE 9 and below use XDomainRequest\n if (window.XDomainRequest) {\n ajaxRequest = new XDomainRequest();\n\n ajaxRequest.addEventListener('load', () => {\n done && done(ajaxRequest.responseText);\n PlayerUtility._removeFromPendingAjaxRequests(ajaxRequest);\n });\n\n // IE8 and IE9 have a bug where garbage collector will clear XDomainRequest object\n // before the call is completed. Thus add a reference to the object so that request\n // is not aborted by garbage collector.\n PlayerUtility.pendingAjaxRequests.push(ajaxRequest);\n } else if (window.XMLHttpRequest) {\n ajaxRequest = new XMLHttpRequest();\n\n ajaxRequest.onreadystatechange = () => {\n if (ajaxRequest.readyState === 4) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = null;\n if (ajaxRequest.status === 200) {\n result = ajaxRequest.responseText;\n }\n done && done(result);\n } else {\n // The following console.log useful for debugging and is left in commented out for easy restoration.\n // console.log('Localization-helper: readystate(' + xhttp.readyState + ') status(' + xhttp.status + ')');\n }\n };\n }\n\n // Attach common event handlers and make the request.\n if (ajaxRequest) {\n ajaxRequest.ontimeout = ajaxRequest.addEventListener('error', () => {\n PlayerUtility._removeFromPendingAjaxRequests(ajaxRequest);\n failed && failed();\n });\n ajaxRequest.open('GET', url, true);\n ajaxRequest.send();\n }\n }\n\n /**\n * Removes object from array to hold pending ajax requests.\n * @param obj - Object.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _removeFromPendingAjaxRequests(obj: any): void {\n // When the call is completed remove it from the array\n let index = -1;\n for (let i = 0; i < PlayerUtility.pendingAjaxRequests.length; i++) {\n if (obj === PlayerUtility.pendingAjaxRequests[i]) {\n index = i;\n break;\n }\n }\n if (index >= 0) {\n PlayerUtility.pendingAjaxRequests.splice(index, 1);\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/**\n * Client Dimension Interface.\n */\nexport interface IClientDimension {\n width: number;\n height: number;\n}\n\n/**\n * Dictionary String Interface.\n */\nexport interface IDictionaryStringString {\n [key: string]: string;\n}\n\n/**\n * @interface IGrid\n * @classdesc - The IGrid interface contract.\n */\nexport interface IGrid {\n rows: number;\n columns: number;\n}\n\n/**\n * Clamp position between a range.\n * @param value - Value to be clamped.\n * @param min - Minimum value in range.\n * @param max - Maximum value in range.\n * @returns The clap value if min passed is less than max else returns 0.\n */\nexport function clamp(value: number, min: number, max: number): number {\n if (min <= max) {\n return Math.min(Math.max(value, min), max);\n }\n return 0;\n}\n\n/**\n * Upper case the first letter of the string, if only one char exists on the string, uppercase it.\n * @param value - Value to be upper cased.\n * @returns The upper cased string of the passed value, if it has just one char uppercase it.\n */\nexport function toUpperCaseFirstChar(value: string): string {\n if (value.length > 1) {\n return value.charAt(0).toUpperCase() + value.substr(1);\n }\n if (value.length === 1) {\n return value.charAt(0).toUpperCase();\n }\n return '';\n}\n\n/**\n * HTML collectio to Array.\n * @param nodeList - Html Collection.\n * @returns - An array of the HTML Element.\n */\nexport function htmlCollectionToArray(nodeList: HTMLCollection): HTMLElement[] {\n return Array.prototype.slice.call(nodeList);\n}\n\n/**\n * Get CSS for the Element.\n * @param element - The HTML Element.\n * @param property - The HTML property.\n * @returns - The value of the required property.\n */\nexport function getCSS(element: HTMLElement, property: string): string {\n let style = element.style[property];\n\n if (!style) {\n style = getComputedStyle(element)[property];\n }\n\n return style;\n}\n\n/**\n * Create Throttled Event.\n * @param listener - The Event Listener.\n * @param threshold - The threshold number.\n * @returns The event.\n */\nexport function createThrottledEvent(listener: EventListener, threshold: number): (event: Event) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timer: any;\n let last = 0;\n\n return (event: Event) => {\n const now = Date.now();\n\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n\n if (last && now < last + threshold) {\n timer = setTimeout(() => {\n last = Date.now();\n listener(event);\n }, threshold - (now - last));\n } else {\n last = now;\n listener(event);\n }\n };\n}\n\n/**\n * Add the Throrrled Event.\n * @param target - Event Targer.\n * @param name - Name of the Event.\n * @param listener - The Event Listener.\n * @param threshold - The Threshold number.\n * @returns - Returns the Throttled Event.\n */\nexport function addThrottledEvent(\n target: EventTarget,\n name: string,\n listener: EventListener,\n threshold: number = 150\n): (event: Event) => void {\n const throttledEventHandler = createThrottledEvent(listener, threshold);\n target.addEventListener(name, throttledEventHandler, false);\n\n return throttledEventHandler;\n}\n\n/**\n * Map the CSS to the modules.\n * @param className - Class name.\n * @param cssModule - CSS modules.\n * @returns - Returns the map CSS.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapToCssModules(className: string = '', cssModule: any): string {\n if (!cssModule) {\n return className;\n }\n\n return className\n .split(' ')\n .map((c: string) => cssModule[c] || c)\n .join(' ');\n}\n\n/**\n * Check the raget object is reference.\n * @param target - Target object.\n * @returns Returns boolean.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isRef(target: any): boolean {\n if (!target) {\n return false;\n }\n\n return (>target).current !== undefined;\n}\n\n/**\n * Check if the passed target is element.\n * @param target - Target element.\n * @returns Returns boolean.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isElement(target: any): boolean {\n if (!target) {\n return false;\n }\n\n return (target).addEventListener !== undefined;\n}\n\n/**\n * KeyCodes Enum.\n */\nexport const keyCodes = {\n esc: 27,\n space: 32,\n tab: 9,\n up: 38,\n down: 40,\n enter: 13\n};\n\n/**\n * Map Interface.\n */\ninterface IMap {\n [key: string]: T;\n}\nconst warned: IMap = {};\n\n/**\n * Warn once.\n * @param message - Message to warned.\n */\nexport function warnOnce(message: string): void {\n if (!warned[message]) {\n if (typeof console !== 'undefined') {\n throw new Error(message);\n }\n warned[message] = true;\n }\n}\n\n/**\n * Can use DOM..\n */\nexport const canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Find the required DOM element.\n * @param target - Targert Dom Element.\n * @returns - The DOM Element or string or null.\n */\nexport function findDOMElements(target: string): NodeListOf | string | null {\n try {\n if (typeof target === 'string' && canUseDOM) {\n let selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(`#${target}`);\n }\n\n if (!selection.length) {\n throw new Error();\n }\n return selection;\n }\n\n return target;\n } catch {\n console.error(`The target '${target}' could not be identified in the dom, tip: check spelling`);\n return null;\n }\n}\n\n/**\n * Get the Target element.\n * @param target - Target Element.\n * @returns - Returns the HTMLElement or null or string.\n */\nexport function getTarget(target: string | HTMLElement | React.Ref): HTMLElement | React.Ref | null | string {\n const selection = findDOMElements(target);\n if (selection && selection.length) {\n return selection[0];\n }\n\n return target;\n}\n\n/**\n * Get the Target element.\n * @param target - Target Element.\n * @returns - Returns the HTMLElement or null or string.\n */\nexport function getTargetElement(target: string | HTMLElement | React.Ref): HTMLElement | null {\n const targetElement = getTarget(target);\n if (isRef(targetElement)) {\n return (>targetElement).current;\n }\n if (isElement(targetElement)) {\n return targetElement;\n }\n\n return null;\n}\n\n/**\n * Transition Timeouts.\n */\nexport const TransitionTimeouts = {\n Fade: 150,\n Collapse: 350,\n Modal: 300,\n Carousel: 600\n};\n\n/**\n * Transition Statuses.\n */\nexport type TransitionStatuses = 'entering' | 'entered' | 'exiting' | 'exited';\n\n/**\n * Focusable Elements.\n */\nexport const focusableElements = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'object',\n 'embed',\n '[tabindex]:not(.modal)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])'\n];\n\n/**\n * Extends an object with properties/values from one or more others.\n * @param parameters - The objects to merge together.\n * @returns - The extended object.\n */\n// eslint-disable-next-line complexity, @typescript-eslint/no-explicit-any\nexport function extend(...parameters: any[]): any {\n if (!parameters || !parameters.length) {\n return null;\n }\n\n const recursive = typeof parameters[0] === 'boolean' && parameters[0];\n\n if (parameters.length < 2) {\n return recursive ? null : parameters[0];\n }\n\n if (recursive && parameters.length < 3) {\n return parameters[1];\n }\n\n const target = recursive ? parameters[1] : parameters[0];\n\n for (let paramIndex = recursive ? 2 : 1; paramIndex < parameters.length; paramIndex++) {\n if (parameters[paramIndex] !== undefined) {\n for (const key of Object.keys(parameters[paramIndex])) {\n if (parameters[paramIndex].hasOwnProperty(key)) {\n const source = parameters[paramIndex][key];\n\n if (recursive) {\n let isSourceArray = Array.isArray ? Array.isArray(source) : {}.toString.call(source) === '[object Array]';\n let isTargetArray =\n !!target[key] &&\n (Array.isArray ? Array.isArray(target[key]) : {}.toString.call(target[key]) === '[object Array]');\n let isSourceObject = !isSourceArray && typeof source === 'object';\n let isTargetObject = !isTargetArray && !!target[key] && typeof target[key] === 'object';\n\n if (isSourceArray && isTargetArray) {\n for (const [arrayIndex, element] of source.entries()) {\n isSourceArray = Array.isArray ? Array.isArray(element) : {}.toString.call(element) === '[object Array]';\n isTargetArray =\n !!target[key][arrayIndex] &&\n (Array.isArray\n ? Array.isArray(target[key][arrayIndex])\n : {}.toString.call(target[key][arrayIndex]) === '[object Array]');\n isSourceObject = !isSourceArray && typeof element === 'object';\n isTargetObject = !isTargetArray && !!target[key][arrayIndex] && typeof target[key][arrayIndex] === 'object';\n\n if (isSourceArray) {\n target[key][arrayIndex] = extend(true, isTargetArray ? target[key][arrayIndex] : [], element);\n } else if (isSourceObject) {\n target[key][arrayIndex] = extend(true, isTargetObject ? target[key][arrayIndex] : {}, element);\n } else {\n target[key][arrayIndex] = element;\n }\n }\n continue;\n } else if (isSourceArray) {\n target[key] = extend(true, [], source);\n continue;\n } else if (isSourceObject) {\n target[key] = extend(true, isTargetObject ? target[key] : {}, source);\n continue;\n }\n }\n\n target[key] = source;\n }\n }\n }\n }\n\n return target;\n}\n\n/**\n * Gets the dimension of an element.\n * @param containerElement - The container element.\n * @returns - {IClientDimension} - The client dimension.\n * {IClientDimension.width} - The client width.\n * {IClientDimension.height} - The client height.\n */\nexport function getDimensions(containerElement: HTMLElement): IClientDimension | null {\n if (containerElement === null) {\n return null;\n }\n return {\n width: containerElement.clientWidth,\n height: containerElement.clientHeight\n };\n}\n\n/**\n * Check if the browser is Safari or not.\n * @returns Ture or false.\n */\nexport function isSafari(): boolean {\n if (navigator.vendor && navigator.userAgent) {\n return navigator.vendor.includes('Apple') && !navigator.userAgent.includes('CriOS') && !navigator.userAgent.includes('FxiOS');\n }\n return false;\n}\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar 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 regExpExec = require('../internals/regexp-exec-abstract');\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 = 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\nvar BUGGY = '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// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : 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 = isNullOrUndefined(separator) ? 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\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\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 // ^(? + 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 regExpExec(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 = regExpExec(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}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IPlayerResources } from '../data';\nimport { IDictionaryStringString } from '../utilities';\n\n/**\n * @name - ccCultureLocStrings\n * @description - The localized names for the close caption menu options.\n * @constant\n * @type {IDictionaryStringString}\n */\nexport const ccCultureLocStrings: IDictionaryStringString = {\n 'ar-ab': 'عربي',\n 'ar-xm': 'عربي',\n 'ar-ma': 'عربي',\n 'ar-sa': 'عربي',\n 'eu-es': 'Euskara',\n 'bg-bg': 'Български',\n 'ca-es': 'Català',\n 'zh-cn': '简体中文',\n 'zh-hk': '繁體中文',\n 'zh-tw': '繁體中文',\n 'hr-hr': 'Hrvatski',\n 'cs-cz': 'Čeština',\n 'da-dk': 'Dansk',\n 'nl-be': 'Nederlands',\n 'nl-nl': 'Nederlands',\n 'en-ab': 'English',\n 'en-aa': 'English',\n 'en-au': 'English',\n 'en-ca': 'English',\n 'en-eu': 'English',\n 'en-hk': 'English',\n 'en-in': 'English',\n 'en-id': 'English',\n 'en-ie': 'English',\n 'en-jm': 'English',\n 'en-my': 'English',\n 'en-nz': 'English',\n 'en-pk': 'English',\n 'en-ph': 'English',\n 'en-sg': 'English',\n 'en-za': 'English',\n 'en-tt': 'English',\n 'en-gb': 'English',\n 'en-us': 'English',\n 'et-ee': 'Eesti',\n 'fi-fi': 'Suomi',\n 'fr-ab': 'Français',\n 'fr-be': 'Français',\n 'fr-ca': 'Français',\n 'fr-fr': 'Français',\n 'fr-xf': 'Français',\n 'fr-ch': 'Français',\n 'gl-es': 'Galego',\n 'de-de': 'Deutsch',\n 'de-at': 'Deutsch',\n 'de-ch': 'Deutsch',\n 'el-gr': 'Ελληνικά',\n 'he-il': 'עברית',\n 'hi-in': 'हिंदी',\n 'hu-hu': 'Magyar',\n 'is-is': 'Íslenska',\n 'id-id': 'Bahasa Indonesia',\n 'it-it': 'Italiano',\n 'ja-jp': '日本語',\n 'kk-kz': 'Қазақ',\n 'ko-kr': '한국어',\n 'lv-lv': 'Latviešu',\n 'lt-lt': 'Lietuvių',\n 'ms-my': 'Bahasa Melayu (Asia Tenggara)‎',\n 'nb-no': 'Norsk (bokmål)',\n 'nn-no': 'Norsk (nynorsk)',\n 'fa-ir': 'فارسی',\n 'pl-pl': 'Polski',\n 'pt-br': 'Português (Brasil)‎',\n 'pt-pt': 'Português (Portugal)‎',\n 'ro-ro': 'Română',\n 'ru-ru': 'Русский',\n 'sr-latn-rs': 'Srpski',\n 'sk-sk': 'Slovenčina',\n 'sl-si': 'Slovenski',\n 'es-ar': 'Español',\n 'es-cl': 'Español',\n 'es-co': 'Español',\n 'es-cr': 'Español',\n 'es-do': 'Español',\n 'es-ec': 'Español',\n 'es-us': 'Español',\n 'es-gt': 'Español',\n 'es-hn': 'Español',\n 'es-xl': 'Español',\n 'es-mx': 'Español',\n 'es-ni': 'Español',\n 'es-pa': 'Español',\n 'es-py': 'Español',\n 'es-pe': 'Español',\n 'es-pr': 'Español',\n 'es-es': 'Español',\n 'es-uy': 'Español',\n 'es-ve': 'Español',\n 'sv-se': 'Svenska',\n 'tl-ph': 'Tagalog',\n 'th-th': 'ไทย',\n 'tr-tr': 'Türkçe',\n 'uk-ua': 'Українська',\n 'ur-pk': 'اردو',\n 'vi-vn': 'Tiếng Việt'\n};\n\n/**\n * @name - ccLanguageCodes\n * @description - The 2 character language codes for use with the lang attribute .\n * @constant\n * @type {IDictionaryStringString}\n */\nexport const ccLanguageCodes: IDictionaryStringString = {\n 'ar-ab': 'ar',\n 'ar-xm': 'ar',\n 'ar-ma': 'ar',\n 'ar-sa': 'ar',\n 'eu-es': 'eu',\n 'bg-bg': 'bg',\n 'ca-es': 'ca',\n 'zh-cn': 'zh',\n 'zh-hk': 'zh',\n 'zh-tw': 'zh',\n 'hr-hr': 'hr',\n 'cs-cz': 'cs',\n 'da-dk': 'da',\n 'nl-be': 'nl',\n 'nl-nl': 'nl',\n 'en-ab': 'en',\n 'en-aa': 'en',\n 'en-au': 'en',\n 'en-ca': 'en',\n 'en-eu': 'en',\n 'en-hk': 'en',\n 'en-in': 'en',\n 'en-id': 'en',\n 'en-ie': 'en',\n 'en-jm': 'en',\n 'en-my': 'en',\n 'en-nz': 'en',\n 'en-pk': 'en',\n 'en-ph': 'en',\n 'en-sg': 'en',\n 'en-za': 'en',\n 'en-tt': 'en',\n 'en-gb': 'en',\n 'en-us': 'en',\n 'et-ee': 'et',\n 'fi-fi': 'fi',\n 'fr-ab': 'fr',\n 'fr-be': 'fr',\n 'fr-ca': 'fr',\n 'fr-fr': 'fr',\n 'fr-xf': 'fr',\n 'fr-ch': 'fr',\n 'gl-es': 'gl',\n 'de-de': 'de',\n 'de-at': 'de',\n 'de-ch': 'de',\n 'el-gr': 'el',\n 'he-il': 'he',\n 'hi-in': 'hi',\n 'hu-hu': 'hu',\n 'is-is': 'is',\n 'id-id': 'id',\n 'it-it': 'it',\n 'ja-jp': 'ja',\n 'kk-kz': 'kk',\n 'ko-kr': 'ko',\n 'lv-lv': 'lv',\n 'lt-lt': 'lt',\n 'ms-my': 'ms‎',\n 'nb-no': 'nb',\n 'nn-no': 'nn',\n 'fa-ir': 'fa',\n 'pl-pl': 'pl',\n 'pt-br': 'pt‎',\n 'pt-pt': 'pt‎',\n 'ro-ro': 'ro',\n 'ru-ru': 'ru',\n 'sr-latn-rs': 'sr',\n 'sk-sk': 'sk',\n 'sl-si': 'sl',\n 'es-ar': 'es',\n 'es-cl': 'es',\n 'es-co': 'es',\n 'es-cr': 'es',\n 'es-do': 'es',\n 'es-ec': 'es',\n 'es-us': 'es',\n 'es-gt': 'es',\n 'es-hn': 'es',\n 'es-xl': 'es',\n 'es-mx': 'es',\n 'es-ni': 'es',\n 'es-pa': 'es',\n 'es-py': 'es',\n 'es-pe': 'es',\n 'es-pr': 'es',\n 'es-es': 'es',\n 'es-uy': 'es',\n 'es-ve': 'es',\n 'sv-se': 'sv',\n 'tl-ph': 'tl',\n 'th-th': 'th',\n 'tr-tr': 'tr',\n 'uk-ua': 'uk',\n 'ur-pk': 'ur',\n 'vi-vn': 'vi'\n};\n\n/**\n * @name - playerLocKeys\n * @description - Key names to get localized values.\n * @constant\n */\nexport const PlayerLocKeys = {\n audio_tracks: 'audio_tracks',\n closecaption_off: 'closecaption_off',\n audio_tracks_default: 'audio_tracks_default',\n geolocation_error: 'geolocation_error',\n media_err_aborted: 'media_err_aborted',\n media_err_decode: 'media_err_decode',\n media_err_network: 'media_err_network',\n media_err_src_not_supported: 'media_err_src_not_supported',\n media_err_unknown_error: 'media_err_unknown_error',\n media_err_amp_encrypt: 'media_err_amp_encrypt',\n media_err_amp_player_mismatch: 'media_err_amp_player_mismatch',\n browserunsupported: 'browserunsupported',\n browserunsupported_download: 'browserunsupported_download',\n expand: 'expand',\n mute: 'mute',\n nullvideoerror: 'nullvideoerror',\n pause: 'pause',\n play: 'play',\n play_video: 'play_video',\n playing: 'playing',\n paused: 'paused',\n play_pause_button_tooltip: 'play_pause_button_tooltip',\n live_caption: 'live_caption',\n live_label: 'live_label',\n playbackerror: 'playbackerror',\n standarderror: 'standarderror',\n time: 'time',\n more_caption: 'more_caption',\n data_error: 'data_error',\n seek: 'seek',\n unexpand: 'unexpand',\n unmute: 'unmute',\n volume: 'volume',\n quality: 'quality',\n quality_hd: 'quality_hd',\n quality_hq: 'quality_hq',\n quality_lo: 'quality_lo',\n quality_sd: 'quality_sd',\n quality_auto: 'quality_auto',\n cc_customize: 'cc_customize',\n cc_text_font: 'cc_text_font',\n cc_text_color: 'cc_text_color',\n cc_color_black: 'cc_color_black',\n cc_color_blue: 'cc_color_blue',\n cc_color_cyan: 'cc_color_cyan',\n cc_color_green: 'cc_color_green',\n cc_color_grey: 'cc_color_grey',\n cc_color_magenta: 'cc_color_magenta',\n cc_color_red: 'cc_color_red',\n cc_color_white: 'cc_color_white',\n cc_color_yellow: 'cc_color_yellow',\n cc_font_name_casual: 'cc_font_name_casual',\n cc_font_name_cursive: 'cc_font_name_cursive',\n cc_font_name_monospacedsansserif: 'cc_font_name_monospacedsansserif',\n cc_font_name_proportionalsansserif: 'cc_font_name_proportionalsansserif',\n cc_font_name_monospacedserif: 'cc_font_name_monospacedserif',\n cc_font_name_proportionalserif: 'cc_font_name_proportionalserif',\n cc_font_name_smallcapitals: 'cc_font_name_smallcapitals',\n cc_text_size: 'cc_text_size',\n cc_text_size_default: 'cc_text_size_default',\n cc_text_size_extralarge: 'cc_text_size_extralarge',\n cc_text_size_large: 'cc_text_size_large',\n cc_text_size_maximum: 'cc_text_size_maximum',\n cc_text_size_small: 'cc_text_size_small',\n cc_appearance: 'cc_appearance',\n cc_preset1: 'cc_preset1',\n cc_preset2: 'cc_preset2',\n cc_preset3: 'cc_preset3',\n cc_preset4: 'cc_preset4',\n cc_preset5: 'cc_preset5',\n cc_presettings: 'cc_presettings',\n cc_text_background_color: 'cc_text_background_color',\n cc_text_background_opacity: 'cc_text_background_opacity',\n cc_text_opacity: 'cc_text_opacity',\n cc_percent_0: 'cc_percent_0',\n cc_percent_100: 'cc_percent_100',\n cc_percent_25: 'cc_percent_25',\n cc_percent_50: 'cc_percent_50',\n cc_percent_75: 'cc_percent_75',\n cc_text_edge_color: 'cc_text_edge_color',\n cc_text_edge_style: 'cc_text_edge_style',\n cc_text_edge_style_depressed: 'cc_text_edge_style_depressed',\n cc_text_edge_style_dropshadow: 'cc_text_edge_style_dropshadow',\n cc_text_edge_style_none: 'cc_text_edge_style_none',\n cc_text_edge_style_raised: 'cc_text_edge_style_raised',\n cc_text_edge_style_uniform: 'cc_text_edge_style_uniform',\n cc_window_color: 'cc_window_color',\n cc_window_opacity: 'cc_window_opacity',\n cc_reset: 'cc_reset',\n closecaption: 'closecaption',\n close_text: 'close_text',\n playbackspeed: 'playbackspeed',\n playbackspeed_normal: 'playbackspeed_normal',\n sharing_label: 'sharing_label',\n sharing_facebook: 'sharing_facebook',\n sharing_twitter: 'sharing_twitter',\n sharing_linkedin: 'sharing_linkedin',\n sharing_skype: 'sharing_skype',\n sharing_mail: 'sharing_mail',\n sharing_copy: 'sharing_copy',\n loading_value_text: 'loading_value_text',\n loading_aria_label: 'loading_aria_label',\n descriptive_audio: 'descriptive_audio',\n unknown_language: 'unknown_language',\n download_label: 'download_label',\n download_transcript: 'download_transcript',\n download_audio: 'download_audio',\n download_video: 'download_video',\n download_videoWithCC: 'download_videoWithCC',\n agegate_day: 'agegate_day',\n agegate_month: 'agegate_month',\n agegate_year: 'agegate_year',\n agegate_enterdate: 'agegate_enterdate',\n agegate_enterdate_arialabel: 'agegate_enterdate_arialabel',\n agegate_fail: 'agegate_fail',\n agegate_verifyyourage: 'agegate_verifyyourage',\n agegate_submit: 'agegate_submit',\n agegate_dateorder: 'agegate_dateorder',\n previous_menu_aria_label: 'previous_menu_aria_label',\n reactive_menu_aria_label: 'reactive_menu_aria_label',\n reactive_menu_aria_label_closedcaption: 'reactive_menu_aria_label_closedcaption',\n interactivity_show: 'interactivity_show',\n interactivity_hide: 'interactivity_hide'\n};\n\n/**\n * Localization Constants.\n */\nexport const LocalizationConstants = {\n playVideoAriaLabel: 'play video',\n playAriaLabel: 'play',\n pauseAriaLabel: 'pause',\n closeAriaLabel: 'close',\n optionAriaLabel: 'More options',\n muteAriaLabel: 'mute',\n unMuteAriaLabel: 'unmute',\n fullScreenAriaLabel: 'full screen',\n exitFullScreenAriaLabel: 'exit full screen',\n playingAriaLabel: 'paying',\n pausedAriaLabel: 'paused',\n seekBarLabel: 'Seek bar',\n sliderThumbLabel: 'Slider thumb',\n volumeThumbLabel: 'Volume thumb',\n videoTimeDurationLabel: 'Video time duration',\n closedCaptionLabel: 'Closed caption',\n audio_tracks: 'Audio Tracks',\n descriptive_audio: 'Audio descriptions',\n closecaption_off: 'Off',\n audio_tracks_default: 'Default Track',\n cc_customize: 'Customize',\n cc_text_font: 'Font',\n cc_text_color: 'Text color',\n cc_color_black: 'Black',\n cc_color_blue: 'Blue',\n cc_color_cyan: 'Cyan',\n cc_color_green: 'Green',\n cc_color_grey: 'Grey',\n cc_color_magenta: 'Magenta',\n cc_color_red: 'Red',\n cc_color_white: 'White',\n cc_color_yellow: 'Yellow',\n cc_font_name_casual: 'Casual',\n cc_font_name_cursive: 'Cursive',\n cc_font_name_monospacedsansserif: 'Monospaced Sans Serif',\n cc_font_name_monospacedserif: 'Monospaced Serif',\n cc_font_name_proportionalserif: 'Proportional Serif',\n cc_font_name_proportionalsansserif: 'Proportional Sans Serif',\n cc_font_name_smallcapitals: 'Small Capitals',\n cc_text_size: 'Text size',\n cc_text_size_default: 'Default',\n cc_text_size_extralarge: 'Extra Large',\n cc_text_size_large: 'Large',\n cc_text_size_maximum: 'Maximum',\n cc_text_size_small: 'Small',\n cc_appearance: 'Appearance',\n cc_preset1: 'Preset 1 ',\n cc_preset2: 'Preset 2',\n cc_preset3: 'Preset 3',\n cc_preset4: 'Preset 4',\n cc_preset5: 'Preset 5',\n cc_presettings: 'Close captions appearance {0}: ({1}:{2}, {3}:{4})',\n cc_text_background_color: 'Background color',\n cc_text_background_opacity: 'Background opacity',\n cc_text_opacity: 'Text opacity',\n cc_percent_0: '0%',\n cc_percent_100: '100%',\n cc_percent_25: '25%',\n cc_percent_50: '50%',\n cc_percent_75: '75%',\n cc_text_edge_color: 'Text edge color',\n cc_text_edge_style: 'Text edge style',\n cc_text_edge_style_depressed: 'Depressed',\n cc_text_edge_style_dropshadow: 'Drop shadow',\n cc_text_edge_style_none: 'No edge',\n cc_text_edge_style_raised: 'Raised',\n cc_text_edge_style_uniform: 'Uniform',\n cc_window_color: 'Window color',\n cc_window_opacity: 'Window opacity',\n cc_reset: 'Reset'\n};\n\n/**\n *\n * Closed Caption helper class.\n *\n */\nexport default class LocalizationHelper {\n private readonly playerResources: IPlayerResources;\n\n public constructor(props: IPlayerResources) {\n this.playerResources = props;\n }\n\n /**\n * Gets the localized value for given key.\n * @param key - The key to look for.\n * @returns The localization string.\n */\n public getLocalizedValue(key: string): string {\n return this.playerResources[key] || LocalizationConstants[key] || '';\n }\n\n /**\n * Converts from a locale ID to a 2 character language code.\n * @public\n * @param locale - Locale ID string.\n * @returns The localization string.\n */\n public getLanguageCodeFromLocale(locale: string): string {\n return ccLanguageCodes[locale] || '';\n }\n\n /**\n * Converts from language ID or locale name to a localized language name.\n * @public\n * @param locale - Language ID string or locale name string.\n * @returns Language Name from locale.\n */\n public getLanguageNameFromLocale(locale: string): string {\n return ccCultureLocStrings[locale] || this.getLocalizedValue(PlayerLocKeys.unknown_language);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n closedCaptionsPresetMap,\n closedCaptionsSettingsMap,\n closedCaptionsSettingsOptions,\n videoClosedCaptionsConstant\n} from '../closed-captions';\nimport { ClosedCaptionTypes, ICurrentClosedCaptionsSettings, IPlayerMenu, IPlayerMenuItem, IVideoMetadata, MenuCategories } from '../data';\nimport { format } from '../utilities';\nimport LocalizationHelper, { ccCultureLocStrings, PlayerLocKeys } from './localization-helper';\nimport PlayerHelper from './player-helper';\n\n/**\n *\n * Closed Caption helper class.\n *\n */\nexport default class ClosedCaptionHelper {\n private readonly playerMetaData: IVideoMetadata;\n\n private readonly playerHelper: PlayerHelper;\n\n private readonly localizationHelper: LocalizationHelper;\n\n public constructor(props: IVideoMetadata, playerHelper: PlayerHelper, localizationHelper: LocalizationHelper) {\n this.playerMetaData = props;\n this.playerHelper = playerHelper;\n this.localizationHelper = localizationHelper;\n }\n\n public checkClosedCaptionsFiles(): boolean {\n if (this.playerMetaData.ccFiles && this.playerMetaData.ccFiles.length > 0) {\n return true;\n }\n return false;\n }\n\n public getClosedCaptionMenu(): IPlayerMenu | null {\n if (this.playerMetaData.ccFiles && this.playerMetaData.ccFiles.length > 0) {\n const ccFiles = this.playerMetaData.ccFiles;\n\n const ccMenuItems: IPlayerMenuItem[] = [];\n\n for (const ccFile of ccFiles) {\n // If ccType is not provided we default to TTML\n if (!ccFile.ccType || ccFile.ccType === ClosedCaptionTypes.TTML) {\n const lang = this.localizationHelper.getLanguageCodeFromLocale(ccFile.locale.toLowerCase());\n\n const ccMenuItem: IPlayerMenuItem = {\n id: this.playerHelper.addIdPrefix(ccFile.locale),\n label: ccCultureLocStrings[ccFile.locale],\n language: lang,\n data: ccFile.locale,\n selected: false,\n selectable: true,\n persistOnClick: true,\n ariaLabel: `${ccCultureLocStrings[ccFile.locale]} ${this.localizationHelper.getLocalizedValue(\n PlayerLocKeys.closecaption\n )}`\n };\n ccMenuItems.push(ccMenuItem);\n }\n }\n\n ccMenuItems.push({\n id: this.playerHelper.addIdPrefix('appearance'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n selected: false,\n selectable: false,\n subMenu: this._getClosedCaptionsSettingsMenu()\n });\n\n // Add 'off' option to the top of the list\n ccMenuItems.unshift({\n id: this.playerHelper.addIdPrefix('off'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption_off),\n selected: false,\n data: 'off',\n selectable: true,\n persistOnClick: true,\n ariaLabel: `${this.localizationHelper.getLocalizedValue(\n PlayerLocKeys.closecaption_off\n )} ${this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption)}`\n });\n\n return {\n category: MenuCategories.ClosedCaption,\n id: this.playerHelper.addIdPrefix(MenuCategories.ClosedCaption),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption),\n items: ccMenuItems\n };\n }\n return null;\n }\n\n public getUpdatedClosedCaptionSetting(\n currentClosedCaptionsSetting: ICurrentClosedCaptionsSettings,\n settingKey: string,\n optionKey: string\n ): ICurrentClosedCaptionsSettings {\n if (settingKey === videoClosedCaptionsConstant.presetKey) {\n const presetValue = closedCaptionsPresetMap[optionKey];\n\n return {\n window_color: currentClosedCaptionsSetting.window_color,\n window_opacity: currentClosedCaptionsSetting.window_opacity,\n text_background_color: presetValue.text_background_color,\n text_background_opacity: presetValue.text_background_opacity,\n text_color: presetValue.text_color,\n text_edge_style: presetValue.text_edge_style,\n text_font: presetValue.text_font,\n text_opacity: presetValue.text_opacity,\n text_size: presetValue.text_size,\n preset: optionKey\n };\n }\n if (this._getOptionValue(settingKey, optionKey)) {\n currentClosedCaptionsSetting[videoClosedCaptionsConstant.presetKey] = 'none';\n currentClosedCaptionsSetting[settingKey] = optionKey;\n return currentClosedCaptionsSetting;\n }\n return currentClosedCaptionsSetting;\n }\n\n /**\n * Gets the value of closed captions URL from the locale.\n * @param locale - Locale.\n * @returns Returns the closed caption URL.\n */\n public getClosedCaptionURLFromLocale(locale: string): string {\n let url: string = '';\n const ccFiles = this.playerMetaData.ccFiles!;\n for (const ccFile of ccFiles) {\n if (ccFile.locale === locale) {\n url = ccFile.url;\n }\n }\n return url;\n }\n\n /**\n * Gets the value of closed captions settings option.\n * @private\n * @param settingKey - The closed ceptions settings key.\n * @param optionKey - The closed captions option key.\n * @returns - The option value.\n */\n private _getOptionValue(settingKey: string, optionKey: string): string {\n const setting = closedCaptionsSettingsMap[settingKey];\n if (setting) {\n const option = closedCaptionsSettingsOptions[setting.option];\n return option && option.map[optionKey];\n }\n return '';\n }\n\n /**\n * Gets the closed captions settings menu to be added to options menu.\n * @returns - The player menu.\n */\n private _getClosedCaptionsSettingsMenu(): IPlayerMenu {\n // Const currentSettings = currentClosedCaptionsSetting;\n\n // create customize settings menu\n const settingsMenuItems: IPlayerMenuItem[] = [];\n\n for (const settingKey of Object.keys(closedCaptionsSettingsMap)) {\n const setting = closedCaptionsSettingsMap[settingKey];\n\n const option = closedCaptionsSettingsOptions[setting.option];\n const optionMenuItem: IPlayerMenuItem[] = [];\n\n // eslint-disable-next-line guard-for-in\n for (const optionKey in option.map) {\n optionMenuItem.push({\n id: this._getCCMenuItemId(settingKey, optionKey),\n label: this.localizationHelper.getLocalizedValue(`${option.pre}${optionKey}`),\n selectable: true,\n selected: false,\n persistOnClick: true,\n data: `${settingKey}:${optionKey}`\n });\n }\n\n // Add back button\n optionMenuItem.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`),\n ariaLabel: `${settingKey} - go back to previous menu`,\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n\n settingsMenuItems.push({\n id: this.playerHelper.addIdPrefix(`${settingKey}_item`),\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`),\n selectable: false,\n subMenu: {\n id: this._getCCSettingsMenuId(settingKey),\n category: MenuCategories.ClosedCaptionSettings,\n items: optionMenuItem,\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`)\n }\n });\n }\n\n settingsMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n ariaLabel: 'Customize - go back to previous menu',\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n\n const settingsMenu: IPlayerMenu = {\n id: this.playerHelper.addIdPrefix(MenuCategories.ClosedCaptionSettings),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n category: MenuCategories.ClosedCaptionSettings,\n items: settingsMenuItems\n };\n\n // Create preset items menu\n const presetItems: IPlayerMenuItem[] = [];\n\n for (const preset of Object.keys(closedCaptionsPresetMap)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const presetSetting: any = closedCaptionsPresetMap[preset];\n const font: string = presetSetting.text_font;\n const color: string = presetSetting.text_color;\n\n const ariaLabelValue = format(\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_presettings),\n '',\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_text_font),\n this.localizationHelper.getLocalizedValue(`cc_font_name_${font}`),\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_text_color),\n this.localizationHelper.getLocalizedValue(`cc_color_${color}`)\n );\n\n presetItems.push({\n id: this._getCCMenuItemId(videoClosedCaptionsConstant.presetKey, preset),\n label: this.localizationHelper.getLocalizedValue(`cc_${preset}`),\n data: `preset:${preset}`,\n selectable: true,\n selected: false,\n persistOnClick: true,\n ariaLabel: ariaLabelValue,\n hasMouseHoverEvents: true\n });\n }\n\n presetItems.push({\n id: this.playerHelper.addIdPrefix('cc-customize'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n subMenu: settingsMenu,\n hasMouseHoverEvents: true\n });\n\n presetItems.push({\n id: 'reset',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_reset),\n data: 'reset',\n persistOnClick: true,\n hasMouseHoverEvents: true\n });\n\n presetItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n ariaLabel: 'Appreance - go back to previous menu',\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true,\n hasMouseHoverEvents: true\n });\n\n return {\n id: this._getCCSettingsMenuId(videoClosedCaptionsConstant.presetKey),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n category: MenuCategories.ClosedCaptionSettings,\n items: presetItems\n };\n }\n\n /**\n * Gets the close captions setting menu item id.\n * @param settingId - The setting key.\n * @param optionId - The option key.\n * @returns - Menu Id.\n */\n private _getCCMenuItemId(settingId: string, optionId: string): string {\n return this.playerHelper.addIdPrefix(`cc-${settingId}-${optionId}`);\n }\n\n /**\n * Gets the close captions setting menu id.\n * @param settingId - The setting key.\n * @returns Setting menu Id.\n */\n private _getCCSettingsMenuId(settingId: string): string {\n return this.playerHelper.addIdPrefix(`cc-${settingId}`);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ClosedCaptionTypes,\n IAudioTrack,\n IBinaryReference,\n ICCFile,\n IPlayerMenu,\n IPlayerMenuItem,\n IPlayerProps,\n IVideoFile,\n IVideoMetadata,\n MediaQuality,\n MediaTypes,\n MenuCategories,\n PlayerConstants\n} from '../data';\nimport { startsWith } from '../utilities';\nimport LocalizationHelper, { PlayerLocKeys } from './localization-helper';\n\n/**\n *\n * Player helper class.\n *\n */\nexport default class PlayerHelper {\n private playerProps: IPlayerProps;\n\n private readonly localizationHelper: LocalizationHelper;\n\n private readonly _isMobileDevice?: boolean;\n\n public constructor(props: IPlayerProps, localizationHelper: LocalizationHelper, isMobileDevice?: boolean) {\n this.playerProps = props;\n this.localizationHelper = localizationHelper;\n this._isMobileDevice = isMobileDevice;\n }\n\n public getMetadata(): IVideoMetadata {\n this._mapVideoFiles();\n this._setCCFiles();\n this._setAudioTracks();\n return this.playerProps.playerData.metaData;\n }\n\n public updatePlayerProps(props: IPlayerProps): void {\n this.playerProps = props;\n this._clearVideoPlayerMetaData();\n }\n\n public getOptionMenu(): IPlayerMenu | null {\n const audioTracks = this._getAudioTracksMenu();\n if (audioTracks === null) {\n return null;\n }\n const optionMenuItems: IPlayerMenuItem[] = [];\n\n optionMenuItems.push({\n id: this.addIdPrefix('audioTracks'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n selected: false,\n selectable: false,\n subMenu: audioTracks\n });\n\n return {\n category: MenuCategories.Options,\n id: this.addIdPrefix(MenuCategories.Options),\n label: 'Options',\n items: optionMenuItems\n };\n }\n\n /**\n * Get Poster Frame URL.\n * @returns Returns the poster image URL.\n */\n public getPosterFrameUrl(): string {\n let posterFrameUrl = '';\n if (!this.playerProps.playerData.options.hidePosterFrame && this.playerProps.playerData.metaData.posterframeUrl) {\n posterFrameUrl = this._removeProtocolFromUrl(this.playerProps.playerData.metaData.posterframeUrl);\n if (this.playerProps.playerData.options.thumbnailFullWidth) {\n if (posterFrameUrl.indexOf('?') > 0) {\n posterFrameUrl = `${posterFrameUrl}${'&w='}${PlayerConstants.thumbnailFullWidth}${'&h='}${\n PlayerConstants.thumbnailFullHeight\n }`;\n } else {\n posterFrameUrl = `${posterFrameUrl}${'?w='}${PlayerConstants.thumbnailFullWidth}${'&h='}${\n PlayerConstants.thumbnailFullHeight\n }`;\n }\n }\n }\n return posterFrameUrl;\n }\n\n public getVideoFileToPlay(): IVideoFile {\n let videoFile: IVideoFile = {\n url: '',\n mediaType: MediaTypes.MP4,\n quality: MediaQuality.LO\n };\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n\n const mpVideoFiles = this._getVideoFileByType(MediaTypes.MP4, videoMetaData.videoFiles!);\n\n if (this._isMobileDevice && this.playerProps.playerData.options.mobileVideoQuality) {\n const mobileVideoFile = this._getVideoFileByQuality(\n this.playerProps.playerData.options.mobileVideoQuality.toUpperCase() as MediaQuality,\n mpVideoFiles\n );\n if (mobileVideoFile) {\n return mobileVideoFile;\n }\n }\n\n const hdVideoFile = this._getVideoFileByQuality(MediaQuality.HDX, mpVideoFiles);\n if (hdVideoFile !== null) {\n videoFile = hdVideoFile;\n } else {\n const hqVideoFile = this._getVideoFileByQuality(MediaQuality.HQ, mpVideoFiles);\n if (hqVideoFile !== null) {\n videoFile = hqVideoFile;\n } else {\n const sdVideoFile = this._getVideoFileByQuality(MediaQuality.SD, mpVideoFiles);\n if (sdVideoFile !== null) {\n videoFile = sdVideoFile;\n } else {\n const loVideoFile = this._getVideoFileByQuality(MediaQuality.LO, mpVideoFiles);\n if (loVideoFile !== null) {\n videoFile = loVideoFile;\n }\n }\n }\n }\n return videoFile;\n }\n\n /**\n * Callback function when error happen.\n * @param errorType - Error Type.\n * @param message - Error message.\n */\n public onErrorCallback = (errorType: string, message: string): void => {\n console.log(`ErrorType : ${errorType}, Message : ${message}`);\n };\n\n public isEmptyOrUndefined(value?: string): boolean {\n if (value === undefined || value === '') {\n return true;\n }\n return false;\n }\n\n /**\n * Adds the id prefix to form a child id.\n * @param childId - The child id to prefix.\n * @returns - The prefixed id or the original id if no prefix is built.\n */\n public addIdPrefix(childId: string): string {\n const prefix = this.isEmptyOrUndefined(this.playerProps.playerId) ? null : `${this.playerProps.playerId}-`;\n\n return prefix && !startsWith(childId, prefix, false) ? prefix + childId : childId;\n }\n\n /**\n * Removes the id prefix from a child id.\n * @param childId - The child id to prefix.\n * @returns - The un-prefixed id or the original id if no prefix was found.\n */\n public removeIdPrefix(childId: string): string {\n const prefix = this.isEmptyOrUndefined(this.playerProps.playerId) ? null : `${this.playerProps.playerId}-`;\n\n return prefix && startsWith(childId, prefix, false) ? childId.substring(prefix.length) : childId;\n }\n\n private _getAudioTracksMenu(): IPlayerMenu | null {\n const audioTracksMenuItems: IPlayerMenuItem[] = [];\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n if (videoMetaData.audioTracks !== undefined && videoMetaData.audioTracks.length > 0) {\n // Check if there are multiple \"Descriptive Audio\" tracks, in which case we will want to show language\n let descriptiveAudioTrackCount = 0;\n for (const track of videoMetaData.audioTracks) {\n if (track.isDescriptiveAudio) {\n descriptiveAudioTrackCount++;\n }\n }\n\n let trackIndex: number = 0;\n for (const audioTrack of videoMetaData.audioTracks) {\n let label: string;\n let languageCode: string = '';\n if (audioTrack.isDescriptiveAudio) {\n // Descriptive audio labels look like:\n // \"Descriptive audio\" -- when only one descriptive audio track exists\n // or\n // \"Descriptive audio - English\" -- if there is more than one descriptive audio track\n const descriptiveAudioLabel = this.localizationHelper.getLocalizedValue(PlayerLocKeys.descriptive_audio);\n if (descriptiveAudioTrackCount > 1) {\n const language = this.localizationHelper.getLanguageNameFromLocale(audioTrack.languageCode);\n label = `${descriptiveAudioLabel} - ${language}`;\n } else {\n label = descriptiveAudioLabel;\n }\n languageCode = `daudio-${audioTrack.languageCode.toLowerCase()}`;\n } else {\n // Regular tracks display language of the stream only.\n label = this.localizationHelper.getLanguageNameFromLocale(audioTrack.languageCode);\n languageCode = audioTrack.languageCode.toLowerCase();\n }\n\n const audioMenuItem: IPlayerMenuItem = {\n label,\n language: languageCode,\n data: audioTrack.url,\n id: this.addIdPrefix(`audio-${trackIndex}`),\n selected: false,\n selectable: true,\n persistOnClick: true\n };\n\n audioTracksMenuItems.push(audioMenuItem);\n trackIndex++;\n }\n\n audioTracksMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks_default),\n ariaLabel: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks_default),\n language: 'default',\n data: 'default',\n selectable: true,\n selected: false,\n persistOnClick: true\n });\n\n audioTracksMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n ariaLabel: `${this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks)} - go back to previous menu`,\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n return {\n category: MenuCategories.AudioTracks,\n id: this.addIdPrefix(MenuCategories.AudioTracks),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n items: audioTracksMenuItems\n };\n }\n return null;\n }\n\n private _clearVideoPlayerMetaData(): void {\n this.playerProps.playerData.metaData.videoFiles = [];\n this.playerProps.playerData.metaData.audioTracks = [];\n this.playerProps.playerData.metaData.ccFiles = [];\n }\n\n private _setCCFiles(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n const ccFiles: ICCFile[] = [];\n if (!(videoMetaData.ccFiles && videoMetaData.ccFiles.length > 0)) {\n if (videoMetaData.videoBinaryReferences && videoMetaData.videoBinaryReferences.length > 0) {\n for (const binaryRef of videoMetaData.videoBinaryReferences) {\n // Skip all other format except ttml/closedcaption\n if (\n (binaryRef.extension && binaryRef.extension === 'ttml') ||\n binaryRef.$type === 'videoClosedCaptionBinaryReference'\n ) {\n const ccFile: ICCFile = {\n ccType: ClosedCaptionTypes.TTML,\n locale: binaryRef.locale!,\n url: binaryRef.sourceHref!\n };\n ccFiles.push(ccFile);\n }\n }\n this.playerProps.playerData.metaData.ccFiles = ccFiles;\n }\n }\n }\n\n private _setAudioTracks(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n const audioTracks: IAudioTrack[] = [];\n if (videoMetaData.videoBinaryReferences && videoMetaData.videoBinaryReferences.length > 0) {\n for (const binaryRef of videoMetaData.videoBinaryReferences) {\n if (binaryRef.$type && binaryRef.$type === 'audioBinaryReference') {\n const audioTrack: IAudioTrack = {\n isDescriptiveAudio: binaryRef.audioType === 'descriptiveAudio',\n bitrate: binaryRef.bitrate!,\n languageCode: binaryRef.locale === undefined ? '' : binaryRef.locale,\n name: binaryRef.alias!,\n url: binaryRef.clientHref!\n };\n audioTracks.push(audioTrack);\n }\n }\n }\n this.playerProps.playerData.metaData.audioTracks = audioTracks;\n }\n\n private _mapVideoFiles(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n if (!videoMetaData.videoFiles || videoMetaData.videoFiles.length === 0) {\n const videoFiles: IVideoFile[] = [];\n const videoBinaryFiles: IBinaryReference[] = videoMetaData.videoBinaryReferences!;\n if (videoBinaryFiles && videoBinaryFiles.length > 0) {\n for (const binaryRef of videoBinaryFiles) {\n if (binaryRef.format) {\n // Skip the unsupported 1001 format\n if (binaryRef.format === '1001') {\n continue;\n }\n\n // Handle all other video/audio format\n const mediaTypeAndQuality = this._getMediaTypeAndQuality(binaryRef.format);\n let urlRef;\n if (mediaTypeAndQuality.mediaType === MediaTypes.MP4) {\n urlRef = binaryRef.clientHref;\n } else {\n urlRef = binaryRef.sourceHref;\n }\n\n if (urlRef) {\n urlRef = this._removeProtocolFromUrl(urlRef);\n }\n\n if (urlRef) {\n videoFiles.push({\n url: urlRef,\n quality: mediaTypeAndQuality.quality,\n mediaType: mediaTypeAndQuality.mediaType,\n formatCode: binaryRef.format\n });\n }\n }\n }\n }\n this.playerProps.playerData.metaData.videoFiles = videoFiles;\n }\n }\n\n /**\n * Gets video quality and media type from stream name.\n * @param format - The stream name.\n * @returns The mediaType and MediaQuality.\n */\n private _getMediaTypeAndQuality(format: string): { mediaType: MediaTypes; quality: MediaQuality } {\n let mType: MediaTypes = MediaTypes.MP4;\n let mQuality: MediaQuality = MediaQuality.SD;\n\n switch (format) {\n case '101':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.LO;\n break;\n case '102':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.SD;\n break;\n case '103':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HQ;\n break;\n case '104':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HDX;\n break;\n case '105':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HD;\n break;\n case '1004':\n mType = MediaTypes.SMOOTH;\n break;\n case '1006':\n mType = MediaTypes.HLS;\n break;\n case '1007':\n mType = MediaTypes.DASH;\n break;\n default:\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.SD;\n }\n\n return {\n mediaType: mType,\n quality: mQuality\n };\n }\n\n /**\n * Removes protocol from url.\n * @param url - The url.\n * @returns The URL.\n */\n private _removeProtocolFromUrl(url: string): string {\n return url.replace(/(^\\w+:|^)\\/\\//, '//');\n }\n\n /**\n * Gets the video file of specified quality.\n * @param quality - The desired quality to look for.\n * @param videoFiles - The video files.\n * @returns Returns the video file.\n */\n private _getVideoFileByQuality(quality: MediaQuality, videoFiles: IVideoFile[]): IVideoFile | null {\n let videoFile = null;\n for (const file of videoFiles) {\n if (file.quality === quality) {\n videoFile = file;\n break;\n }\n }\n\n return videoFile;\n }\n\n /**\n * Gets the video file of specified type.\n * @param mediaType - The media type to look for.\n * @param videoFiles - The video files.\n * @returns Returns the video file.\n */\n private _getVideoFileByType(mediaType: MediaTypes, videoFiles: IVideoFile[]): IVideoFile[] {\n const videoFile: IVideoFile[] = [];\n for (const file of videoFiles) {\n if (file.mediaType === mediaType) {\n videoFile.push(file);\n }\n }\n return videoFile;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport React, { useEffect, useState } from 'react';\n\nexport interface IRatingComponentProps extends IComponentProps<{}> {\n readOnly: boolean;\n ariaLabel: string;\n avgRating: number;\n ratingCount?: string;\n initialRating?: number;\n hideCount?: boolean;\n shouldShowFullRatingDescription?: boolean;\n className?: string;\n ratingCountAriaLabel?: string;\n onChange?(value: number): void;\n}\nexport interface IRatingComponent extends IComponent {\n onSliderChanged(): (\n event: React.ChangeEvent,\n props: IRatingComponentProps,\n setRating: (rating: IRatingState) => void\n ) => void;\n onMouseOver(): (event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void) => void;\n onClick(): (event: React.MouseEvent, props: IRatingComponentProps, setRating: (rating: IRatingState) => void) => void;\n onMouseLeave(): (event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void) => void;\n}\n\ninterface IRatingState {\n rating: number;\n lastSelectedRating: number;\n}\n\nconst roundUpMin: number = 0.75;\nconst roundMidMin: number = 0.25;\nconst maxRating: number = 5;\n\nconst RatingComponentActions = {\n onSliderChanged(\n event: React.ChangeEvent,\n props: IRatingComponentProps,\n setRating: (rating: IRatingState) => void\n ): void {\n const value = Number.parseInt(event.target.value, 10);\n setRating({ rating: value, lastSelectedRating: value });\n\n if (props.onChange) {\n props.onChange(value);\n }\n },\n onMouseLeave(_event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void): void {\n setRating({ rating: rating.lastSelectedRating, lastSelectedRating: rating.lastSelectedRating });\n },\n onMouseOver(event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void): void {\n setRating({ rating: getIndex(event), lastSelectedRating: rating.lastSelectedRating });\n },\n onClick(event: React.MouseEvent, props: IRatingComponentProps, setRating: (rating: IRatingState) => void): void {\n if (!props.readOnly) {\n const index = getIndex(event);\n setRating({ rating: index, lastSelectedRating: index });\n\n if (props.onChange) {\n props.onChange(index);\n }\n }\n }\n};\n\nconst Rating: React.FC = (props: IRatingComponentProps) => {\n const initialRating = props.readOnly ? props.avgRating : props.initialRating || 0;\n const [rating, setRating] = useState({ rating: initialRating, lastSelectedRating: initialRating });\n useEffect(() => {\n const newRating = props.readOnly ? props.avgRating : props.initialRating || 0;\n setRating({ rating: newRating, lastSelectedRating: newRating });\n }, [props]);\n const onChange = (event: React.ChangeEvent) => {\n RatingComponentActions.onSliderChanged(event, props, setRating);\n };\n const onMouseLeave = (event: React.MouseEvent) => {\n RatingComponentActions.onMouseLeave(event, rating, setRating);\n };\n const onMouseOver = (event: React.MouseEvent) => {\n RatingComponentActions.onMouseOver(event, rating, setRating);\n };\n const onClick = (event: React.MouseEvent) => {\n RatingComponentActions.onClick(event, props, setRating);\n };\n\n const shouldShowFullRatingDescriptionConfiguration = props.shouldShowFullRatingDescription ?? false;\n const shouldShowDescription = shouldShowFullRatingDescriptionConfiguration || props.typeName === 'reviews-list';\n\n return (\n
0 ? 'msc-no-ratings' : ''} ${props.className ? props.className : ''}`}>\n {starControl(props.readOnly, rating.rating, props.ariaLabel, props.ratingCountAriaLabel, onChange)}\n
\n {renderStars(rating.rating, props, onMouseOver, onClick)}\n
\n {props.ratingCount && (\n \n {` `}\n {shouldShowDescription ? `${props.avgRating} / 5 (${props.ratingCount})` : props.ratingCount}\n {` `}\n \n )}\n
\n );\n};\n\n// Set default props\nRating.defaultProps = {\n avgRating: 0\n} as Partial;\n\n/**\n * Rating Review ariaLabel.\n * @param readOnly - Boolean.\n * @param currentRating - Current rating number.\n * @param ariaLabel - Rating AriaLabel.\n * @param reviewCountAriaLabel - Product review count.\n * @param onChange - On Change function.\n * @returns Jsx element.\n */\nconst starControl = (\n readOnly: boolean,\n currentRating: number,\n ariaLabel: string,\n reviewCountAriaLabel: string | undefined,\n onChange: (event: React.ChangeEvent) => void\n): JSX.Element => {\n if (readOnly) {\n return
{`${ariaLabel}${reviewCountAriaLabel ? ` ${reviewCountAriaLabel}` : ''}`}
;\n }\n\n return (\n \n );\n};\n\nconst renderStars = (\n rating: number,\n props: IRatingComponentProps,\n mouseOver: (event: React.MouseEvent) => void,\n onClick: (event: React.MouseEvent) => void\n): JSX.Element[] => {\n const floor = Math.floor(rating);\n const remainder = rating - floor;\n const filled = remainder < roundUpMin ? floor : floor + 1;\n const half = roundMidMin <= remainder && remainder < roundUpMin ? filled + 1 : 0;\n const stars = [];\n\n for (let i = 1; i <= maxRating; i++) {\n const glyphClass = filled >= i ? 'msc-rating__star' : half === i ? 'msc-rating__half-star' : 'msc-rating__empty-star'!;\n stars.push(\n \n );\n }\n\n return stars;\n};\n\nconst getIndex = (event: React.MouseEvent): number => {\n const target = event.target as HTMLElement;\n return Number.parseInt(target.getAttribute('data-index')!, 10);\n};\n\n// @ts-expect-error\nexport const RatingComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'Rating',\n { component: Rating, ...RatingComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nexport interface IOrderTemplateProductsPreviewComponentProps {\n className: string;\n products: FullProduct[];\n context: ICoreContext;\n imageSettings?: IImageSettings;\n}\n\nexport const OrderTemplateProductsPreviewComponent = (props: IOrderTemplateProductsPreviewComponentProps) => {\n const { products, className, imageSettings } = props;\n\n return (\n
\n {renderOrderTemplateImages(props.context, `${className}__products`, products, imageSettings)}\n
\n );\n};\n\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: FullProduct, imageSettings?: IImageSettings) => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n
\n \n
\n );\n};\n\nconst renderOrderTemplateImages = (\n context: ICoreContext,\n className: string,\n products: FullProduct[],\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n return (\n
\n
\n
\n {products.length > 0 && renderOrderTemplateImage(context, className, products[0], imageSettings)}\n
\n
\n {products.length > 1 && renderOrderTemplateImage(context, className, products[1], imageSettings)}\n
\n
\n
\n
\n {products.length > 2 && renderOrderTemplateImage(context, className, products[2], imageSettings)}\n
\n
\n {products.length > 3 && renderOrderTemplateImage(context, className, products[3], imageSettings)}\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 * as MsDyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, IPayLoad, ISliderChangeNotification, onTelemetryClick, Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n AgeGate,\n ClosedCaptionHelper,\n ClosedCaptions,\n closedCaptionsSettingDefaults,\n ClosedCaptionTypes,\n format,\n ICCFile,\n ICurrentClosedCaptionsSettings,\n IPlayerMenu,\n IPlayerMenuItemClickNotification,\n IPlayerProps,\n IPlayPosition,\n isNullOrWhiteSpace,\n isSafari,\n IVideoErrorData,\n IVideoErrorMessageData,\n IVideoMetadata,\n KeyCodes,\n LocalizationConstants,\n LocalizationHelper,\n MediaEvents,\n MenuCategories,\n PlayerConstants,\n PlayerHelper,\n PlayerStates,\n PlayPauseTrigger,\n videoClosedCaptionsConstant,\n VideoControls,\n VideoErrorCodes,\n VideoPlayerNames\n} from './components';\n\n/**\n * Player state interface.\n */\nexport interface IPlayerState {\n playing: boolean;\n mouseHovered: boolean;\n isControlPanelVisible: boolean;\n doControlsHaveFocus: boolean;\n playPosition: IPlayPosition;\n currentVolume: number;\n isTriggerEnabled: boolean;\n previousVolume: number;\n isMuted: boolean;\n isInFullScreen: boolean;\n showSpinner: boolean;\n showErrorMessage: boolean;\n videoErrorMessage: IVideoErrorMessageData;\n screenReaderText: string;\n showClosedCaptions: boolean;\n isAgegateEnabled: boolean;\n currentAudioTrack: string;\n currentAudioTrackURL: string;\n closedCaptionLanguage: string;\n closedCaptionsURL: string;\n currentClosedCaptionsSettings: ICurrentClosedCaptionsSettings;\n mounted: boolean;\n tempClosedCaptionsSettings?: {};\n}\n\n/**\n *\n * Player component.\n *\n */\nexport default class Player extends React.Component {\n public static defaultProps: Partial = {\n playerData: {\n options: {\n autoplay: true,\n ageGate: false,\n mute: true,\n loop: false,\n playPauseTrigger: false,\n controls: true,\n hidePosterFrame: false,\n lazyLoad: true\n },\n metaData: {\n playerName: 'videoPlayer',\n videoId: '',\n title: '',\n description: '',\n duration: 0,\n posterframeUrl: '',\n shareUrl: '',\n videoFiles: [],\n externalPlayerUrl: '',\n externalSourceId: '',\n videoBinaryReferences: []\n }\n },\n playerResources: {\n playAriaLabel: LocalizationConstants.playAriaLabel,\n pauseAriaLabel: LocalizationConstants.pauseAriaLabel,\n closeAriaLabel: LocalizationConstants.closeAriaLabel,\n muteAriaLabel: LocalizationConstants.muteAriaLabel,\n unMuteAriaLabel: LocalizationConstants.unMuteAriaLabel,\n fullScreenAriaLabel: LocalizationConstants.fullScreenAriaLabel,\n exitFullScreenAriaLabel: LocalizationConstants.exitFullScreenAriaLabel,\n pausedAriaLabel: LocalizationConstants.pausedAriaLabel,\n playingAriaLabel: LocalizationConstants.playingAriaLabel,\n seekBarLabel: LocalizationConstants.seekBarLabel,\n videoTimeDurationLabel: LocalizationConstants.videoTimeDurationLabel,\n closedCaptionLabel: LocalizationConstants.closedCaptionLabel,\n sliderThumbLabel: LocalizationConstants.sliderThumbLabel,\n volumeThumbLabel: LocalizationConstants.volumeThumbLabel\n }\n };\n\n private controlPanelTimer: number = 0;\n\n private readonly playerId: string;\n\n private readonly player: React.RefObject = React.createRef();\n\n private readonly audio: React.RefObject = React.createRef();\n\n private readonly playerContainer: React.RefObject = React.createRef();\n\n private readonly videoControl: React.RefObject = React.createRef();\n\n private readonly ClosedCaptions: React.RefObject = React.createRef();\n\n private readonly ageGateContainer: React.RefObject = React.createRef();\n\n private videoUrl: string = '';\n\n private posterFrameUrl: string = '';\n\n private seekFrom: number | null = null;\n\n private playerState: PlayerStates;\n\n private readonly playerHelper: PlayerHelper;\n\n private readonly localizationHelper: LocalizationHelper;\n\n private closedCaptionHelper: ClosedCaptionHelper | null = null;\n\n private closedCaptionMenu: IPlayerMenu | null = null;\n\n private optionsMenu: IPlayerMenu | null = null;\n\n private selectedClosedCaptionsLocale: string | null = '';\n\n private isPlayerManuallyPaused: boolean = false;\n\n private isPlayerLoaded: boolean = false;\n\n private playerMetaData: IVideoMetadata;\n\n private readonly isMobileDevice: boolean;\n\n private readonly payLoad: IPayLoad;\n\n private readonly _shouldAutoPlay: boolean;\n\n /**\n * Checks if fullscreen is supported by browser or not.\n * @returns - If native fullscreen enabled.\n */\n private static _isNativeFullscreenEnabled(): boolean {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const doc = document as any;\n return (\n doc.fullscreenEnabled ||\n doc.mozFullScreenEnabled ||\n doc.webkitFullscreenEnabled ||\n doc.webkitSupportsFullscreen ||\n doc.msFullscreenEnabled\n );\n }\n /**\n * Gets the current fullscreen element.\n * @returns - The element in full screen.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _getElementInFullScreen(): any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const doc = document as any;\n return doc.fullscreenElement || doc.mozFullScreenElement || doc.webkitFullscreenElement || doc.msFullscreenElement;\n }\n\n public constructor(props: IPlayerProps) {\n super(props);\n\n const {\n playerData: {\n options: {\n shouldDisableAutoPlayOnMobile,\n autoplay: isAutoPlay,\n playPauseTrigger: isPlayPauseTrigger,\n ageGate: isAgeGateEnabled,\n controls: isControlsEnabled,\n mute: isMuted,\n lazyLoad: isLazyLoaded,\n isMobileDevice\n }\n }\n } = this.props;\n\n this.isMobileDevice = this._isMobile() || isMobileDevice!;\n\n this._shouldAutoPlay = this.isMobileDevice && shouldDisableAutoPlayOnMobile ? false : isAutoPlay!;\n\n const state = {\n playing: false,\n mouseHovered: isPlayPauseTrigger! || !this._shouldAutoPlay,\n isControlPanelVisible: !isPlayPauseTrigger,\n doControlsHaveFocus: false,\n isTriggerEnabled: isPlayPauseTrigger! && !this._shouldAutoPlay && isControlsEnabled!,\n currentVolume: isMuted && !this.isMobileDevice ? 0 : PlayerConstants.defaultVolume * 100,\n previousVolume: 0,\n isMuted: isMuted ?? false,\n isInFullScreen: false,\n showSpinner: false,\n isAgegateEnabled: isAgeGateEnabled! && !this._shouldAutoPlay,\n showErrorMessage: false,\n screenReaderText: '',\n closedCaptionLanguage: 'off',\n currentAudioTrack: 'default',\n currentAudioTrackURL: '',\n showClosedCaptions: false,\n mounted: false,\n currentClosedCaptionsSettings: {\n preset: closedCaptionsSettingDefaults.preset,\n text_font: closedCaptionsSettingDefaults.text_font,\n text_color: closedCaptionsSettingDefaults.text_color,\n text_opacity: closedCaptionsSettingDefaults.text_opacity,\n text_size: closedCaptionsSettingDefaults.text_size,\n text_edge_style: closedCaptionsSettingDefaults.text_edge_style,\n text_background_color: closedCaptionsSettingDefaults.text_background_color,\n text_background_opacity: closedCaptionsSettingDefaults.text_background_opacity,\n window_color: closedCaptionsSettingDefaults.window_color,\n window_opacity: closedCaptionsSettingDefaults.window_opacity\n },\n closedCaptionsURL: '',\n videoErrorMessage: {\n title: '',\n message: ''\n },\n playPosition: {\n currentTime: 0,\n startTime: 0,\n endTime: 0,\n bufferedDuration: 0\n },\n tempClosedCaptionsSettings: undefined\n };\n\n this.playerState = 'init';\n this._onTriggerClicked = this._onTriggerClicked.bind(this);\n this._onMouseEvent = this._onMouseEvent.bind(this);\n this._onPlay = this._onPlay.bind(this);\n this._onPause = this._onPause.bind(this);\n this._triggerEvents = this._triggerEvents.bind(this);\n this._triggerAudioEvents = this._triggerAudioEvents.bind(this);\n this._onProgressChange = this._onProgressChange.bind(this);\n this._setMuted = this._setMuted.bind(this);\n this._onVolumeChange = this._onVolumeChange.bind(this);\n this._onFullScreenChanged = this._onFullScreenChanged.bind(this);\n this._toggleFullScreen = this._toggleFullScreen.bind(this);\n this._showControlBar = this._showControlBar.bind(this);\n this._handleControlsKeyDownEvent = this._handleControlsKeyDownEvent.bind(this);\n this._onFullscreenError = this._onFullscreenError.bind(this);\n this._onPlayerKeyDown = this._onPlayerKeyDown.bind(this);\n this._onTriggerFocus = this._onTriggerFocus.bind(this);\n this._onTriggerBlur = this._onTriggerBlur.bind(this);\n this._onVideoControlsFocus = this._onVideoControlsFocus.bind(this);\n this._onVideoControlsBlur = this._onVideoControlsBlur.bind(this);\n this._onPlayerMenuItemClick = this._onPlayerMenuItemClick.bind(this);\n this._onPlayerMenuItemFocus = this._onPlayerMenuItemFocus.bind(this);\n this._onPlayerMenuItemBlur = this._onPlayerMenuItemBlur.bind(this);\n this._validateAgeSubmitHandler = this._validateAgeSubmitHandler.bind(this);\n this._onContextMenuClicked = this._onContextMenuClicked.bind(this);\n this.localizationHelper = new LocalizationHelper(this.props.playerResources!);\n this.playerHelper = new PlayerHelper(this.props, this.localizationHelper, this.isMobileDevice);\n this.playerId = this.playerHelper.isEmptyOrUndefined(this.props.playerId) ? 'vid-0' : this.props.playerId!;\n this.playerMetaData = this.playerHelper.getMetadata();\n this.state = state;\n this.posterFrameUrl = this.playerHelper.getPosterFrameUrl();\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, '');\n\n if (!isLazyLoaded) {\n this.videoUrl = this.playerHelper.getVideoFileToPlay().url;\n }\n }\n\n public shouldComponentUpdate(nextProps: IPlayerProps, nextState: IPlayerState): boolean {\n if (this.state === nextState && this.props.playerData.options === nextProps.playerData.options) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const {\n playerData: {\n options: { loop: isLoop }\n }\n } = this.props;\n\n const maskLevelStyle: React.CSSProperties = {};\n maskLevelStyle.backgroundColor = this._getMaskLevelStyle();\n\n if (this.props.isEditor) {\n this.playerHelper.updatePlayerProps(this.props);\n this.playerMetaData = this.playerHelper.getMetadata();\n if (this.posterFrameUrl !== this.playerHelper.getPosterFrameUrl()) {\n this.posterFrameUrl = this.playerHelper.getPosterFrameUrl();\n }\n if (this.isPlayerLoaded && this.videoUrl !== this.playerHelper.getVideoFileToPlay().url) {\n this._loadPlayer();\n }\n }\n\n const loadMetaData = this._shouldAutoPlay ? 'auto' : 'metadata';\n\n // Set play aria label\n let playAriaLabel: string = '';\n if (this.playerMetaData.title) {\n playAriaLabel = `${this.localizationHelper.getLocalizedValue('playAriaLabel')} ${this.playerMetaData.title}`;\n } else {\n playAriaLabel = LocalizationConstants.playVideoAriaLabel;\n }\n\n return (\n \n
\n {this.state.currentAudioTrack !== '' && this.state.currentAudioTrackURL !== '' && (\n \n )}\n
\n
\n {this.state.screenReaderText}\n
\n \n \n \n {this.props.playerData.options.ageGate && this._renderAgeGate()}\n {this._renderPlayPauseTrigger(playAriaLabel, maskLevelStyle)}\n {this.state.showClosedCaptions && this._renderClosedCaptions()}\n {this._renderVideoControls(playAriaLabel)}\n \n \n );\n }\n\n /**\n * Play the video.\n */\n public play(): void {\n this.player.current!.play().catch(() => {\n this._onVideoError();\n });\n if (this.audio.current) {\n this.audio.current.play().catch(() => {\n this._onAudioError();\n });\n }\n }\n\n /**\n * Pause the video.\n */\n public pause(): void {\n this.player.current!.pause();\n if (this.audio.current) {\n this.audio.current.pause();\n }\n }\n\n public componentDidMount(): void {\n const {\n playerData: {\n options: { playPauseTrigger: isPlayPauseTrigger, lazyLoad: isLazyLoaded }\n }\n } = this.props;\n if (!isLazyLoaded) {\n this._onVideoLoadedData();\n this._showControlBar(false);\n }\n\n if (this._shouldAutoPlay || (isLazyLoaded && !isPlayPauseTrigger) || !isLazyLoaded) {\n this._loadPlayer();\n }\n document.addEventListener('fullscreenchange', this._onFullScreenChanged);\n document.addEventListener('mozfullscreenchange', this._onFullScreenChanged);\n document.addEventListener('webkitfullscreenchange', this._onFullScreenChanged);\n document.addEventListener('MSFullscreenChange', this._onFullScreenChanged);\n\n document.addEventListener('fullscreenerror', this._onFullscreenError);\n document.addEventListener('mozfullscreenerror', this._onFullscreenError);\n document.addEventListener('webkitfullscreenerror', this._onFullscreenError);\n document.addEventListener('MSFullscreenError', this._onFullscreenError);\n }\n\n public componentWillUnmount(): void {\n if (this.player.current) {\n for (const mediaEvent of MediaEvents) {\n this.player.current.removeEventListener(mediaEvent, this._triggerEvents);\n }\n }\n document.removeEventListener('fullscreenchange', this._onFullScreenChanged);\n document.removeEventListener('mozfullscreenchange', this._onFullScreenChanged);\n document.removeEventListener('webkitfullscreenchange', this._onFullScreenChanged);\n document.removeEventListener('MSFullscreenChange', this._onFullScreenChanged);\n\n document.removeEventListener('fullscreenerror', this._onFullscreenError);\n document.removeEventListener('mozfullscreenerror', this._onFullscreenError);\n document.removeEventListener('webkitfullscreenerror', this._onFullscreenError);\n document.removeEventListener('MSFullscreenError', this._onFullscreenError);\n }\n\n /**\n * Renders closed captions.\n * @returns Returns closed captions.\n */\n private readonly _renderClosedCaptions = (): JSX.Element => {\n return (\n \n );\n };\n\n /**\n * Renders the play pause trigger.\n * @param playAriaLabel - Aria label for the play button.\n * @param maskLevelStyle - Mask level.\n * @returns Returns play pause trigger.\n */\n private readonly _renderPlayPauseTrigger = (playAriaLabel: string, maskLevelStyle: React.CSSProperties): JSX.Element | undefined => {\n const {\n playerData: {\n options: {\n autoplay: shouldAutoPlay,\n playPauseTrigger: isPlayPauseTrigger,\n controls: isControlsEnabled,\n shouldDisableAutoPlayOnMobile\n }\n }\n } = this.props;\n\n if (!MsDyn365.msdyn365Commerce.isBrowser && isPlayPauseTrigger && shouldAutoPlay && shouldDisableAutoPlayOnMobile) {\n // Rendering an empty div because on server side isMobile will be false at server side.\n return
;\n }\n\n if (isPlayPauseTrigger && (!isControlsEnabled || this.state.isTriggerEnabled) && !this.state.isAgegateEnabled) {\n return (\n \n );\n }\n\n return undefined;\n };\n\n /**\n * Renders the video controls.\n * @param playAriaLabel - Arial label for the play button.\n * @returns Returns the video control.\n */\n private readonly _renderVideoControls = (playAriaLabel: string): JSX.Element | undefined => {\n const {\n playerData: {\n options: { controls: isControlsEnabled }\n }\n } = this.props;\n\n if (isControlsEnabled && !this.state.isTriggerEnabled && !this.state.isAgegateEnabled) {\n return (\n \n );\n }\n return undefined;\n };\n\n /**\n * Renders the age gate module.\n * @returns Renders the age gate module.\n */\n private readonly _renderAgeGate = (): JSX.Element => {\n return (\n \n );\n };\n\n private _loadPlayer(): void {\n if (this.player.current) {\n this.player.current.volume = this.state.currentVolume / 100;\n\n // Register the media events\n for (const mediaEvent of MediaEvents) {\n this.player.current.addEventListener(mediaEvent, this._triggerEvents);\n }\n }\n\n if (this.props.playerData.options.lazyLoad || this.props.isEditor) {\n this.videoUrl = this.playerHelper.getVideoFileToPlay().url;\n if (this.player.current) {\n this.player.current.src = this.videoUrl;\n this.player.current.load();\n }\n }\n\n this.isPlayerLoaded = true;\n\n if (this.props.playerData.options.controls) {\n this.closedCaptionHelper = new ClosedCaptionHelper(this.playerMetaData, this.playerHelper, this.localizationHelper);\n this.closedCaptionMenu = this.closedCaptionHelper.getClosedCaptionMenu()!;\n this.optionsMenu = this.playerHelper.getOptionMenu();\n const ccFiles = this.playerMetaData.ccFiles!;\n if (ccFiles !== undefined && ccFiles.length > 0) {\n const autoCaptionsLang = this.props.playerData && this.props.playerData.options.autoCaptions;\n let autoCaptionsLocale: string | null = null;\n for (const ccFile of ccFiles) {\n if (!autoCaptionsLocale && autoCaptionsLang && ccFile.locale.includes(autoCaptionsLang)) {\n autoCaptionsLocale = ccFile.locale;\n }\n }\n this.selectedClosedCaptionsLocale = autoCaptionsLocale;\n if (!isNullOrWhiteSpace(this.selectedClosedCaptionsLocale!)) {\n this.setState({\n closedCaptionLanguage: this.selectedClosedCaptionsLocale!,\n closedCaptionsURL: this.closedCaptionHelper.getClosedCaptionURLFromLocale(this.selectedClosedCaptionsLocale!),\n showClosedCaptions: true\n });\n }\n }\n }\n }\n\n /**\n * Validates the age submitted by the user.\n */\n private _validateAgeSubmitHandler(): void {\n if (this.ageGateContainer.current!.getCalculatedAge()) {\n this.videoUrl = this.playerHelper.getVideoFileToPlay().url;\n this.setState({ isAgegateEnabled: false });\n } else {\n this.setState({ isAgegateEnabled: true });\n this._displayErrorMessage({ title: 'you are not allowed to watch video' });\n }\n }\n\n private _onVideoControlsFocus(): void {\n // No need to call showControlBar, this will make sure it shows\n this.setState({ doControlsHaveFocus: true });\n }\n\n private _onVideoControlsBlur(): void {\n // Call showControlBar to give it the 6 second timeout\n this._showControlBar(true);\n\n this.setState({ doControlsHaveFocus: false });\n }\n\n private _onPlayerMenuItemFocus(notification: IPlayerMenuItemClickNotification): void {\n if (notification.data && notification.data.indexOf(':') > 0) {\n const dataSplit = notification.data.split(':');\n const settingKey = dataSplit[0];\n if (settingKey === videoClosedCaptionsConstant.presetKey) {\n if (this.state.closedCaptionLanguage === 'off') {\n this.setState(\n {\n showClosedCaptions: true\n },\n () => {\n this.ClosedCaptions.current!.showSampleCaptions();\n this._setCCSettings(notification, false);\n }\n );\n } else {\n this._setCCSettings(notification, false);\n }\n }\n } else if (this.state.closedCaptionLanguage === 'off') {\n this.setState({\n showClosedCaptions: false\n });\n }\n }\n\n private _onPlayerMenuItemBlur(): void {\n this._setCCSettings({\n category: MenuCategories.ClosedCaptionSettings,\n id: '',\n data: 'current'\n });\n }\n\n private _onPlayerMenuItemClick(notification: IPlayerMenuItemClickNotification): void {\n switch (notification.category) {\n case MenuCategories.ClosedCaption: {\n this._setCC(notification.id);\n break;\n }\n\n case MenuCategories.ClosedCaptionSettings: {\n this._setCCSettings(notification);\n break;\n }\n\n case MenuCategories.AudioTracks: {\n this._setAudioTracks(notification);\n break;\n }\n default:\n }\n }\n\n /**\n * Sets the close captioning language/locale.\n * @param ccLanguageId - The desired new cc value.\n */\n private _setCC(ccLanguageId: string): void {\n ccLanguageId = this.playerHelper.removeIdPrefix(ccLanguageId);\n let selectedOption: ICCFile | null = null;\n\n if (ccLanguageId && this.playerMetaData.ccFiles) {\n for (const ccFile of this.playerMetaData.ccFiles) {\n if (ccFile.locale === ccLanguageId && (!ccFile.ccType || ccFile.ccType === ClosedCaptionTypes.TTML)) {\n selectedOption = ccFile;\n break;\n }\n }\n }\n\n if (ccLanguageId === 'off') {\n this.setState({\n closedCaptionLanguage: 'off',\n closedCaptionsURL: '',\n showClosedCaptions: false\n });\n } else {\n this.setState({\n closedCaptionLanguage: selectedOption!.locale,\n closedCaptionsURL: selectedOption!.url,\n showClosedCaptions: true\n });\n }\n }\n\n /**\n * Sets the close caption settings.\n * @param notification - The desired new cc value.\n * @param updatePreferences - Update Preferences.\n */\n private _setCCSettings(notification: IPlayerMenuItemClickNotification, updatePreferences?: boolean): void {\n if (notification.data === 'reset') {\n this.setState(\n {\n currentClosedCaptionsSettings: closedCaptionsSettingDefaults\n },\n () => {\n if (this.ClosedCaptions.current !== null) {\n this.ClosedCaptions.current.applySettings();\n this.ClosedCaptions.current.resetCaptions();\n this.ClosedCaptions.current.updateCaptions(this.state.playPosition.currentTime);\n }\n }\n );\n } else if (notification.data === 'current') {\n this.setState({\n tempClosedCaptionsSettings: undefined\n });\n\n if (this.state.closedCaptionLanguage === 'off') {\n this.setState({\n showClosedCaptions: false\n });\n }\n } else {\n const dataSplit = notification.data!.split(':');\n if (!dataSplit) {\n return;\n }\n const settingKey = dataSplit[0];\n const optionKey = dataSplit[1];\n const currentSetting = this.closedCaptionHelper!.getUpdatedClosedCaptionSetting(\n this.state.currentClosedCaptionsSettings,\n settingKey,\n optionKey\n );\n if (updatePreferences === undefined || updatePreferences) {\n this.setState(\n {\n tempClosedCaptionsSettings: undefined,\n currentClosedCaptionsSettings: currentSetting\n },\n () => {\n if (this.ClosedCaptions.current) {\n this.ClosedCaptions.current.applySettings();\n this.ClosedCaptions.current.resetCaptions();\n this.ClosedCaptions.current.updateCaptions(this.state.playPosition.currentTime);\n }\n }\n );\n } else {\n this.setState({\n tempClosedCaptionsSettings: currentSetting\n });\n }\n }\n }\n\n private _setAudioTracks(notification: IPlayerMenuItemClickNotification): void {\n const data = JSON.parse(notification.data!);\n if (data.lang === 'default') {\n this.setState(\n {\n currentAudioTrack: 'default',\n currentAudioTrackURL: ''\n },\n () => {\n this.player.current!.volume = this.state.currentVolume / 100;\n }\n );\n } else {\n this.setState(\n {\n currentAudioTrack: data.lang,\n currentAudioTrackURL: data.url\n },\n () => {\n this.audio.current!.currentTime = this.player.current!.currentTime;\n this.audio.current!.volume = this.state.currentVolume / 100;\n this.player.current!.volume = 0;\n if (!this.player.current!.paused) {\n this.audio.current!.load();\n for (const mediaEvent of MediaEvents) {\n this.audio.current!.addEventListener(mediaEvent, this._triggerAudioEvents);\n }\n }\n }\n );\n }\n }\n\n private _triggerAudioEvents(event: Event): void {\n switch (event.type.toLowerCase()) {\n case 'error':\n this._onAudioError();\n break;\n case 'waiting':\n if (this.playerState === 'playing') {\n this.isPlayerManuallyPaused = true;\n this.pause();\n }\n break;\n\n case 'loadeddata':\n if (this.isPlayerManuallyPaused) {\n this.isPlayerManuallyPaused = false;\n this.play();\n }\n if (!this.player.current!.paused) {\n this.play();\n }\n break;\n\n default:\n }\n }\n\n private _triggerEvents(event: Event): void {\n switch (event.type.toLowerCase()) {\n case 'canplay':\n case 'canplaythrough':\n break;\n\n case 'error':\n this._onVideoError();\n break;\n\n case 'play':\n break;\n\n case 'pause':\n this._updateState('paused');\n if (this.props.playerData.options.playPauseTrigger) {\n this.setState({\n mouseHovered: true\n });\n }\n break;\n\n case 'seeking':\n if (this.playerState !== 'ended' && this.player.current!.seeking) {\n this.seekFrom = this.player.current!.currentTime;\n this._updateState('seeking');\n }\n break;\n\n case 'seeked':\n const currentPlayer = this.player.current;\n const currentTime = currentPlayer!.currentTime;\n if (this.playerState !== 'ended' && this.player.current!.seeking && this.seekFrom !== currentTime) {\n this.seekFrom = null;\n }\n this._updateState(currentPlayer!.paused ? 'paused' : 'playing');\n break;\n\n case 'waiting':\n this._updateState('buffering');\n break;\n\n case 'loadedmetadata':\n break;\n\n case 'loadeddata':\n this._onVideoLoadedData();\n if (!this._shouldAutoPlay) {\n this._showControlBar(false);\n }\n break;\n\n case 'timeupdate':\n this._onTimeUpdate();\n break;\n\n case 'ended':\n this._updateState('ended');\n this._stop();\n break;\n\n case 'playing':\n this._updateState('playing');\n break;\n\n case 'volumechange':\n break;\n\n default:\n }\n }\n\n private _onAudioError(): void {\n this.pause();\n const errorMessage: IVideoErrorMessageData = { title: 'Error while playing audio Track. Switching back to default track' };\n this._displayErrorMessage(errorMessage);\n this._setAudioTracks({ category: 'audioTracks', data: '{ \"lang\": \"default\", \"url\": \"\"}', id: '' });\n setTimeout(() => {\n this.setState(\n {\n showErrorMessage: false\n },\n () => {\n this.play();\n }\n );\n }, 2000);\n }\n\n private _onVideoError(): void {\n this._updateState('error');\n const error: IVideoErrorData | null = this._getError();\n let errorMessage = '';\n if (error?.errorCode) {\n switch (error.errorCode) {\n case VideoErrorCodes.MediaErrorAborted:\n errorMessage = 'video playback was aborted';\n break;\n case VideoErrorCodes.MediaErrorNetwork:\n errorMessage = 'video failed to download';\n break;\n case VideoErrorCodes.MediaErrorDecode:\n errorMessage = 'video is not readable';\n break;\n case VideoErrorCodes.MediaErrorSourceNotSupported:\n errorMessage = 'video format is not supported';\n break;\n default:\n errorMessage = 'unknown error occurred';\n }\n\n this._stopMedia(errorMessage);\n } else {\n this._stopMedia();\n }\n }\n\n private _stopMedia(msgToDisplay?: string): void {\n if (msgToDisplay) {\n this._displayErrorMessage({ title: msgToDisplay });\n this._updateState('stopped');\n }\n }\n\n /**\n * Create an error message overlay.\n * @param errorMessage - Error message content.\n */\n private _displayErrorMessage(errorMessage: IVideoErrorMessageData): void {\n this.setState({ videoErrorMessage: { title: errorMessage.title, message: errorMessage.message } });\n this.setState({ showErrorMessage: true });\n }\n\n /**\n * Gets the video error code of the current error.\n * @returns : Returns the video error code.\n */\n private _getError(): IVideoErrorData | null {\n let contentErrorCode: VideoErrorCodes;\n if (this.player.current!.error) {\n // Video playback failed - show a message saying why\n switch (this.player.current!.error.code) {\n case this.player.current!.error.MEDIA_ERR_ABORTED:\n contentErrorCode = VideoErrorCodes.MediaErrorAborted;\n break;\n case this.player.current!.error.MEDIA_ERR_NETWORK:\n contentErrorCode = VideoErrorCodes.MediaErrorNetwork;\n break;\n case this.player.current!.error.MEDIA_ERR_DECODE:\n contentErrorCode = VideoErrorCodes.MediaErrorDecode;\n break;\n case this.player.current!.error.MEDIA_ERR_SRC_NOT_SUPPORTED:\n contentErrorCode = VideoErrorCodes.MediaErrorSourceNotSupported;\n break;\n default:\n contentErrorCode = VideoErrorCodes.MediaErrorUnknown;\n }\n return { errorCode: contentErrorCode };\n }\n return null;\n }\n\n private _handleControlsKeyDownEvent(e: React.KeyboardEvent): void {\n const keyBrdEvent = (e as unknown) as KeyboardEvent;\n const keycode = keyBrdEvent.keyCode;\n this._showControlBar(true);\n\n // Const castTarget = e.target as HTMLElement;\n\n switch (keycode) {\n case KeyCodes.Home:\n e.stopPropagation();\n e.preventDefault();\n this.player.current!.currentTime = 0;\n if (this.audio.current) {\n this.audio.current.currentTime = 0;\n }\n break;\n case KeyCodes.End:\n e.stopPropagation();\n e.preventDefault();\n this.player.current!.currentTime = this.state.playPosition.endTime;\n if (this.audio.current) {\n this.audio.current.currentTime = this.state.playPosition.endTime;\n }\n break;\n case KeyCodes.ArrowLeft:\n case KeyCodes.ArrowRight:\n e.stopPropagation();\n e.preventDefault();\n let jumpToTime =\n keycode === KeyCodes.ArrowLeft\n ? this.state.playPosition.currentTime - PlayerConstants.defaultVideoSliderSteps\n : this.state.playPosition.currentTime + PlayerConstants.defaultVideoSliderSteps;\n jumpToTime = Math.min(Math.max(this.state.playPosition.startTime, jumpToTime), this.state.playPosition.endTime);\n this.player.current!.currentTime = jumpToTime;\n if (this.audio.current) {\n this.audio.current.currentTime = jumpToTime;\n }\n break;\n case KeyCodes.ArrowUp:\n case KeyCodes.ArrowDown:\n e.stopPropagation();\n e.preventDefault();\n this.videoControl.current!.showVolumeControl(true).call(this);\n const volume =\n keycode === KeyCodes.ArrowDown\n ? Math.max((this.state.currentVolume - PlayerConstants.defaultVolumeSliderSteps) / 100, 0)\n : Math.min((this.state.currentVolume + PlayerConstants.defaultVolumeSliderSteps) / 100, 1);\n this.setState({ currentVolume: Math.round(volume * 100) });\n if (this.audio.current) {\n this.audio.current.volume = volume;\n } else {\n this.player.current!.volume = volume;\n }\n if (volume === 0) {\n this.setState({ isMuted: true });\n } else {\n this.setState({ isMuted: false });\n }\n break;\n default:\n }\n }\n\n private _onPlay(): void {\n this.setState({ playing: true });\n }\n\n private _onPause(): void {\n this.setState({ playing: false });\n }\n\n private _onVolumeChange(notification: ISliderChangeNotification): void {\n this.setState({ currentVolume: notification.firstThumbValue });\n if (this.audio.current) {\n this.audio.current.volume = notification.firstThumbValue / 100;\n } else {\n this.player.current!.volume = notification.firstThumbValue / 100;\n }\n\n if (notification.firstThumbValue === 0) {\n this.setState({ isMuted: true });\n } else if (this.state.isMuted && notification.firstThumbValue > 0) {\n this.setState({ isMuted: false });\n }\n }\n\n private _setMuted(): void {\n if (this.state.isMuted) {\n const newVolume = this.state.previousVolume === 0 ? PlayerConstants.defaultVolume * 100 : this.state.previousVolume;\n\n if (this.audio.current) {\n this.audio.current.volume = newVolume / 100;\n } else {\n this.player.current!.volume = newVolume / 100;\n }\n this.setState({ isMuted: false, currentVolume: newVolume });\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('unMuteAriaLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.unMuteAriaLabel).call(this);\n } else {\n this.setState({ isMuted: true, previousVolume: this.player.current!.volume * 100, currentVolume: 0 });\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('muteAriaLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.muteAriaLabel).call(this);\n }\n }\n\n private _onPlayerKeyDown(e: React.KeyboardEvent): void {\n const keyBrdEvent = (e as unknown) as KeyboardEvent;\n const keycode = keyBrdEvent.keyCode;\n\n if (keycode === KeyCodes.Tab) {\n this._showControlsBasedOnState();\n }\n }\n\n private _onMouseEvent(event: React.MouseEvent): void {\n if (this.props.playerData.options.controls) {\n this._showControlBar();\n }\n if (!this.state.isTriggerEnabled && this.state.playing) {\n this.setState({ mouseHovered: event.type === 'mouseenter' });\n }\n }\n\n private _showControlBar(autoHide: boolean = true): void {\n if (!this.state.isTriggerEnabled && !this.state.isAgegateEnabled) {\n if (!this.state.isControlPanelVisible) {\n this.setState({ isControlPanelVisible: true });\n }\n if (this.controlPanelTimer) {\n window && window.clearTimeout(this.controlPanelTimer);\n this.controlPanelTimer = 0;\n }\n if (autoHide) {\n this.controlPanelTimer =\n window &&\n window.setTimeout(() => {\n this._hideControlBar();\n }, PlayerConstants.defaultControlPanelTimeout);\n }\n }\n }\n\n private _hideControlBar(): void {\n window && window.clearTimeout(this.controlPanelTimer);\n this.controlPanelTimer = 0;\n this.setState({ isControlPanelVisible: false });\n }\n\n private _onFullScreenChanged(): void {\n this.state.isInFullScreen ? this._onFullscreenExit() : this._onFullscreenEnter();\n }\n\n /**\n * Event handler for fullscreen enter.\n */\n private _onFullscreenEnter(): void {\n this.setState({\n isInFullScreen: true\n });\n }\n\n /**\n * Event handler for fullscreen exit.\n */\n private _onFullscreenExit(): void {\n this.setState({\n isInFullScreen: false\n });\n }\n\n private _toggleFullScreen(): void {\n this.state.isInFullScreen ? this._exitFullScreen() : this._enterFullScreen();\n }\n\n private _onFullscreenError(): void {\n this.setState({\n isInFullScreen: false\n });\n }\n\n private _enterFullScreen(): void {\n if (!Player._isNativeFullscreenEnabled()) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fullscreenElement = this.playerContainer.current! as any;\n const elementInFullScreen = Player._getElementInFullScreen();\n\n // We go to fullscreen only when there is no other element in fullscreen and browser supports fullscreen\n if (fullscreenElement && !elementInFullScreen) {\n const enterFullScreen =\n fullscreenElement.requestFullscreen ||\n fullscreenElement.msRequestFullscreen ||\n fullscreenElement.mozRequestFullScreen ||\n fullscreenElement.webkitRequestFullscreen ||\n fullscreenElement.webkitEnterFullScreen;\n\n enterFullScreen.call(fullscreenElement);\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('fullScreenLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.fullScreenAriaLabel).call(this);\n }\n }\n\n private _exitFullScreen(): void {\n if (!Player._isNativeFullscreenEnabled()) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fullscreenElement = this.playerContainer.current! as any;\n const elementInFullScreen = Player._getElementInFullScreen();\n\n // We only call cancel if we are in fullscreen. If another element went fullscreen that took the player with it then\n // we shouldn't call cancel fullscreen\n if (fullscreenElement && fullscreenElement === elementInFullScreen) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const doc = document as any;\n const cancelFullScreen = doc.cancelFullScreen || doc.msExitFullscreen || doc.mozCancelFullScreen || doc.webkitCancelFullScreen;\n\n cancelFullScreen.call(doc);\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('exitFullScreenLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.exitFullScreenAriaLabel).call(this);\n }\n }\n\n private _onVideoLoadedData(): void {\n this._updateState('ready');\n if (this.props.playerData.options.controls) {\n const position = this._getPlayPosition();\n this.setState({ playPosition: position });\n }\n }\n\n private _onTimeUpdate(): void {\n if (this.props.playerData.options.controls) {\n const position = this._getPlayPosition();\n\n // EndTime changes after playing video for certain time. Keeping this constant.\n position.endTime = this.state.playPosition.endTime;\n this.setState({ playPosition: position });\n if (this.state.playing) {\n if (this.playerState === 'buffering') {\n this._updateState('playing');\n }\n }\n }\n }\n\n private _getBufferedDuration(): number {\n let buffered = 0;\n if (this.player.current!.buffered && this.player.current!.buffered.length) {\n buffered = this.player.current!.buffered.end(this.player.current!.buffered.length - 1);\n }\n return buffered;\n }\n\n private _getPlayPosition(): IPlayPosition {\n const bufferedDuration = this._getBufferedDuration();\n return {\n currentTime: this.player.current!.currentTime,\n startTime: 0,\n endTime: this.player.current!.duration,\n bufferedDuration\n };\n }\n\n private _onProgressChange(notification: ISliderChangeNotification): void {\n let time = notification.firstThumbValue;\n const position = this._getPlayPosition();\n time = Math.max(position.startTime, Math.min(time, position.endTime));\n\n if (Math.abs(time - position.currentTime) >= PlayerConstants.defaultPositionUpdateThreshold) {\n this.player.current!.currentTime = time;\n if (this.audio.current) {\n this.audio.current.currentTime = time;\n }\n }\n }\n\n private _onTriggerClicked(): void {\n const currentPlayer = this.player.current;\n if (!this.isPlayerLoaded) {\n this._loadPlayer();\n this.player.current!.autoplay = true;\n } else if (currentPlayer!.paused) {\n this.play();\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('playingAriaLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.playAriaLabel).call(this);\n if (this.videoControl.current) {\n this.videoControl.current.setFocusOnPause();\n }\n } else {\n this.pause();\n this._updateScreenReaderElement(this.localizationHelper.getLocalizedValue('pausedAriaLabel'));\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.pauseAriaLabel).call(this);\n if (this.videoControl.current) {\n this.videoControl.current.setFocusOnPlay();\n }\n }\n\n if (this.state.isTriggerEnabled) {\n this.setState({ isTriggerEnabled: false }, () => {\n setTimeout(() => {\n if (this.videoControl.current) {\n this.videoControl.current.setFocusOnPause();\n }\n }, 500);\n });\n onTelemetryClick(this.props.telemetryContent!, this.payLoad, LocalizationConstants.pauseAriaLabel).call(this);\n if (this.props.playerData.options.playFullScreen) {\n this._enterFullScreen();\n }\n }\n }\n\n private _stop(): void {\n const videoStartingTime: number = 0.1;\n if (isSafari()) {\n // Safari browser has issues with showing the poster frame of the video when ended. So setting the same to 0.1 seconds.\n this._seek(videoStartingTime);\n } else {\n this._seek(0);\n }\n\n if (this.props.playerData.options.controls) {\n this.pause();\n const playPosition = this._getPlayPosition();\n playPosition.endTime = this.state.playPosition.endTime;\n this.setState({ playPosition });\n if (this.audio.current) {\n this.audio.current.pause();\n }\n }\n }\n\n private _seek(time: number): void {\n const position = this._getPlayPosition();\n time = Math.max(position.startTime, Math.min(time, position.endTime));\n\n if (Math.abs(time - position.currentTime) >= PlayerConstants.defaultPositionUpdateThreshold) {\n this.seekFrom = position.currentTime;\n this.player.current!.currentTime = time;\n if (this.audio.current) {\n this.audio.current.currentTime = time;\n }\n }\n }\n\n /**\n * Returns the mask level style.\n * @returns Returns the mask level style.\n */\n private _getMaskLevelStyle(): string {\n let result: string = '';\n if (this.state.isTriggerEnabled) {\n const maskLevel = this.props.playerData.options.maskLevel || PlayerConstants.defaultMaskLevel;\n result = format('rgba(0,0,0,{0})', Number(maskLevel) / 100);\n }\n return result;\n }\n\n /**\n * Updates the current player state.\n * @param newState - Player state.\n */\n private _updateState(newState: PlayerStates): void {\n if (!newState || newState === this.playerState) {\n return;\n }\n\n this.playerState = newState;\n\n this._showControlsBasedOnState();\n this._showSpinnerBasedOnState();\n }\n\n /**\n * Shows or hides the spinner based on player state.\n */\n private _showSpinnerBasedOnState(): void {\n switch (this.playerState) {\n case 'ready':\n case 'playing':\n case 'paused':\n case 'ended':\n case 'stopped':\n case 'error':\n this._hideSpinner();\n break;\n default:\n this._showSpinner();\n }\n }\n\n /**\n * Shows or hides the player controls based on player state.\n */\n private _showControlsBasedOnState(): void {\n switch (this.playerState) {\n case 'error':\n case 'loading':\n case 'init':\n this._hideControlBar();\n break;\n case 'ended':\n this._showControlBar(false);\n break;\n case 'ready':\n case 'paused':\n case 'stopped':\n this._showControlBar(false);\n break;\n default:\n this._showControlBar(true);\n }\n }\n\n private _hideSpinner(): void {\n this.setState({ showSpinner: false });\n }\n\n private _showSpinner(): void {\n this.setState({ showSpinner: true });\n }\n\n /**\n * Play Trigger focus event.\n */\n private _onTriggerFocus(): void {\n this.setState({ mouseHovered: true });\n }\n\n /**\n * Play Trigger Blur event.\n */\n private _onTriggerBlur(): void {\n if (!this.state.isTriggerEnabled && this.state.playing) {\n this.setState({ mouseHovered: false });\n }\n }\n\n /**\n * Updates the screen reader element.\n * @param text - Update the screen reader element with the pased text.\n */\n private _updateScreenReaderElement(text: string): void {\n this.setState({\n screenReaderText: text\n });\n }\n\n /**\n * Avoid opening context menu on righ click.\n * @param e - Mouse Event.\n */\n private _onContextMenuClicked(e: React.MouseEvent): void {\n e.preventDefault();\n }\n\n /**\n * Check for mobile devices.\n * @returns - Return true or false.\n */\n private _isMobile(): boolean {\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n const userAgent = window.navigator.userAgent;\n const isIphone = !!userAgent.match(/iphone/i);\n const isSilk = !!userAgent.match(/silk/i);\n const isWindowsPhone = !!userAgent.match(/windows phone/i);\n const isAndroid = !isWindowsPhone && (isSilk || !!userAgent.match(/android/i));\n return isIphone || isWindowsPhone || isAndroid;\n }\n return false;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n getCatalogId,\n IComponent,\n IComponentProps,\n IGridSettings,\n IImageSettings,\n msdyn365Commerce,\n TelemetryEvent\n} from '@msdyn365-commerce/core';\nimport { getCartState, ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\nimport {\n CartLineValidationResults,\n CartsDataActions,\n format,\n ProductAvailableQuantity,\n ProductDimension,\n ProductPrice,\n ProductsDataActions,\n ProductSearchCriteria,\n ProductType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ErrorNotification, NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, generateProductImageUrl, ObjectExtensions, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, IPopupProps, ITelemetryContent, Popup } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { PriceComponent } from '../price';\nimport { IItemsAddedToCartResources } from './items-added-to-cart';\nimport { ItemsAddedToCartDialogComponent } from './items-added-to-cart-dialog-component';\nimport { ItemSuccessfullyAddedToCartNotification } from './notifications/item-successfully-added-to-cart-notification';\nimport { MultiItemsSuccessfullyAddedToCartNotification } from './notifications/multi-items-successfully-added-to-cart-notification';\nimport { OrderDetailsProduct } from './product-model';\n\n/**\n * Interface for add to cart resources.\n */\nexport interface IAddToCartResources {\n goToCartText: string;\n continueShoppingText: string;\n closeNotificationLabel: string;\n headerItemOneText: string;\n headerItemFormatText: string;\n headerLinesFormatText?: string;\n headerMessageText: string;\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n addedQuantityText: string;\n buyAgainNotificationTitle?: string;\n buyAgainNotificationCloseAriaLabel?: string;\n validationErrorMessage?: string;\n oneErrorText?: string;\n multiErrorsText?: string;\n}\n\n/**\n * Interface for add to cart components props.\n */\nexport interface IAddToCartComponentProps extends IComponentProps<{ product: SimpleProduct; price?: ProductPrice } | undefined> {\n className?: string;\n addToCartText: string;\n outOfStockText?: string;\n disabled?: boolean;\n quantity?: number;\n navigationUrl?: string;\n productAvailability?: ProductAvailableQuantity;\n getSelectedProduct?: Promise;\n isNavigationToCartPageDisabled?: boolean;\n shouldSkipSiteSettings?: boolean;\n addToCartArialLabel?: string;\n products?: {\n productId: number;\n quantity: number;\n catalogId?: number;\n }[];\n orderDetailsProducts?: OrderDetailsProduct[];\n hasAvailableProducts?: boolean;\n imageSettings?: IImageSettings;\n gridSettings?: IGridSettings;\n\n isLoading?: boolean;\n isUpdatingDimension?: boolean;\n isLoadingDeliveryOptions?: boolean;\n isUpdatingDeliveryOptions?: boolean;\n isAddServiceItemToCart?: boolean;\n isAddEmailDeliveryItemToCart?: boolean;\n isPriceKeyedIn?: boolean;\n customPriceAmount?: number;\n isOrderQuantityLimitsFeatureEnabled?: boolean;\n\n dialogStrings?: IAddToCartResources;\n\n telemetryContent?: ITelemetryContent;\n\n catalogId?: number;\n\n isCustomPriceSelected?: boolean;\n maximumKeyInPrice?: number;\n minimumKeyInPrice?: number;\n defaultMaximumKeyInPrice?: number;\n defaultMinimumKeyInPrice?: number;\n isProductQuantityLoading?: boolean;\n\n onAdd?(result: ICartActionResult): void;\n onError?(result: IAddToCartFailureResult): void;\n changeUpdatingDimension?(isUpdatingDimension: boolean): void;\n changeUpdatingDeliveryOptions?(isUpdatingDeliveryOptions: boolean): void;\n}\n\n/**\n * Cart action Failure reason type.\n */\nexport declare type ICartActionFailureReason =\n | 'EMPTYINPUT'\n | 'MISSINGDIMENSION'\n | 'OUTOFSTOCK'\n | 'CARTACTIONFAILED'\n | 'INVALIDCUSTOMAMOUNT';\n\n/**\n * Interface for add to cart failure result.\n */\nexport interface IAddToCartFailureResult {\n failureReason: ICartActionFailureReason;\n\n stockLeft?: number;\n cartActionResult?: ICartActionResult;\n missingDimensions?: ProductDimension[];\n}\n\n/**\n * This setting defines the experience when a product is added to cart. Corresponds to the configuration in Fabrikam.\n */\nexport enum AddToCartBehavior {\n /**\n * Navigate to cart page.\n */\n goToCart = 'goToCart',\n\n /**\n * Show item added to cart popup.\n */\n showModal = 'showModal',\n\n /**\n * Show mini cart popup.\n */\n showMiniCart = 'showMiniCart',\n\n /**\n * Show item added to cart notification.\n */\n showNotification = 'showNotification',\n\n /**\n * Do nothing and stay on the page.\n */\n nothing = 'nothing'\n}\n\nconst zero = 0;\nconst defaultQuantity = 1;\n\n/**\n * The propagate result.\n * @param props -- The add to cart component props.\n * @param result -- The cart action result.\n */\nconst propagateResult = (props: IAddToCartComponentProps, result: ICartActionResult): void => {\n if (props.onAdd) {\n props.onAdd(result);\n }\n};\n\n/**\n * The propagate error.\n * @param props -- The add to cart component props.\n * @param result -- The add to cart failure result.\n */\nconst propagateError = (props: IAddToCartComponentProps, result: IAddToCartFailureResult): void => {\n if (props.onError) {\n props.onError(result);\n }\n};\n\n/**\n * Retrieves add to cart input from the component props.\n * @param props - Add to cart component props.\n * @returns Add to cart input.\n */\nconst getAddToCartInputFromProps = async (props: IAddToCartComponentProps) => {\n const products = props.orderDetailsProducts?.filter(product => !ObjectExtensions.isNullOrUndefined(product.simpleProduct));\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\n const input = products?.map(product => {\n const deliveryOption = product.salesLine.DeliveryMode;\n return {\n product: product.simpleProduct!,\n count: ObjectExtensions.isNullOrUndefined(product.salesLine.Quantity) ? defaultQuantity : product.salesLine.Quantity,\n catalogId: product.salesLine.CatalogId,\n isAddEmailDeliveryItemToCart: deliveryOption && deliveryOption === emailDeliveryModeCode\n };\n });\n\n if (ArrayExtensions.hasElements(input)) {\n return input;\n }\n\n if (ArrayExtensions.hasElements(props.products)) {\n const actionContext = props.context.actionContext;\n const apiSettings = actionContext.requestContext.apiSettings;\n\n const catalogId = props.catalogId ?? getCatalogId(props.context.actionContext.requestContext);\n validateCatalogId(catalogId);\n\n const searchCriteriaInput: ProductSearchCriteria = {\n Context: {\n ChannelId: apiSettings.channelId,\n CatalogId: catalogId\n },\n IncludeAttributes: false,\n Ids: props.products.map(product => product.productId)\n };\n\n const searchResult = await ProductsDataActions.searchByCriteriaAsync({ callerContext: actionContext }, searchCriteriaInput);\n const productSearchResultsWithImages = searchResult.map(productSearchResult => {\n const newProductSearchResult = { ...productSearchResult };\n const newImageUrl = generateProductImageUrl(newProductSearchResult, apiSettings);\n\n if (newImageUrl) {\n newProductSearchResult.PrimaryImageUrl = newImageUrl;\n }\n\n return newProductSearchResult;\n });\n\n return props.products.map(item => {\n const productData = productSearchResultsWithImages.find(product => product.RecordId === item.productId);\n let simpleProduct: SimpleProduct;\n if (productData) {\n simpleProduct = {\n ...productData,\n ProductTypeValue: ProductType.Variant,\n AdjustedPrice: productData.Price,\n BasePrice: productData.BasePrice ?? productData.Price\n };\n } else {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Cast to simple product since only record id is available.\n simpleProduct = {\n RecordId: item.productId\n } as SimpleProduct;\n }\n\n return {\n product: simpleProduct,\n count: item.quantity,\n catalogId: item.catalogId\n };\n });\n }\n\n if (props.data?.product) {\n return [\n {\n product: props.data.product,\n count: props.quantity ?? defaultQuantity,\n catalogId: props.catalogId\n }\n ];\n }\n\n return [];\n};\n\n/**\n * Add one item to cart when it is not buy again.\n * @param props -- The props.\n * @param setDisabled -- The set disable call back.\n * @param openModal -- The open modal call back.\n */\nconst addOneItemToCart = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n openModal: (opened: boolean) => void\n): Promise => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n const addToCartBehavior = props.context.app.config.addToCartBehavior;\n const data = props.data;\n\n const addToCartInput = await getAddToCartInputFromProps(props);\n const product = addToCartInput[0].product;\n const quantity = addToCartInput[0].count;\n\n const cartState = await getCartState(props.context.actionContext);\n const addToCartResult = await cartState.addProductToCart({\n product,\n count: quantity,\n availableQuantity: props.productAvailability?.AvailableQuantity,\n additionalProperties: { validateQuantity: props.isOrderQuantityLimitsFeatureEnabled },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n enableStockCheck: props.context.app.config.enableStockCheck,\n isPriceKeyedIn: props.isPriceKeyedIn,\n customPrice: props.isPriceKeyedIn ? props.customPriceAmount : undefined,\n isAddEmailDeliveryItemToCart: props.isAddEmailDeliveryItemToCart,\n shouldSkipSiteSettings: props.shouldSkipSiteSettings,\n catalogId: addToCartInput[0].catalogId\n });\n\n if (addToCartResult.status === 'SUCCESS') {\n if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showModal) {\n setDisabled(false);\n openModal(true);\n } else if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showNotification) {\n setDisabled(false);\n const notification = new ItemSuccessfullyAddedToCartNotification(\n props.context,\n props.dialogStrings,\n props.imageSettings,\n props.gridSettings,\n product,\n data?.price,\n quantity,\n props.navigationUrl,\n props.telemetryContent!,\n props.id,\n props.typeName\n );\n NotificationsManager.instance().addNotification(notification);\n } else if (\n MsDyn365.isBrowser &&\n props.navigationUrl &&\n !props.isNavigationToCartPageDisabled &&\n (addToCartBehavior === undefined || addToCartBehavior === AddToCartBehavior.goToCart)\n ) {\n window.location.assign(props.navigationUrl);\n } else {\n setDisabled(false);\n }\n propagateResult(props, addToCartResult);\n } else {\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n addToCartResult.errorDetails?.LocalizedMessage ?? 'Add to cart failed',\n props.dialogStrings?.closeNotificationLabel ?? ''\n )\n );\n\n propagateError(props, { failureReason: 'CARTACTIONFAILED', cartActionResult: addToCartResult });\n setDisabled(false);\n }\n};\n\n/**\n * Callback to handle success of adding to cart.\n * @param props - Add to cart component props.\n * @param setDisabled - Callback to update disabled state of the component.\n * @param setItemsAddedToCartDialogOpen - Callback to update disabled state of the component.\n * @param setErrorMessage - Callback to update error message state of the component.\n * @param cartState - Current cart state.\n * @param addToCartInput - Input used for adding to cart.\n * @param addToCartResult - Result of adding to cart.\n */\nconst handleAddItemsToCartSuccess = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void,\n cartState: ICartState,\n addToCartInput: {\n product: SimpleProduct;\n count: number;\n }[],\n addToCartResult: ICartActionResult\n) => {\n // Validate cart for line errors.\n const validationResult: CartLineValidationResults = await CartsDataActions.validateForCheckoutAsync(\n { callerContext: props.context.actionContext, bypassCache: 'none' },\n cartState.cart.Id,\n cartState.cart.Version\n );\n const errorCount = (validationResult.ValidationFailuresByCartLines ?? []).length;\n const singleErrorCount = 1;\n const errorText = errorCount === singleErrorCount ? props.dialogStrings?.oneErrorText : props.dialogStrings?.multiErrorsText;\n const errorMessage =\n errorCount > zero ? format(props.dialogStrings?.validationErrorMessage ?? '', errorCount.toString(), errorText) : '';\n\n setErrorMessage(errorMessage);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n const addToCartBehavior = props.context.app.config.addToCartBehavior;\n\n if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showModal) {\n setDisabled(false);\n setItemsAddedToCartDialogOpen(true);\n } else if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showNotification) {\n setDisabled(false);\n const itemsAddedResource: IItemsAddedToCartResources = {\n viewCartButtonText: props.dialogStrings.goToCartText,\n closeButtonLabel: props.dialogStrings.closeNotificationLabel,\n itemsAddedToCartHeaderText: props.dialogStrings.headerMessageText,\n itemsAddedToCartFormatText: props.dialogStrings.headerItemFormatText,\n linesAddedToCartFormatText: props.dialogStrings.headerLinesFormatText ?? '{0}',\n itemsAddedValidationErrorMessage: errorMessage\n };\n\n const notification = new MultiItemsSuccessfullyAddedToCartNotification(\n props.context,\n itemsAddedResource,\n props.imageSettings,\n props.gridSettings,\n addToCartInput,\n props.navigationUrl,\n props.telemetryContent!,\n props.id,\n props.typeName\n );\n NotificationsManager.instance().addNotification(notification);\n } else if (\n MsDyn365.isBrowser &&\n props.navigationUrl &&\n !props.isNavigationToCartPageDisabled &&\n (addToCartBehavior === undefined || addToCartBehavior === AddToCartBehavior.goToCart)\n ) {\n window.location.assign(props.navigationUrl);\n } else {\n setDisabled(false);\n }\n propagateResult(props, addToCartResult);\n};\n\n/**\n * Add one or multi item to cart from buy again.\n * @param props -- The props.\n * @param setDisabled -- The set disable call back.\n * @param setItemsAddedToCartDialogOpen -- The open modal call back.\n * @param setErrorMessage -- The set error message call back.\n */\nconst addItemsToCart = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void\n): Promise => {\n const addToCartInput = await getAddToCartInputFromProps(props);\n\n if (!ArrayExtensions.hasElements(addToCartInput)) {\n return;\n }\n\n const cartState = await getCartState(props.context.actionContext);\n const addToCartResult = await cartState.addProductsToCart(addToCartInput);\n\n if (addToCartResult.status === 'SUCCESS') {\n await handleAddItemsToCartSuccess(\n props,\n setDisabled,\n setItemsAddedToCartDialogOpen,\n setErrorMessage,\n cartState,\n addToCartInput,\n addToCartResult\n );\n } else {\n if (props.dialogStrings?.buyAgainNotificationTitle) {\n // For buy again show simple error notification.\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n props.dialogStrings.buyAgainNotificationTitle,\n props.dialogStrings.buyAgainNotificationCloseAriaLabel ?? ''\n )\n );\n } else {\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n addToCartResult.errorDetails?.LocalizedMessage ?? 'Add to cart failed',\n props.dialogStrings?.closeNotificationLabel ?? ''\n )\n );\n }\n\n propagateError(props, { failureReason: 'CARTACTIONFAILED', cartActionResult: addToCartResult });\n setDisabled(false);\n }\n};\n\n/**\n * Interface for add to cart component.\n */\nexport interface IAddtoCartComponent extends IComponent {\n onClick(): (event: React.MouseEvent, props: IAddToCartComponentProps) => void;\n}\n\n/**\n * On click function.\n * @param _event - The mouse event.\n * @param props - The props.\n * @param setDisabled - Flag to define whether the element is disabled.\n * @param openModal - Flag to specify if it should open in a modal window.\n * @param setItemsAddedToCartDialogOpen - Sets items added to cart while dialog is open.\n * @param setErrorMessage - Error message.\n */\nconst onClick = async (\n _event: React.MouseEvent,\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n openModal: (opened: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void\n): Promise => {\n if (!ArrayExtensions.hasElements(props.products)) {\n const cartError = addToCartError(props);\n\n if (cartError) {\n propagateError(props, cartError);\n return;\n }\n\n setDisabled(true);\n }\n\n const hasOrderDetailsProducts =\n ArrayExtensions.hasElements(props.orderDetailsProducts) && props.orderDetailsProducts.length > defaultQuantity;\n const hasProducts = ArrayExtensions.hasElements(props.products) && props.products.length > defaultQuantity;\n\n const hasMultipleProducts = hasOrderDetailsProducts || hasProducts;\n\n if (props.shouldSkipSiteSettings && hasMultipleProducts) {\n await addItemsToCart(props, setDisabled, setItemsAddedToCartDialogOpen, setErrorMessage);\n } else {\n await addOneItemToCart(props, setDisabled, openModal);\n }\n};\n\n/**\n * Add to cart component action constant.\n */\nconst AddToCartComponentActions = {\n onClick\n};\n\n/**\n * Add to cart component.\n * @param props - The props.\n * @returns - The add to cart component.\n */\nexport const AddToCartFunctionalComponent: React.FC = (props: IAddToCartComponentProps) => {\n const [disabled, setDisabled] = useState(false);\n const [modalOpen, setModalOpen] = useState(false);\n const [isItemsAddedToCartDialogOpen, setItemsAddedToCartDialogOpen] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [addToCartInput, setAddToCartInput] = useState<\n {\n product: SimpleProduct;\n count: number;\n }[]\n >([]);\n\n const onClickHandler = async (event: React.MouseEvent) => {\n await AddToCartComponentActions.onClick(event, props, setDisabled, setModalOpen, setItemsAddedToCartDialogOpen, setErrorMessage);\n };\n\n /**\n * Close dialog.\n */\n const closeItemsAddedToCartDialog = React.useCallback(() => {\n setItemsAddedToCartDialogOpen(false);\n }, []);\n\n const priceComponent = props.data?.price ? (\n \n ) : (\n ''\n );\n\n const popupProps: IPopupProps = {\n context: props.context,\n className: 'msc-add-to-cart',\n id: props.id,\n typeName: props.typeName,\n data: { product: addToCartInput[0]?.product, price: props.data?.price }, // addToCartInput[0]?.product?.Price },\n dialogStrings: props.dialogStrings,\n imageSettings: props.imageSettings,\n gridSettings: props.context.request.gridSettings,\n productQuantity: addToCartInput[0]?.count !== undefined ? addToCartInput[0]?.count : defaultQuantity,\n priceComponent,\n navigationUrl: props.navigationUrl,\n modalOpen,\n setModalOpen,\n telemetryContent: props.telemetryContent\n };\n\n const itemsAddedResource: IItemsAddedToCartResources = {\n viewCartButtonText: props.dialogStrings?.goToCartText ?? '',\n closeButtonLabel: props.dialogStrings?.closeNotificationLabel ?? 'Close',\n itemsAddedToCartHeaderText: props.dialogStrings?.headerMessageText ?? '',\n itemsAddedToCartFormatText: props.dialogStrings?.headerItemFormatText ?? '',\n linesAddedToCartFormatText: props.dialogStrings?.headerLinesFormatText ?? '{0}',\n itemsAddedValidationErrorMessage: errorMessage\n };\n\n const renderModalPopup = ;\n const label = getLinkText(props);\n const payload = getPayloadObject(TelemetryEvent.AddToCart, props.telemetryContent!, label, '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payload);\n const buttonClassName = props.shouldSkipSiteSettings ? '' : 'msc-add-to-cart ';\n\n React.useEffect(() => {\n /**\n * Retrieves add to cart input and updates the state.\n */\n const retrieveAddToCartInput = async () => {\n const retrievedInput = await getAddToCartInputFromProps(props);\n setAddToCartInput(retrievedInput);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises -- Call async method as per the documentation of react useEffect.\n retrieveAddToCartInput();\n }, [props, setAddToCartInput]);\n\n return (\n <>\n {renderModalPopup}\n \n {label}\n \n \n \n );\n};\n\n// Set default props\nAddToCartFunctionalComponent.defaultProps = {\n quantity: defaultQuantity\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @returns Gets the link text.\n */\nconst getLinkText = (props: IAddToCartComponentProps): string => {\n return shouldShowOutOfStock(props, false) && props.outOfStockText ? props.outOfStockText : props.addToCartText;\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @returns The add to cart failure result.\n */\nconst addToCartError = (props: IAddToCartComponentProps): IAddToCartFailureResult | undefined => {\n const {\n data,\n productAvailability,\n isCustomPriceSelected,\n customPriceAmount,\n maximumKeyInPrice,\n minimumKeyInPrice,\n defaultMaximumKeyInPrice = 100,\n defaultMinimumKeyInPrice = 10\n } = props;\n\n if (!data || !data.product.RecordId) {\n // No product exists, won't be able to add to cart\n return { failureReason: 'EMPTYINPUT' };\n }\n\n if (data.product.Dimensions) {\n const missingDimensions = data.product.Dimensions.filter(\n dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value)\n );\n\n if (ArrayExtensions.hasElements(missingDimensions)) {\n // At least one dimension with no value exists on the product, won't be able to add to cart\n return { failureReason: 'MISSINGDIMENSION', missingDimensions };\n }\n }\n\n if (shouldShowOutOfStock(props, true)) {\n const defaultAvailableQuantity = 0; // Showing as out of stock if no available products found.\n const availableQuantity = productAvailability?.AvailableQuantity ?? defaultAvailableQuantity;\n const stockLeft = Math.max(availableQuantity, defaultAvailableQuantity);\n\n return { failureReason: 'OUTOFSTOCK', stockLeft };\n }\n\n // When Custom price is selected, if there is no keyed-in price or keyed-in price is out of limit, should return error.\n if (\n isCustomPriceSelected &&\n (!customPriceAmount ||\n customPriceAmount > (maximumKeyInPrice || defaultMaximumKeyInPrice) ||\n customPriceAmount < (minimumKeyInPrice || defaultMinimumKeyInPrice))\n ) {\n return { failureReason: 'INVALIDCUSTOMAMOUNT' };\n }\n\n // Only allow adding to cart if not showing out of stock\n return undefined;\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @param includeCurrentQuantity - Flag to specify whether current quantity should be included.\n * @returns The dialog element.\n */\nconst shouldShowOutOfStock = (props: IAddToCartComponentProps, includeCurrentQuantity: boolean): boolean => {\n if (props.context.app.config.enableStockCheck === undefined || props.context.app.config.enableStockCheck === false) {\n return false;\n }\n\n // When skip site settings do not need show out of stock on adding to cart\n if (props.shouldSkipSiteSettings) {\n return false;\n }\n\n if (\n props.isLoading ||\n props.isProductQuantityLoading ||\n props.isUpdatingDimension ||\n props.isLoadingDeliveryOptions ||\n props.isUpdatingDeliveryOptions ||\n props.isAddServiceItemToCart\n ) {\n // Out of stock turn off, don't bother showing out of stock\n return false;\n }\n\n if (!props.data || !props.data.product.RecordId) {\n // No product exists, don't bother showing out of stock\n return false;\n }\n\n const hasAvailableProducts = props.hasAvailableProducts ?? true;\n if (!hasAvailableProducts) {\n return true;\n }\n\n if (props.data.product.Dimensions) {\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\n // At least one dimension with no value exists on the product, so also don't show out of stock\n return false;\n }\n }\n\n const includedQuantityNumber = includeCurrentQuantity && props.quantity ? props.quantity : defaultQuantity;\n\n return !(\n props.productAvailability &&\n props.productAvailability.AvailableQuantity !== undefined &&\n props.productAvailability.AvailableQuantity >= includedQuantityNumber\n );\n};\n\nconst isIntermediateState = (props: IAddToCartComponentProps): boolean => {\n if (props.data?.product.Dimensions) {\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\n // At least one dimension with no value exists on the product, so also not in intermediate state\n return false;\n }\n }\n\n if (!props.isLoading && !props.isUpdatingDimension && !props.isLoadingDeliveryOptions && !props.isUpdatingDeliveryOptions) {\n return false;\n }\n\n return true;\n};\n\n// @ts-expect-error\nexport const AddToCartComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'AddToCart',\n { component: AddToCartFunctionalComponent, ...AddToCartComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Interface for multi items added to cart resource.\n */\nexport interface IItemsAddedToCartResources {\n viewCartButtonText: string;\n closeButtonLabel: string;\n itemsAddedToCartHeaderText: string;\n itemsAddedToCartFormatText: string;\n linesAddedToCartFormatText: string;\n itemsAddedValidationErrorMessage?: string;\n}\n\n/**\n * Interface for add to cart input.\n */\nexport interface IAddToCartInput {\n product: SimpleProduct;\n count?: number;\n}\n\n/**\n * The total number of items.\n * @param addedInput -- The added to cart input.\n * @returns The total number of items.\n */\nexport const getTotalItems = (addedInput: IAddToCartInput[]): number => {\n const defaultQuantity: number = 1;\n let totalCount: number = 0;\n\n for (const item of addedInput) {\n totalCount += item.count ?? defaultQuantity;\n }\n\n return totalCount;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\n/**\n * Items added to cart error message.\n */\nexport interface IItemsAddedErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Items added error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing items added errors.\n */\nexport const ItemsAddedErrorComponent: React.FC = ({ errorMessage }) => {\n if (StringExtensions.isNullOrEmpty(errorMessage)) {\n return null;\n }\n\n return (\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { format } from '@msdyn365-commerce/retail-proxy';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-template/order-templates-list/order-template-products-preview';\nimport { getTotalItems, IAddToCartInput, IItemsAddedToCartResources } from './items-added-to-cart';\nimport { ItemsAddedErrorComponent } from './items-added-to-cart-error-component';\n\n/**\n * Interface for items added to cart data.\n */\nexport interface IItemsAddedToCartDialogData {\n products: IAddToCartInput[];\n}\n\n/**\n * Interface for items added to cart props.\n */\nexport interface IItemsAddedToCartDialogProps extends IComponentProps {\n className: string;\n dialogStrings: IItemsAddedToCartResources;\n\n imageSettings?: IImageSettings;\n isModalOpen?: boolean;\n\n onClose(): void;\n}\n\n/**\n * Items added to cart dialog.\n * @param dialogProps -- The dialog props.\n * @returns The dialog element.\n */\nexport const ItemsAddedToCartDialogComponent = (dialogProps: IItemsAddedToCartDialogProps): JSX.Element => {\n const {\n dialogStrings,\n className,\n context,\n isModalOpen,\n imageSettings,\n data: { products }\n } = dialogProps;\n\n /**\n * Get cart page URL.\n * @returns The URL of cart page.\n */\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) ?? '';\n };\n\n const itemsString =\n format(dialogStrings.itemsAddedToCartFormatText, getTotalItems(products).toString()) + dialogStrings.itemsAddedToCartHeaderText;\n const linesString = format(dialogStrings.linesAddedToCartFormatText, products.length.toString());\n\n const fullProducts: FullProduct[] = products.map(item => {\n return { ProductDetails: item.product };\n });\n\n return (\n \n \n {linesString}\n {dialogStrings.itemsAddedToCartHeaderText}\n \n \n
\n \n
\n
{itemsString}
\n
\n \n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.closeButtonLabel}\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 { Image } from '@msdyn365-commerce/core';\nimport {\n BaseNotificationComponent,\n ClosableNotificationWrapper,\n DismissibleNotificationWrapper,\n INotificationCloseButtonProps,\n INotificationProps,\n NotificationCloseButton,\n NotificationContent,\n NotificationFooter,\n NotificationHeader,\n NotificationInstance,\n NotificationTitle\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { getFallbackImageUrl, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getPayloadObject, getTelemetryAttributes, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\nimport { ItemSuccessfullyAddedToCartNotification } from './item-successfully-added-to-cart-notification';\n\nexport interface IItemSuccessfullyAddedToCartNotificationProps\n extends INotificationProps,\n INotificationCloseButtonProps {}\n\nexport class ItemSuccessfullyAddedToCartNotificationComponent extends BaseNotificationComponent<\n ItemSuccessfullyAddedToCartNotification,\n IItemSuccessfullyAddedToCartNotificationProps\n> {\n public static readonly className: string = 'msc-notification-item-successfully-added-to-cart';\n\n public constructor(props: IItemSuccessfullyAddedToCartNotificationProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n const payLoad = getPayloadObject('click', this.props.notification.telemetryContent, TelemetryConstant.ContinueShopping);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n const shouldDisplayUnitOfMeasure =\n this.props.notification.context.app.config?.unitOfMeasureDisplayType &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n this.props.notification.context.app.config.unitOfMeasureDisplayType !== 'none';\n payLoad.contentAction.etext = TelemetryConstant.ViewBagAndCheckout;\n const viewBagAttribute = getTelemetryAttributes(this.props.notification.telemetryContent, payLoad);\n const fallbackImageUrl = getFallbackImageUrl(\n this.props.notification.product.ItemId,\n this.props.notification.context.actionContext.requestContext.apiSettings,\n this.props.notification.context.app?.config?.OmniChannelMedia\n );\n if (this.props.notification.imageSettings) {\n this.props.notification.imageSettings.cropFocalRegion = true;\n }\n\n const reducedDimensions: string = this.props.notification.product.Dimensions\n ? this.props.notification.product.Dimensions.reduce((str, productDimension) => {\n if (productDimension.DimensionValue && productDimension.DimensionValue.Value) {\n if (str) {\n return `${str}, ${productDimension.DimensionValue.Value}`;\n }\n\n return `${productDimension.DimensionValue.Value}`;\n }\n\n return str;\n }, '')\n : '';\n\n const contentClassName = NotificationContent.className;\n const footerClassName = NotificationFooter.className;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n
{this.props.notification.product.Name}
\n {this.props.notification.price ? (\n
\n \n
\n ) : (\n ''\n )}\n {this.props.notification.product.DefaultUnitOfMeasure && shouldDisplayUnitOfMeasure ? (\n
\n {this.props.notification.product.DefaultUnitOfMeasure}\n
\n ) : (\n ''\n )}\n {StringExtensions.isNullOrWhitespace(reducedDimensions) ? null : (\n
{reducedDimensions}
\n )}\n
\n {this.props.notification.resources.addedQuantityText.replace(\n '{0}',\n this.props.notification.productQuantity.toString()\n )}\n
\n
\n
\n \n {this.props.notification.navigationUrl && (\n \n {this.props.notification.resources.goToCartText}\n \n )}\n \n
\n
\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 { IAny, ICoreContext, IGeneric, IGridSettings, IImageSettings, RichText } from '@msdyn365-commerce/core';\nimport { format, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n DismissibleNotification,\n IClosableNotification,\n ITitledNotification,\n NotificationEvents,\n withNotificationComponent\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Event } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport { IAddToCartResources } from '../add-to-cart.component';\nimport { ItemSuccessfullyAddedToCartNotificationComponent } from './item-successfully-added-to-cart-notification-component';\n\n/**\n * Notification which will be shown after the user adds an item to the cart.\n */\n@withNotificationComponent(ItemSuccessfullyAddedToCartNotificationComponent)\nexport class ItemSuccessfullyAddedToCartNotification extends DismissibleNotification implements ITitledNotification, IClosableNotification {\n public readonly context: ICoreContext>;\n\n public readonly resources: IAddToCartResources;\n\n public readonly imageSettings?: IImageSettings;\n\n public readonly gridSettings?: IGridSettings;\n\n public readonly product: SimpleProduct;\n\n public readonly price?: ProductPrice;\n\n public readonly productQuantity: number;\n\n public readonly navigationUrl?: string;\n\n public readonly telemetryContent: ITelemetryContent;\n\n public readonly closeAriaLabel: string;\n\n public readonly title: RichText;\n\n public readonly componentId: string;\n\n public readonly typeName: string;\n\n public isClosed: boolean;\n\n public constructor(\n context: ICoreContext>,\n resources: IAddToCartResources,\n imageSettings: IImageSettings | undefined,\n gridSettings: IGridSettings | undefined,\n product: SimpleProduct,\n price: ProductPrice | undefined,\n productQuantity: number,\n navigationUrl: string | undefined,\n telemetryContent: ITelemetryContent,\n componentId: string,\n typeName: string\n ) {\n super();\n\n const quantityOne = 1;\n const itemsString =\n productQuantity === quantityOne\n ? resources.headerItemOneText\n : format(resources.headerItemFormatText, productQuantity.toString());\n\n this.title = `${itemsString}${resources.headerMessageText}`;\n\n this.context = context;\n this.resources = resources;\n this.imageSettings = imageSettings;\n this.gridSettings = gridSettings;\n this.product = product;\n this.price = price;\n this.productQuantity = productQuantity;\n this.navigationUrl = navigationUrl;\n this.telemetryContent = telemetryContent;\n this.componentId = componentId;\n this.typeName = typeName;\n\n this.isClosed = false;\n this.closeAriaLabel = resources.closeNotificationLabel;\n\n this.events.setValue(NotificationEvents.Close, new Event());\n }\n\n public close(): void {\n this.isClosed = true;\n this.events.getValue(NotificationEvents.Close)?.trigger();\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport {\n BaseNotificationComponent,\n ClosableNotificationWrapper,\n DismissibleNotificationWrapper,\n INotificationCloseButtonProps,\n INotificationProps,\n NotificationCloseButton,\n NotificationContent,\n NotificationDescription,\n NotificationFooter,\n NotificationHeader,\n NotificationInstance,\n NotificationTitle\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Button, getPayloadObject, getTelemetryAttributes, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../../order-template/order-templates-list/order-template-products-preview';\nimport { ItemsAddedErrorComponent } from '../items-added-to-cart-error-component';\nimport { MultiItemsSuccessfullyAddedToCartNotification } from './multi-items-successfully-added-to-cart-notification';\n\n/**\n * Interface of props for multiple items are successfully added to cart notification.\n */\nexport interface IMultiItemsSuccessfullyAddedToCartNotificationProps\n extends INotificationProps,\n INotificationCloseButtonProps {}\n\n/**\n * Multiple items are successfully added to cart notification.\n */\nexport class MultiItemsSuccessfullyAddedToCartNotificationComponent extends BaseNotificationComponent<\n MultiItemsSuccessfullyAddedToCartNotification,\n IMultiItemsSuccessfullyAddedToCartNotificationProps\n> {\n public static readonly className: string = 'msc-notification-items-added-to-cart';\n\n public constructor(props: IMultiItemsSuccessfullyAddedToCartNotificationProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n const payLoad = getPayloadObject('click', this.props.notification.telemetryContent, TelemetryConstant.ContinueShopping);\n payLoad.contentAction.etext = TelemetryConstant.ViewBagAndCheckout;\n const viewBagAttribute = getTelemetryAttributes(this.props.notification.telemetryContent, payLoad);\n if (this.props.notification.imageSettings) {\n this.props.notification.imageSettings.cropFocalRegion = true;\n }\n\n const fullProducts: FullProduct[] = this.props.notification.products.map(item => {\n return { ProductDetails: item.product };\n });\n\n const className = MultiItemsSuccessfullyAddedToCartNotificationComponent.className;\n const footerClassName = NotificationFooter.className;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.notification.navigationUrl && (\n \n {this.props.notification.resources.viewCartButtonText}\n \n )}\n \n \n \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 { IAny, ICoreContext, IGeneric, IGridSettings, IImageSettings, RichText } from '@msdyn365-commerce/core';\nimport { format } from '@msdyn365-commerce/retail-proxy';\nimport {\n DismissibleNotification,\n IClosableNotification,\n ITitledNotification,\n NotificationEvents,\n withNotificationComponent\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Event } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport { getTotalItems, IAddToCartInput, IItemsAddedToCartResources } from '../items-added-to-cart';\nimport { MultiItemsSuccessfullyAddedToCartNotificationComponent } from './multi-items-successfully-added-to-cart-notification-component';\n\n/**\n * Notification which will be shown after the user adds multi items to the cart.\n */\n@withNotificationComponent(MultiItemsSuccessfullyAddedToCartNotificationComponent)\nexport class MultiItemsSuccessfullyAddedToCartNotification extends DismissibleNotification\n implements ITitledNotification, IClosableNotification {\n public readonly context: ICoreContext>;\n\n public readonly resources: IItemsAddedToCartResources;\n\n public readonly imageSettings?: IImageSettings;\n\n public readonly gridSettings?: IGridSettings;\n\n public readonly products: IAddToCartInput[];\n\n public readonly navigationUrl?: string;\n\n public readonly telemetryContent: ITelemetryContent;\n\n public readonly closeAriaLabel: string;\n\n public readonly title: RichText;\n\n public readonly descriptionLines: RichText[];\n\n public readonly componentId: string;\n\n public readonly typeName: string;\n\n public isClosed: boolean;\n\n public constructor(\n context: ICoreContext>,\n resources: IItemsAddedToCartResources,\n imageSettings: IImageSettings | undefined,\n gridSettings: IGridSettings | undefined,\n products: IAddToCartInput[],\n navigationUrl: string | undefined,\n telemetryContent: ITelemetryContent,\n componentId: string,\n typeName: string\n ) {\n super();\n\n const itemsString = format(resources.itemsAddedToCartFormatText, getTotalItems(products).toString());\n const linesString = format(resources.linesAddedToCartFormatText, products.length.toString());\n\n this.title = `${linesString}${resources.itemsAddedToCartHeaderText}`;\n this.descriptionLines = [];\n this.descriptionLines.push(`${itemsString}${resources.itemsAddedToCartHeaderText}`);\n\n this.context = context;\n this.resources = resources;\n this.imageSettings = imageSettings;\n this.gridSettings = gridSettings;\n this.products = products;\n this.navigationUrl = navigationUrl;\n this.telemetryContent = telemetryContent;\n this.componentId = componentId;\n this.typeName = typeName;\n\n this.isClosed = false;\n this.closeAriaLabel = resources.closeButtonLabel;\n\n this.events.setValue(NotificationEvents.Close, new Event());\n }\n\n public close(): void {\n this.isClosed = true;\n this.events.getValue(NotificationEvents.Close)?.trigger();\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SalesLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { observable } from 'mobx';\n\n/**\n * Represents a product from order details.\n */\nexport class OrderDetailsProduct {\n @observable\n public isSelected: boolean;\n\n public readonly isProductAvailable: boolean;\n\n public readonly salesLine: SalesLine;\n\n /**\n * Simple product info.\n * May be undefined for the removed/unavailable product.\n */\n public readonly simpleProduct?: SimpleProduct;\n\n public readonly productUrl?: string;\n\n public constructor(salesLine: SalesLine, simpleProduct?: SimpleProduct, productUrl?: string) {\n this.salesLine = salesLine;\n this.simpleProduct = simpleProduct;\n this.isSelected = false;\n this.isProductAvailable = !ObjectExtensions.isNullOrUndefined(simpleProduct);\n this.productUrl = productUrl;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { IComponent, IComponentProps, getCatalogId, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport {\n addOrderTemplateToCartAction,\n AddOrderTemplateToCartInput,\n OrderTemplate,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n IPopupProductsProps,\n ITelemetryContent,\n PopupProducts,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport {\n ILinesAddedToCartDialogResources,\n LinesAddedToCartDialog\n} from '../lines-added-to-cart-dialog/lines-added-to-cart-dialog.component';\n\nexport interface IAddOrderTemplateToCartComponentData {\n orderTemplate: OrderTemplate;\n}\n\nexport interface IAddOrderTemplateToCartComponentProps extends IComponentProps {\n className?: string;\n parentElementRef?: React.RefObject\n \n \n );\n};\n\nexport const AddOrderTemplateToCartComponent: React.FunctionComponent =\n // @ts-expect-error -- As per design, custom component\n msdyn365Commerce.createComponent('AddOrderTemplate', {\n component: AddOrderTemplate,\n ...AddToCartComponentActions\n });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport {\n IOrderTemplateNameDialogResources,\n OrderTemplateNameDialog\n} from '../order-template-name-dialog/order-template-name-dialog.component';\n\nexport interface IRenameOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n renameOrderTemplateDialogStrings: IOrderTemplateNameDialogResources;\n renameOrderTemplateButtonText: string;\n onRenameTemplate(orderTemplate: ProductList): Promise;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\ninterface IRenameOrderTemplateData {\n orderTemplate: ProductList;\n}\n\nexport interface IRenameOrderTemplateComponent extends IComponent {}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention -- For backward compatibility\nconst RenameOrderTemplateComponentActions = {};\nlet buttonEventReference: HTMLButtonElement | undefined;\n\nconst RenameOrderTemplate: React.FC = (props: IRenameOrderTemplateComponentProps) => {\n const {\n data: { orderTemplate },\n renameOrderTemplateButtonText,\n renameOrderTemplateDialogStrings,\n context\n } = props;\n const [renameOrderTemplateDialogOpen, setOrderTemplateNameDialogOpen] = React.useState(false);\n const onOrderTemplateNameCancel = () => {\n context.telemetry.debug('Rename of template was canceled.');\n buttonEventReference?.focus();\n };\n\n const onRenameButtonClick = (event: React.MouseEvent) => {\n buttonEventReference = event.target as HTMLButtonElement;\n setOrderTemplateNameDialogOpen(true);\n };\n return (\n <>\n \n \n \n );\n};\n\nexport const RenameOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IRenameOrderTemplateComponent\n>('RenameOrderTemplate', { component: RenameOrderTemplate, ...RenameOrderTemplateComponentActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-templates-list/order-template-products-preview';\n\nexport interface ILinesAddedToCartDialogResources {\n viewCartButtonText: string;\n orderTemplateCloseButtonText: string;\n linesAddedToCartHeaderItemsOneText: string;\n linesAddedToCartHeaderLinesOneText: string;\n linesAddedToCartHeaderLinesFormatText: string;\n linesAddedToCartHeaderMessageText: string;\n}\n\nexport interface ILinesAddedToCartDialogData {\n linesCount: number;\n orderTemplate: ProductList;\n products: FullProduct[];\n}\n\nexport interface ILinesAddedToCartDialogProps extends IComponentProps {\n className: string;\n imageSettings?: IImageSettings;\n\n dialogStrings: ILinesAddedToCartDialogResources;\n\n modalOpen: boolean | undefined;\n onClose(): void;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const LinesAddedToCartDialog = (dialogProps: ILinesAddedToCartDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplate, products, linesCount }\n } = dialogProps;\n\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) || '';\n };\n\n const close: () => void = () => {\n dialogProps.onClose();\n };\n\n const lineItemsString =\n linesCount === 1\n ? dialogStrings.linesAddedToCartHeaderLinesOneText\n : dialogStrings.linesAddedToCartHeaderLinesFormatText.replace('{0}', linesCount.toString());\n\n return (\n \n \n {dialogStrings.linesAddedToCartHeaderItemsOneText}\n {dialogStrings.linesAddedToCartHeaderMessageText}\n \n \n
\n \n
\n
{orderTemplate.Name}
\n
{lineItemsString}
\n
\n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.orderTemplateCloseButtonText}\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport {\n createOrderTemplate,\n CreateOrderTemplateInput,\n StringExtensions,\n updateOrderTemplateHeader,\n UpdateOrderTemplateHeaderInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nexport interface IOrderTemplateNameDialogResources {\n orderTemplateHeaderLabel: string;\n orderTemplateTitleLabel: string;\n orderTemplateNameAriaLabel: string;\n orderTemplateDescription: string;\n defaultOrderTemplateName: string;\n orderTemplateButtonLabel: string;\n orderTemplateCancelButtonLabel: string;\n orderTemplateModalAriaLabel?: string;\n}\n\nexport interface IOrderTemplateNameDialogProps extends IComponentProps {\n isUpdateDialog: boolean | undefined;\n existingOrderTemplate?: ProductList;\n className: string;\n orderTemplateName?: string;\n dialogStrings: IOrderTemplateNameDialogResources;\n modalOpen: boolean | undefined;\n parentElementRef?: React.RefObject;\n setModalOpen(newValue: boolean): void;\n onCancel(): void;\n onSuccess(orderTemplate: ProductList): Promise;\n}\n\nexport const OrderTemplateNameDialog = (dialogProps: IOrderTemplateNameDialogProps) => {\n const {\n isUpdateDialog,\n existingOrderTemplate,\n dialogStrings,\n className,\n modalOpen,\n setModalOpen,\n onCancel,\n onSuccess,\n context,\n parentElementRef\n } = dialogProps;\n\n if (!dialogStrings) {\n return null;\n }\n\n const [orderTemplateName, setOrderTemplateName] = useState(dialogProps.orderTemplateName);\n\n const cancel: () => void = () => {\n setModalOpen(false);\n onCancel();\n setOrderTemplateName('');\n if (parentElementRef) {\n parentElementRef.current?.focus();\n }\n };\n\n const submit: () => Promise = async () => {\n dialogProps.orderTemplateName = orderTemplateName || dialogStrings.defaultOrderTemplateName;\n if (StringExtensions.isNullOrWhitespace(dialogProps.orderTemplateName)) {\n return;\n }\n if (isUpdateDialog) {\n if (existingOrderTemplate) {\n existingOrderTemplate.Name = dialogProps.orderTemplateName;\n const input: UpdateOrderTemplateHeaderInput = new UpdateOrderTemplateHeaderInput(existingOrderTemplate);\n const orderTemplate: ProductList = await updateOrderTemplateHeader(input, context.actionContext);\n setModalOpen(false);\n await onSuccess(orderTemplate);\n } else {\n context.telemetry.error('You need to pass ProductList instance for update.');\n throw new Error('Unexpected error: existing order template was not set.');\n }\n } else {\n const input: CreateOrderTemplateInput = new CreateOrderTemplateInput(dialogProps.orderTemplateName);\n const orderTemplate: ProductList = await createOrderTemplate(input, context.actionContext);\n setModalOpen(false);\n await onSuccess(orderTemplate);\n }\n };\n\n const updateOrderTemplateName = (event: React.ChangeEvent) => {\n setOrderTemplateName(event.target.value);\n };\n\n return (\n \n \n {dialogStrings.orderTemplateHeaderLabel}\n \n \n
\n \n {dialogStrings.orderTemplateTitleLabel}\n \n \n
{dialogStrings.orderTemplateDescription}
\n
\n
\n \n \n {dialogStrings.orderTemplateButtonLabel}\n \n \n {dialogStrings.orderTemplateCancelButtonLabel}\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from './order-template-products-preview';\n\nexport interface IOrderTemplateComponentProps {\n className: string;\n orderTemplate: OrderTemplate;\n context: ICoreContext;\n imageSettings?: IImageSettings;\n actionButtonText: string;\n lineItemsText: string;\n orderTemplateAction(orderTemplate: ProductList): Promise;\n}\n\nexport const OrderTemplateComponent = (props: IOrderTemplateComponentProps) => {\n const { orderTemplate, className, imageSettings } = props;\n\n const onActionButtonClick = () => {\n return props.orderTemplateAction(props.orderTemplate.productList);\n };\n\n const products = orderTemplate.orderTemplateLines.map(line => line.fullProduct).filter(fullProduct => fullProduct);\n\n return (\n
\n
\n
{orderTemplate.productList.Name}
\n
{format(props.lineItemsText, orderTemplate.totalLines)}
\n
\n \n
\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 { getAsset, IComponentProps, Image } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport {\n IOrderTemplateNameDialogResources,\n OrderTemplateNameDialog\n} from '../order-template-name-dialog/order-template-name-dialog.component';\nimport { OrderTemplateComponent } from '../order-templates-list/order-template-list';\n\nexport interface IAddToOrderTemplateDialogData {\n orderTemplates: OrderTemplate[];\n}\n\nexport interface IAddToOrderTemplateDialogResources {\n addToOrderTemplateHeader: string;\n\n noOrderTemplatesMessage: string;\n noOrderTemplatesDescription: string;\n\n createAnOrderTemplateButtonText: string;\n createNewOrderTemplateButtonText: string;\n cancelOrderTemplateCreationButtonText: string;\n\n selectTemplatesText: string;\n addToTemplateButtonText: string;\n lineItemsText: string;\n}\n\nexport interface IAddToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n\n modalOpen: boolean | undefined;\n setModalOpen(newValue: boolean): void;\n onOrderTemplateSelected(orderTemplate: ProductList): Promise;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nconst renderAddToOrderTemplatesWhenEmptyOrderTemplatesDialog = (\n dialogProps: IAddToOrderTemplateDialogProps,\n className: string,\n closeDialog: () => void,\n showOrderTemplateNameDialog: () => void\n) => {\n const { addToOrderTemplateDialogResources, modalOpen } = dialogProps;\n\n const createOrderTemplateImageUrl = `${getAsset('images/order-templates/create-order-template.svg', dialogProps.context.request)}`;\n\n return (\n <>\n \n \n {addToOrderTemplateDialogResources.addToOrderTemplateHeader}\n \n \n
\n
\n \n
\n
\n {addToOrderTemplateDialogResources.noOrderTemplatesMessage}\n
\n
\n {addToOrderTemplateDialogResources.noOrderTemplatesDescription}\n
\n
\n
\n \n \n {addToOrderTemplateDialogResources.createAnOrderTemplateButtonText}\n \n \n {addToOrderTemplateDialogResources.cancelOrderTemplateCreationButtonText}\n \n \n
\n \n );\n};\n\nconst formatBold = (text: string, boldText: string) => {\n const patternToFind = '{0}';\n return (\n <>\n {text.slice(0, text.indexOf(patternToFind))}\n {boldText}\n {text.slice(text.indexOf(patternToFind) + patternToFind.length)}\n \n );\n};\n\nconst renderAddToOrderTemplatesForExistingOrderTemplatesDialog = (\n dialogProps: IAddToOrderTemplateDialogProps,\n className: string,\n closeDialog: () => void,\n showOrderTemplateNameDialog: () => void,\n onAddToOrderTemplateButtonClick: (orderTemplate: ProductList) => Promise\n) => {\n const {\n addToOrderTemplateDialogResources,\n modalOpen,\n data: { orderTemplates }\n } = dialogProps;\n\n const createOrderTemplateImageUrl = `${getAsset('images/order-templates/create-order-template.svg', dialogProps.context.request)}`;\n\n return (\n <>\n \n \n {addToOrderTemplateDialogResources.addToOrderTemplateHeader}\n \n \n
\n
\n {formatBold(addToOrderTemplateDialogResources.selectTemplatesText, orderTemplates.length.toString())}\n
\n
\n \n \n \n {addToOrderTemplateDialogResources.createNewOrderTemplateButtonText}\n \n
\n {orderTemplates.map((orderTemplate, index) => {\n return (\n \n );\n })}\n
\n
\n \n \n \n );\n};\n\nexport const AddToOrderTemplateDialog = (dialogProps: IAddToOrderTemplateDialogProps) => {\n const {\n setModalOpen,\n data: { orderTemplates },\n className\n } = dialogProps;\n\n const closeDialog = () => {\n setModalOpen(false);\n };\n\n const [isCreateOrderTemplateDialogOpen, setOrderTemplateNameDialogOpen] = useState(false);\n const showOrderTemplateNameDialog = () => {\n setModalOpen(false);\n setTimeout(() => {\n setOrderTemplateNameDialogOpen(true);\n }, 500);\n };\n const onCreateOrderTemplateCancel = () => {\n setTimeout(() => {\n setModalOpen(true);\n }, 500);\n };\n\n let addToOrderTemplateDialog: JSX.Element;\n if (orderTemplates.length !== 0) {\n addToOrderTemplateDialog = renderAddToOrderTemplatesForExistingOrderTemplatesDialog(\n dialogProps,\n `${className}__existing`,\n closeDialog,\n showOrderTemplateNameDialog,\n dialogProps.onOrderTemplateSelected\n );\n } else {\n addToOrderTemplateDialog = renderAddToOrderTemplatesWhenEmptyOrderTemplatesDialog(\n dialogProps,\n `${className}__empty`,\n closeDialog,\n showOrderTemplateNameDialog\n );\n }\n\n return (\n <>\n {addToOrderTemplateDialog}\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { ProductDimensionType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-templates-list/order-template-products-preview';\n\nexport interface ILinesAddedToOrderTemplateDialogResources {\n viewOrderTemplateButtonText: string;\n continueShoppingButtonText: string;\n linesAddedToOrderTemplateHeaderItemsOneText: string;\n linesAddedToOrderTemplateHeaderItemsFormatText: string;\n linesAddedToOrderTemplateHeaderLinesOneText: string;\n linesAddedToOrderTemplateHeaderLinesFormatText: string;\n linesAddedToOrderTemplateHeaderMessageText: string;\n linesAddedToOrderTemplateCustomPriceAlertMessageText?: string;\n}\n\nexport interface ILinesAddedToOrderTemplateDialogData {\n itemsCount: number;\n linesCount: number;\n orderTemplate: ProductList;\n products: FullProduct[];\n}\n\nexport interface ILinesAddedToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n imageSettings?: IImageSettings;\n\n dialogStrings: ILinesAddedToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const LinesAddedToOrderTemplateDialog = (dialogProps: ILinesAddedToOrderTemplateDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplate, products, itemsCount, linesCount }\n } = dialogProps;\n\n const getOrderTemplatePageUrl = (): string => {\n const url = getUrlSync('ordertemplate', context.actionContext) || '';\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}id=${orderTemplate.Id}`;\n };\n\n const close = React.useCallback(() => {\n window.location.reload(true);\n }, []);\n\n const itemsString =\n itemsCount === 1\n ? dialogStrings.linesAddedToOrderTemplateHeaderItemsOneText\n : dialogStrings.linesAddedToOrderTemplateHeaderItemsFormatText.replace('{0}', itemsCount.toString());\n const lineItemsString =\n linesCount === 1\n ? dialogStrings.linesAddedToOrderTemplateHeaderLinesOneText\n : dialogStrings.linesAddedToOrderTemplateHeaderLinesFormatText.replace('{0}', linesCount.toString());\n\n const addedProducts = products.filter(\n product =>\n !product.ProductDetails.Dimensions?.find(\n dimension => dimension.DimensionTypeValue === ProductDimensionType.Style && dimension.DimensionValue?.Value === 'Custom'\n )\n );\n const filteredProducts = products.filter(product =>\n product.ProductDetails.Dimensions?.find(\n dimension => dimension.DimensionTypeValue === ProductDimensionType.Style && dimension.DimensionValue?.Value === 'Custom'\n )\n );\n\n return (\n \n \n {lineItemsString}\n {dialogStrings.linesAddedToOrderTemplateHeaderMessageText}\n \n \n
\n \n
\n
{orderTemplate.Name}
\n
{itemsString}
\n
\n {ArrayExtensions.hasElements(filteredProducts) ? (\n <>\n \n
\n \n {dialogStrings.linesAddedToOrderTemplateCustomPriceAlertMessageText}\n
\n
\n \n \n ) : null}\n
\n
\n \n \n {dialogStrings.viewOrderTemplateButtonText}\n \n \n {dialogStrings.continueShoppingButtonText}\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, getCatalogId, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { Customer, ProductList, ProductListLine, ProductListsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n FullProductInput,\n getFullProducts,\n getProductDetailsCriteriaFromActionInput,\n OrderTemplate,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n ILinesAddedToOrderTemplateDialogResources,\n LinesAddedToOrderTemplateDialog\n} from '../lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\n\n/**\n * Data for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n products: ProductListLine[];\n\n customerInformation?: Customer;\n}\n\n/**\n * Resources for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateResources\n extends IAddToOrderTemplateDialogResources,\n IOrderTemplateNameDialogResources,\n ILinesAddedToOrderTemplateDialogResources {\n addProductsToOrderTemplateButton: string;\n addProductsToOrderTemplateButtonTooltip: string;\n}\n\n/**\n * Props for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateProps {\n className: string;\n\n context: ICoreContext;\n\n data: IAddProductsToOrderTemplateData;\n\n resources: IAddProductsToOrderTemplateResources;\n\n isDisabled?: boolean;\n\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nconst modalTimeoutTime = 500;\n\n/**\n * Add products to order template component.\n * @param props - Component props.\n * @returns React node.\n */\nexport const AddProductsToOrderTemplateComponent: React.FC = (\n props: IAddProductsToOrderTemplateProps\n) => {\n const [chosenOrderTemplate, setChosenOrderTemplate] = useState(undefined);\n const [addedProducts, setAddedProducts] = useState(undefined);\n const [isAddToOrderTemplateModalOpen, setIsAddToOrderTemplateModalOpen] = useState(false);\n const [isLinesAddedToOrderTemplateDialogOpen, setIsLinesAddedToOrderTemplateDialogOpen] = useState(false);\n const [addedLinesCount, setAddedLinesCount] = useState(0);\n const [addedItemsCount, setAddedItemsCount] = useState(0);\n\n /**\n * Adds product to the selected order template.\n * @param orderTemplate - Order template to use for adding products.\n */\n const onOrderTemplateSelected = React.useCallback(\n async (orderTemplate: ProductList) => {\n setChosenOrderTemplate(orderTemplate);\n // assuming selected catalogId will be passed to component and if not passed then get from context\n const catalogId = props.catalogId ?? getCatalogId(props.context.actionContext.requestContext);\n validateCatalogId(catalogId);\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const linesToAdd: ProductListLine[] = props.data.products.map(line => {\n return {\n ...line,\n ...(isMultipleCatalogFeatureEnabledInHq && { catalogId: line.CatalogId || catalogId }),\n ProductListId: orderTemplate.Id\n };\n });\n\n const allProductInputs: FullProductInput[] = [];\n for (const listLine of linesToAdd) {\n if (listLine.ProductId) {\n allProductInputs.push(\n new FullProductInput(\n listLine.ProductId,\n props.context.actionContext.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(props.context.actionContext),\n props.context.actionContext.requestContext\n )\n );\n }\n }\n\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n\n const addedLines = await ProductListsDataActions.addProductListLinesAsync(\n { callerContext: props.context.actionContext },\n orderTemplate.Id,\n linesToAdd\n );\n\n const quantities = addedLines.map(line => line.Quantity ?? 0);\n setAddedLinesCount(addedLines.length);\n setAddedItemsCount(ArrayExtensions.hasElements(quantities) ? ArrayExtensions.calculateSum(quantities) : 0);\n setAddedProducts(allProducts);\n\n setIsAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setIsLinesAddedToOrderTemplateDialogOpen(true);\n }, modalTimeoutTime);\n },\n [props.context.actionContext, props.data.products]\n );\n\n const onAddProductsToOrderTemplateClick = React.useCallback(() => {\n setIsAddToOrderTemplateModalOpen(true);\n }, []);\n\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const addToOrderTemplateReference: React.RefObject = React.createRef();\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n return (\n
\n \n {chosenOrderTemplate && addedProducts && (\n \n )}\n \n {props.resources.addProductsToOrderTemplateButton}\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\n duplicatedProductsHeader: string;\n\n duplicatedProductsDescription: string;\n\n updateQuantityButtonText: string;\n cancelDuplicateItemsButtonText: string;\n}\n\nexport interface IDuplicateItemsWhenAddingToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings?: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n executeOverrideQuantity(): Promise;\n onCancel(): void;\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const DuplicateItemsWhenAddingToOrderTemplateDialog = (dialogProps: IDuplicateItemsWhenAddingToOrderTemplateDialogProps) => {\n const { dialogStrings, className, modalOpen, executeOverrideQuantity } = dialogProps;\n\n return (\n \n \n {dialogStrings?.duplicatedProductsHeader}\n \n \n
\n
{dialogStrings?.duplicatedProductsDescription}
\n
\n
\n \n \n {dialogStrings?.updateQuantityButtonText}\n \n \n {dialogStrings?.cancelDuplicateItemsButtonText}\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 { getUrlSync, IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\n\nexport interface IItemAddedToOrderTemplateDialogResources {\n viewOrderTemplateButtonText: string;\n continueShoppingButtonText: string;\n itemAddedToOrderTemplateHeaderItemOneText: string;\n itemAddedToOrderTemplateHeaderItemFormatText: string;\n itemAddedToOrderTemplateHeaderMessageText: string;\n\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n}\n\nexport interface IItemAddedToOrderTemplateDialogData {\n product: SimpleProduct;\n productPrice: ProductPrice;\n quantity: number;\n orderTemplateId: string;\n}\n\nexport interface IItemAddedToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings: IItemAddedToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n imageSettings?: IImageSettings;\n}\n\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: SimpleProduct, imageSettings?: IImageSettings) => {\n const fallbackImageUrl = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n return (\n \n );\n};\n\nexport const ItemAddedToOrderTemplateDialog = (dialogProps: IItemAddedToOrderTemplateDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplateId, product, productPrice, quantity }\n } = dialogProps;\n\n const getOrderTemplatePageUrl = (): string => {\n const url = getUrlSync('ordertemplate', context.actionContext) || '';\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}id=${orderTemplateId}`;\n };\n\n const close: () => void = () => {\n window.location.reload(true);\n };\n\n const itemsString =\n quantity === 1\n ? dialogStrings.itemAddedToOrderTemplateHeaderItemOneText\n : dialogStrings.itemAddedToOrderTemplateHeaderItemFormatText.replace('{0}', quantity.toString());\n\n return (\n \n \n {itemsString}\n {dialogStrings.itemAddedToOrderTemplateHeaderMessageText}\n \n \n
\n {renderOrderTemplateImage(context, `${className}__dialog`, product, imageSettings)}\n
\n
{product.Name}
\n
\n {productPrice && (\n \n )}\n
\n {product.Dimensions && (\n
\n {product.Dimensions.map(dimension => dimension.DimensionValue?.Value)\n .filter(value => value)\n .join(', ')}\n
\n )}\n
\n
\n
\n \n \n {dialogStrings.viewOrderTemplateButtonText}\n \n \n {dialogStrings.continueShoppingButtonText}\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 { IComponent, IComponentProps, msdyn365Commerce, isChannelTypeB2B, IImageSettings } from '@msdyn365-commerce/core';\nimport { AsyncResult, Customer, ProductDimension, ProductList, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n addItemToOrderTemplate,\n AddItemToOrderTemplateInput,\n getPriceForSelectedVariant,\n OrderTemplate,\n PriceForSelectedVariantInput,\n updateOrderTemplateAction,\n UpdateOrderTemplateInput,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, UncontrolledTooltip } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Popper from 'popper.js';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogData,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n DuplicateItemsWhenAddingToOrderTemplateDialog,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources\n} from '../duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component';\nimport {\n IItemAddedToOrderTemplateDialogResources,\n ItemAddedToOrderTemplateDialog\n} from '../item-added-to-order-template-dialog/item-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\n\nexport interface IAddToOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n itemAddedToOrderTemplateDialogResources: IItemAddedToOrderTemplateDialogResources;\n duplicateItemsWhenAddingToOrderTemplateDialogResources: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n\n addToOrderTemplateButtonText: string;\n addToOrderTemplateButtonTooltip: string;\n\n addToOrderTemplateMessage?: string;\n addItemToOrderTemplateError?: string;\n\n showButtonText?: boolean;\n showButtonTooltip?: boolean;\n shouldShowButtonFailedTooltip?: boolean;\n disableButton?: boolean;\n tooltipPosition?: Popper.Placement;\n showStatusMessage?: boolean;\n disabled?: boolean;\n canAddMasterProduct?: boolean;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n\n imageSettings?: IImageSettings;\n\n onSuccess?(): void;\n onError?(result: IOrderTemplateActionErrorResult): void;\n}\n\nexport interface IOrderTemplateActionErrorResult {\n status: 'FAILED' | 'MISSING_DIMENSION';\n\n missingDimensions?: ProductDimension[];\n}\n\ninterface IAddToOrderTemplateStateManager {\n waiting: boolean;\n content: IAddToOrderTemplateContentState;\n\n setWaiting(newWaiting: boolean): void;\n setContent(newContent: IAddToOrderTemplateContentState): void;\n}\n\ninterface IAddToOrderTemplateContentState {\n showAlert?: boolean;\n orderTemplateTextMessage?: string;\n color?: string;\n}\n\ninterface IAddToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n\n product: SimpleProduct;\n quantity: number;\n\n customerInformation?: Customer;\n isChannelTypeB2B?: boolean;\n}\n\nexport interface IAddToOrderTemplateComponent extends IComponent {\n onClick(): (\n event: React.MouseEvent,\n props: IAddToOrderTemplateComponentProps,\n state: IAddToOrderTemplateStateManager\n ) => void;\n}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IAddToOrderTemplateComponentProps,\n state: IAddToOrderTemplateStateManager,\n openModal: (opened: boolean) => void\n): Promise => {\n const { user } = props.context.request;\n\n if (state.waiting) {\n return;\n }\n\n if (!user.isAuthenticated && user.signInUrl && window) {\n window.location.assign(user.signInUrl);\n return;\n }\n\n addToOrderTemplate(props, openModal);\n state.setWaiting(false);\n};\n\nconst onDismiss = (state: IAddToOrderTemplateStateManager): void => {\n state.setContent({ color: 'success', showAlert: false });\n};\n\nconst AddToOrderTemplateComponentActions = {\n onClick,\n onDismiss\n};\n\nconst hasProductInOrderTemplates = (productToFind: SimpleProduct) => {\n /*\n TODO: Currently API does not support filtering by products.\n await getProductListLinesAsync(context, '',)\n return orderTemplates.filter(orderTemplate =>\n orderTemplate.orderTemplateLines.filter(\n product => product.productListLine.ProductId === productToFind.RecordId).length !== 0).length !== 0;\n */\n return false;\n};\n\nconst AddToOrderTemplate: React.FC = (props: IAddToOrderTemplateComponentProps) => {\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const [waiting, setWaiting] = useState(false);\n const [content, setContent] = useState({});\n const state: IAddToOrderTemplateStateManager = {\n waiting,\n content,\n\n setWaiting,\n setContent\n };\n\n const [addToOrderTemplateModalOpen, setAddToOrderTemplateModalOpen] = useState(false);\n\n const [chosenOrderTemplateId, setChosenOrderTemplateId] = useState(undefined);\n const [productPrice, setProductPrice] = useState(null);\n const [itemAddedToOrderTemplateDialogOpen, setItemAddedToOrderTemplateDialogOpen] = useState(false);\n const [duplicateItemsWhenAddingToOrderTemplateDialogOpen, setDuplicateItemsWhenAddingToOrderTemplateDialogOpen] = useState(false);\n const catalogId = props.catalogId;\n validateCatalogId(catalogId);\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const executeAddItemToOrderTemplate = async (orderTemplate: ProductList) => {\n setChosenOrderTemplateId(orderTemplate.Id);\n const input = isMultipleCatalogFeatureEnabledInHq\n ? new AddItemToOrderTemplateInput(\n orderTemplate.Id,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea',\n isMultipleCatalogFeatureEnabledInHq,\n catalogId\n )\n : new AddItemToOrderTemplateInput(\n orderTemplate.Id,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea'\n );\n await addItemToOrderTemplate(input, props.context.actionContext)\n .then(async result => {\n const retrievedProductPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(\n props.data.product.RecordId,\n props.context.actionContext.requestContext.apiSettings.channelId,\n props.data.product\n ),\n props.context.actionContext\n );\n setProductPrice(retrievedProductPrice);\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setItemAddedToOrderTemplateDialogOpen(true);\n }, 500);\n })\n .catch(error => {\n if (error.error?.name !== 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\n return AsyncResult.reject(error);\n }\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(true);\n }, 500);\n return AsyncResult.resolve();\n });\n };\n\n const onDuplicateDialogCancel = () => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setAddToOrderTemplateModalOpen(true);\n }, 500);\n };\n\n const overrideQuantity = async () => {\n const input = isMultipleCatalogFeatureEnabledInHq\n ? new UpdateOrderTemplateInput(\n chosenOrderTemplateId!,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea',\n isMultipleCatalogFeatureEnabledInHq,\n catalogId\n )\n : new UpdateOrderTemplateInput(\n chosenOrderTemplateId!,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea'\n );\n await updateOrderTemplateAction(input, props.context.actionContext);\n\n const retrievedProductPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(\n props.data.product.RecordId,\n props.context.actionContext.requestContext.apiSettings.channelId,\n props.data.product\n ),\n props.context.actionContext\n );\n setProductPrice(retrievedProductPrice);\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setItemAddedToOrderTemplateDialogOpen(true);\n }, 500);\n };\n\n const {\n addToOrderTemplateButtonText,\n showStatusMessage,\n showButtonText,\n className,\n disabled,\n showButtonTooltip,\n shouldShowButtonFailedTooltip,\n disableButton,\n tooltipPosition,\n addToOrderTemplateButtonTooltip,\n addToOrderTemplateDialogResources,\n createOrderTemplateDialogResources\n } = props;\n\n const onDismissHandler = () => {\n AddToOrderTemplateComponentActions.onDismiss(state);\n };\n const ariaLabel = addToOrderTemplateButtonText;\n const addToOrderTemplateRef: React.RefObject = React.createRef();\n const showMessage = showStatusMessage !== undefined ? showStatusMessage : true;\n const showTooltip = showButtonTooltip !== undefined ? showButtonTooltip : true;\n const tooltipPos = showButtonTooltip !== undefined ? tooltipPosition : 'top-end';\n\n const dialogData: IAddToOrderTemplateDialogData = {\n orderTemplates: props.data.orderTemplates\n };\n\n const onClickHandler = (event: React.MouseEvent) => {\n return AddToOrderTemplateComponentActions.onClick(event, props, state, setAddToOrderTemplateModalOpen);\n };\n\n return (\n <>\n <>\n \n {showButtonText ? ariaLabel : ''}\n \n {showTooltip && (\n \n {shouldShowButtonFailedTooltip ? addToOrderTemplateButtonTooltip : ariaLabel}\n \n )}\n \n {state.content.showAlert && showMessage ? (\n
\n \n {state.content.orderTemplateTextMessage}\n \n
\n ) : (\n ''\n )}\n \n {chosenOrderTemplateId && productPrice && (\n \n )}\n \n \n );\n};\n\nconst addToOrderTemplate = (props: IAddToOrderTemplateComponentProps, openModal: (opened: boolean) => void): void => {\n const { canAddMasterProduct } = props;\n\n if (props.data.product.Dimensions && !canAddMasterProduct) {\n const missingDimensions = props.data.product.Dimensions.filter(\n dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value)\n );\n\n if (missingDimensions.length > 0) {\n // At least one dimension with no value exists on the product, won't be able to proceed.\n propagateError(props, { status: 'MISSING_DIMENSION', missingDimensions });\n return;\n }\n }\n\n openModal(true);\n};\n\nconst propagateError = (props: IAddToOrderTemplateComponentProps, result: IOrderTemplateActionErrorResult): void => {\n const { onError } = props;\n\n if (onError) {\n onError(result);\n }\n};\n\nexport const AddToOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IAddToOrderTemplateComponent\n>('AddToOrderTemplate', { component: AddToOrderTemplate, ...AddToOrderTemplateComponentActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\n\nexport interface IItemAddedToCartDialogResources {\n viewCartButtonText: string;\n orderTemplateCloseButtonText: string;\n itemAddedToCartHeaderItemOneText: string;\n itemAddedToCartHeaderItemFormatText: string;\n itemAddedToCartHeaderMessageText: string;\n\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n}\n\nexport interface IItemAddedToCartDialogData {\n product: SimpleProduct;\n productPrice: ProductPrice;\n quantity: number;\n}\n\nexport interface IItemAddedToCartDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings: IItemAddedToCartDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n onClose(): void;\n}\n\nconst renderImage = (context: ICoreContext, className: string, product: SimpleProduct, imageSettings?: IImageSettings) => {\n const fallbackImageUrl = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n};\n\nexport const ItemAddedToCartDialog = (dialogProps: IItemAddedToCartDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n data: { product, productPrice, quantity }\n } = dialogProps;\n\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) || '';\n };\n\n const close: () => void = () => {\n dialogProps.onClose();\n };\n\n const itemsString =\n quantity === 1\n ? dialogStrings.itemAddedToCartHeaderItemOneText\n : dialogStrings.itemAddedToCartHeaderItemFormatText.replace('{0}', quantity.toString());\n\n return (\n \n \n {itemsString}\n {dialogStrings.itemAddedToCartHeaderMessageText}\n \n \n
\n {renderImage(context, `${className}__dialog`, product)}\n
\n
{product.Name}
\n
\n {productPrice && (\n \n )}\n
\n {product.Dimensions && (\n
\n {product.Dimensions.map(dimension => dimension.DimensionValue?.Value)\n .filter(value => value)\n .join(', ')}\n
\n )}\n
\n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.orderTemplateCloseButtonText}\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { IComponent, IComponentProps, msdyn365Commerce, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { AsyncResult, CartLine, Customer, ProductList, ProductListLine } from '@msdyn365-commerce/retail-proxy';\nimport {\n addProductListLinesAsync,\n updateProductListLinesAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\nimport {\n FullProductInput,\n getFullProducts,\n getProductDetailsCriteriaFromActionInput,\n getProductListLines,\n GetProductListLinesInput,\n OrderTemplate\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, UncontrolledTooltip } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n ILinesAddedToOrderTemplateDialogResources,\n LinesAddedToOrderTemplateDialog\n} from '../lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\nimport {\n DuplicateItemsWhenAddingToOrderTemplateDialog,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources\n} from '../duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component';\nexport interface ISaveCartToOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n linesAddedToOrderTemplateDialogResources: ILinesAddedToOrderTemplateDialogResources;\n\n createOrderTemplateFromCartButton: string;\n createOrderTemplateFromCartButtonTooltip: string;\n\n duplicateItemsWhenAddingToOrderTemplateDialogResources?: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n}\n\ninterface ISaveCartToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n cartLines: CartLine[];\n customerInformation?: Customer;\n isChannelTypeB2B?: boolean;\n}\n\ninterface ISaveCartToOrderTemplateContentState {\n showAlert?: boolean;\n orderTemplateTextMessage?: string;\n color?: string;\n}\n\ninterface ISaveCartToOrderTemplateStateManager {\n waiting: boolean;\n content: ISaveCartToOrderTemplateContentState;\n\n setWaiting(newWaiting: boolean): void;\n setContent(newContent: ISaveCartToOrderTemplateContentState): void;\n}\n\nexport interface ISaveCartToOrderTemplateComponent extends IComponent {\n onClick(): (\n event: React.MouseEvent,\n props: ISaveCartToOrderTemplateComponentProps,\n state: ISaveCartToOrderTemplateStateManager\n ) => void;\n}\n\nconst onDismiss = (state: ISaveCartToOrderTemplateStateManager): void => {\n state.setContent({ color: 'success', showAlert: false });\n};\n\nconst SaveCartToOrderTemplateActions = {\n onDismiss\n};\n\nconst SaveCartToOrderTemplate: React.FC = (props: ISaveCartToOrderTemplateComponentProps) => {\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const [chosenOrderTemplate, setChosenOrderTemplate] = useState(undefined);\n const [addedProducts, setAddedProducts] = useState(undefined);\n const [addToOrderTemplateModalOpen, setAddToOrderTemplateModalOpen] = useState(false);\n const [linesAddedToOrderTemplateDialogOpen, setLinesAddedToOrderTemplateDialogOpen] = useState(false);\n const [duplicateItemsWhenAddingToOrderTemplateDialogOpen, setDuplicateItemsWhenAddingToOrderTemplateDialogOpen] = useState(false);\n const [addedLinesCount, setAddedLinesCount] = useState(0);\n const [addedItemsCount, setAddedItemsCount] = useState(0);\n\n const {\n addToOrderTemplateDialogResources,\n createOrderTemplateDialogResources,\n createOrderTemplateFromCartButton,\n createOrderTemplateFromCartButtonTooltip\n } = props;\n\n const onDuplicateDialogCancel = () => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setAddToOrderTemplateModalOpen(true);\n }, 500);\n };\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const overrideQuantity = async () => {\n const newLinesToupdate: ProductListLine[] = [];\n\n for (const cartLine of props.data.cartLines) {\n const getLinesInput = new GetProductListLinesInput(chosenOrderTemplate?.Id!, cartLine.ProductId!.toString());\n const linesState = await getProductListLines(getLinesInput, props.context.actionContext);\n const length = 1;\n const linesToUpdate = linesState.lines.filter(line => line.productListLine.ProductId === cartLine.ProductId);\n if (linesToUpdate.length !== length) {\n // skip new line if not exist already top update\n continue;\n }\n const lineToUpdate = linesToUpdate[0].productListLine;\n lineToUpdate.UnitOfMeasure = cartLine.UnitOfMeasureSymbol || 'ea';\n lineToUpdate.Quantity = cartLine.Quantity!;\n if (isMultipleCatalogFeatureEnabledInHq) {\n lineToUpdate.CatalogId = cartLine.CatalogId;\n }\n newLinesToupdate.push(lineToUpdate);\n }\n\n await updateProductListLinesAsync(\n {\n callerContext: props.context.actionContext\n },\n chosenOrderTemplate!.Id,\n newLinesToupdate\n ).then(async updatedLines => {\n updateLinesCounts(updatedLines);\n const allProductInputs: FullProductInput[] = getFullProductsDetails(updatedLines);\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n setAddedProducts(allProducts);\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setLinesAddedToOrderTemplateDialogOpen(true);\n }, 500);\n });\n };\n const getFullProductsDetails = (productLines: ProductListLine[]) => {\n const allProdInputs: FullProductInput[] = [];\n productLines.forEach(lines => {\n if (lines.ProductId) {\n allProdInputs.push(\n new FullProductInput(\n lines.ProductId,\n props.context.actionContext.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(props.context.actionContext),\n props.context.actionContext.requestContext\n )\n );\n }\n });\n return allProdInputs;\n };\n\n const onOrderTemplateSelected = async (orderTemplate: ProductList) => {\n setChosenOrderTemplate(orderTemplate);\n const allProductListLines = props.data.cartLines?.map(cartLine => {\n const productListLineToAdd: ProductListLine = {\n ProductListId: orderTemplate.Id,\n ProductId: cartLine.ProductId,\n Quantity: cartLine.Quantity,\n UnitOfMeasure: cartLine.UnitOfMeasureSymbol\n };\n return productListLineToAdd;\n });\n\n const allProductInputs: FullProductInput[] = getFullProductsDetails(allProductListLines);\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n\n // Filter out products with keyed in price\n const filteredProductListLines = props.data.cartLines\n .filter(cartline => !cartline.IsPriceKeyedIn)\n .map(cartLine => {\n const productListLineToAdd: ProductListLine = {\n ProductListId: orderTemplate.Id,\n ProductId: cartLine.ProductId,\n Quantity: cartLine.Quantity,\n UnitOfMeasure: cartLine.UnitOfMeasureSymbol,\n ...(isMultipleCatalogFeatureEnabledInHq && { catalogId: cartLine.CatalogId })\n };\n\n return productListLineToAdd;\n });\n\n await addProductListLinesAsync({ callerContext: props.context.actionContext }, orderTemplate.Id, filteredProductListLines)\n .then(filteredAddedLines => {\n updateLinesCounts(filteredAddedLines);\n setAddedProducts(allProducts);\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setLinesAddedToOrderTemplateDialogOpen(true);\n }, 500);\n })\n .catch(error => {\n if (error.name !== 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\n return AsyncResult.reject(error);\n }\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(true);\n }, 500);\n return AsyncResult.resolve();\n });\n };\n const updateLinesCounts = (lines: ProductListLine[]) => {\n setAddedLinesCount(lines.length);\n setAddedItemsCount(lines.map(line => line.Quantity || 1).reduce((firstQuantity, secondQuantity) => firstQuantity + secondQuantity));\n };\n const onSaveCartToOrderTemplateClick = () => {\n setAddToOrderTemplateModalOpen(true);\n };\n\n const areAllCartlinesPriceKeyedIn = props.data.cartLines.filter(cartline => !cartline.IsPriceKeyedIn).length === 0;\n\n const addToOrderTemplateRef: React.RefObject = React.createRef();\n\n return (\n <>\n \n {chosenOrderTemplate && addedProducts && (\n \n )}\n \n \n {createOrderTemplateFromCartButton}\n \n {areAllCartlinesPriceKeyedIn && (\n \n {createOrderTemplateFromCartButtonTooltip}\n \n )}\n \n );\n};\n\nexport const SaveCartToOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n ISaveCartToOrderTemplateComponent\n>('SaveCartToOrderTemplate', { component: SaveCartToOrderTemplate, ...SaveCartToOrderTemplateActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { ISwatchItem, SwatchComponent } from '../../product-dimension';\n\n/**\n * Props for product component swatch.\n */\nexport interface IProductComponentV2SwatchProps {\n context: ICoreContext;\n swatches: ISwatchItem[];\n dimensionType?: string;\n onSelectDimension(coreContext: ICoreContext, swatchItem: ISwatchItem, dimensionType?: string): void;\n}\n\n/**\n * Swatch for the product component.\n * @param props - Swatch props.\n * @returns React element.\n */\nexport const ProductComponentV2SwatchComponent: React.FC = (props: IProductComponentV2SwatchProps) => {\n const { context, dimensionType, swatches, onSelectDimension } = props;\n\n const onSelectItem = React.useCallback(\n (item: ISwatchItem) => {\n onSelectDimension(context, item, dimensionType);\n },\n [onSelectDimension, context, dimensionType]\n );\n\n if (ArrayExtensions.hasElements(swatches)) {\n return ;\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\nimport { extend, IClientDimension, IDictionaryStringString, IGrid } from '../utilities';\n\n/**\n * Timed Text Markup Language (TTML).\n * See http://www.w3.org/TR/ttml1/ for more details.\n */\nexport const xmlNS = 'http://www.w3.org/XML/1998/namespace';\n\n/**\n * @interface ITtmlSettings\n * @classdesc - The ITtmlSettings interface contract.\n */\nexport interface ITtmlSettings {\n ttmlNamespace?: string;\n ttmlStyleNamespace?: string;\n ttmlParameterNamespace?: string;\n ttmlMetaNamespace?: string;\n idPrefix?: string;\n mediaFrameRate?: number;\n mediaFrameRateMultiplier?: number;\n mediaSubFrameRate?: number;\n mediaTickRate?: number;\n supportedTimeBase?: string;\n rootContainerRegionDimensions?: IClientDimension | null;\n relatedMediaObjectRegion?: IClientDimension | null;\n cellResolution?: IGrid;\n defaultRegionStyle?: IDictionaryStringString;\n fontMap?: IDictionaryStringString;\n log?: Function;\n}\n\n/**\n *\n * The TtmlSettings class.\n * The TtmlSettings class is used to pass settings between the ttml parser, the ttml context, and the outside world.\n * It supplies default values which can be overridden via overrides passed to the constructor.\n */\nexport class TtmlSettings implements ITtmlSettings {\n /**\n * @name - ttmlNamespace\n * @description - The ttml namespace to use.\n * @public\n * @type {string}\n */\n public ttmlNamespace: string = 'http://www.w3.org/ns/ttml';\n\n /**\n * @name - ttmlStyleNamespace\n * @description - The ttml style namespace to use.\n * @public\n * @type {string}\n */\n public ttmlStyleNamespace: string = 'http://www.w3.org/ns/ttml#styling';\n\n /**\n * @name - ttmlParameterNamespace\n * @description - The ttml parameter namespace to use.\n * @public\n * @type {string}\n */\n public ttmlParameterNamespace: string = 'http://www.w3.org/ns/ttml#parameter';\n\n /**\n * @name - ttmlMetaNamespace\n * @description - The ttml metadata namespace to use.\n * @public\n * @type {string}\n */\n public ttmlMetaNamespace: string = 'http://www.w3.org/ns/ttml#metadata';\n\n /**\n * @name - idPrefix\n * @description - The id prefix to use so ids copied from the ttml doc are unique.\n * @public\n * @type {string}\n */\n public idPrefix: string = '';\n\n /**\n * @name - mediaFrameRate\n * @description - The media frame rate to use.\n * @public\n * @type {number}\n */\n public mediaFrameRate: number = 30;\n\n /**\n * @name - mediaFrameRateMultiplier\n * @description - The media frame rate multiplier to use.\n * @public\n * @type {number}\n */\n public mediaFrameRateMultiplier: number = 1;\n\n /**\n * @name - mediaSubFrameRate\n * @description - The media sub frame rate to use.\n * @public\n * @type {number}\n */\n public mediaSubFrameRate: number = 1;\n\n /**\n * @name - mediaTickRate\n * @description - The media tick rate to use.\n * @public\n * @type {number}\n */\n public mediaTickRate: number = 1000;\n\n /**\n * @name - supportedTimeBase\n * @description - The support timebase value.\n * @public\n * @type {string}\n */\n public supportedTimeBase: string = 'media';\n\n /**\n * @name - rootContainerRegionDimensions\n * @description - The root container's dimensions.\n * @public\n * @type {IClientDimension}\n */\n public rootContainerRegionDimensions: IClientDimension | null = null;\n\n /**\n * @name - relatedMediaObjectRegion\n * @description - The media object's dimensions.\n * @public\n * @type {IClientDimension}\n */\n public relatedMediaObjectRegion: IClientDimension | null = null;\n\n /**\n * @name - cellResolution\n * @description - The default cell grid.\n * @public\n * @type {IGrid}\n */\n public cellResolution: IGrid = { rows: 15, columns: 32 };\n\n /**\n * @name - defaultRegionStyle\n * @description - The default region style.\n * @public\n * @type {IDictionaryStringString}\n */\n public defaultRegionStyle: IDictionaryStringString = {\n backgroundColor: 'transparent',\n color: '#E8E9EA',\n direction: 'ltr',\n display: 'auto',\n displayAlign: 'before',\n extent: 'auto',\n fontFamily: 'default',\n fontSize: '1c',\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: 'normal',\n opacity: '1',\n origin: 'auto',\n overflow: 'hidden',\n padding: '0',\n showBackground: 'always',\n textAlign: 'start',\n textDecoration: 'none',\n textOutline: 'none',\n unicodeBidi: 'normal',\n visibility: 'visible',\n wrapOption: 'normal',\n writingMode: 'lrtb'\n };\n\n /**\n * @name - fontMap\n * @description - The default font map.\n * @public\n * @type {IDictionaryStringString}\n */\n public fontMap: IDictionaryStringString = {};\n\n /**\n * @name - log\n * @description - The logging function to use in debug mode.\n * @public\n * @type {Function}\n */\n public log: Function | undefined;\n\n /*\n * Constructor for the TtmlSettings class.\n */\n public constructor(settingsOverrides?: ITtmlSettings) {\n // These are from the Simple Delivery Profile\n // Per spec recommendation that default be monospace sans serif.\n this.fontMap.default = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.monospaceSerif = 'Courier';\n this.fontMap.proportionalSerif = 'Times New Roman, Serif';\n this.fontMap.monospaceSansSerif = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.proportionalSansSerif = 'Arial, Sans-serif';\n this.fontMap.casual = 'Verdana';\n this.fontMap.cursive = 'Zapf-Chancery, Segoe script, Cursive';\n this.fontMap.smallCaps = 'Arial, Helvetica';\n\n // These are others from the broader ttml (v1.0)\n this.fontMap.monospace = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.sansSerif = 'Arial, Sans-serif';\n this.fontMap.serif = 'Times New Roman, Serif';\n\n if (settingsOverrides) {\n extend(this, settingsOverrides);\n }\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n addClass,\n css,\n extend,\n format,\n getDimensions,\n getText,\n IClientDimension,\n IDictionaryStringString,\n isNullOrWhiteSpace,\n nodeListToArray,\n trim\n} from '../utilities';\nimport { ITtmlEvent, TtmlParser } from './ttml-parser';\nimport { TtmlSettings, xmlNS } from './ttml-settings';\n\n// Timed Text Markup Language (TTML).\n// See http://www.w3.org/TR/ttml1/ for more details.\n\n/**\n * @interface ITtmlContext\n * @classdesc - The TtmlContext interface contract.\n */\nexport interface ITtmlContext {\n setOwnerDocument(ownerDocument: Document): void;\n updateRelatedMediaObjectRegion(dimensions: IClientDimension): boolean;\n resetCurrentEvents(): void;\n hasEvents(): boolean;\n updateCurrentEvents(time: number): boolean;\n getCues(time: number): HTMLElement[];\n}\n\n/**\n * @interface ITtmlTranslationResult\n * @classdesc - The ITtmlTranslationResult interface contract.\n */\ninterface ITtmlTranslationResult {\n outerNode: HTMLElement | null;\n innerNode: HTMLElement | null;\n inheritableStyleSet?: IDictionaryStringString | null;\n}\n\n/**\n * @interface ITtmlPruneResult\n * @classdesc - The ITtmlPruneResult interface contract.\n */\ninterface ITtmlPruneResult {\n prunedElement: Element;\n hasPreservedContent: boolean;\n}\n\n/**\n * The TtmlContext. An instance of this class is returned from the TttmlParser.parse() method after it parses a ttml file.\n * This context is then used by the VideoClosedCaptions object to get the captions for any play position of the video.\n */\nexport class TtmlContext implements ITtmlContext {\n /**\n * @name - lengthRegEx\n * The regular expression pattern used in ttml->css text outline conersion.\n * @static\n * @private\n * @type {RegExp}\n */\n private static readonly lengthRegEx: RegExp = /\\s*(\\d+\\.*\\d*)(.*)\\s*/;\n\n /**\n * @name - rgbaRegEx\n * The regular expression pattern used in ttml->css color conersion.\n * @static\n * @private\n * @type {RegExp}\n */\n private static readonly rgbaRegEx: RegExp = /\\s*rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)\\s*/;\n\n /**\n * @name - TtmlNamedColorMap\n * The table used to map named ttml color values to css color values.\n * @static\n * @private\n * @type {IDictionaryStringString}\n */\n private static readonly TtmlNamedColorMap: IDictionaryStringString = {\n transparent: 'rgba(0,0,0,0)',\n black: 'rgba(0,0,0,1)',\n silver: 'rgba(192,192,192,1)',\n gray: 'rgba(128,128,128,1)',\n white: 'rgba(255,255,255,1)',\n maroon: 'rgba(128,0,0,1)',\n red: 'rgba(255,0,0,1)',\n purple: 'rgba(128,0,128,1)',\n fuchsia: 'rgba(255,0,255,1)',\n magenta: 'rgba(255,0,255,1)',\n green: 'rgba(0,128,0,1)',\n lime: 'rgba(0,255,0,1)',\n olive: 'rgba(128,128,0,1)',\n yellow: 'rgba(255,255,0,1)',\n navy: 'rgba(0,0,128,1)',\n blue: 'rgba(0,0,255,1)',\n teal: 'rgba(0,128,128,1)',\n aqua: 'rgba(0,255,255,1)',\n cyan: 'rgba(0,255,255,1)'\n };\n\n /**\n * @name - events\n * The set of all ttml events.\n * @public\n * @type {ITtmlEvent[]}\n */\n public events!: ITtmlEvent[];\n\n /**\n * @name - settings\n * The ttml settings.\n * @public\n * @type {TtmlSettings}\n */\n public settings!: TtmlSettings;\n\n /**\n * @name - styleSetCache\n * The ttml styleSet cache.\n * @public\n * @type {IDictionaryStringString[]}\n */\n public styleSetCache!: IDictionaryStringString[];\n\n /**\n * @name - rootContainerRegion\n * The root container region.\n * @public\n * @type {Element}\n */\n public rootContainerRegion!: Element;\n\n /**\n * @name - root\n * The root element.\n * @public\n * @type {Element}\n */\n public root!: Element;\n\n /**\n * @name - body\n * The body element.\n * @public\n * @type {Element}\n */\n public body!: Element;\n\n /**\n * @name - layout\n * The layout element.\n * @public\n * @type {Element}\n */\n public layout!: Element;\n\n /**\n * @name - ownerDocument\n * The owner document for this context. Used to create html elements.\n * @private\n * @type {Document}\n */\n private ownerDocument!: Document;\n\n /**\n * @name - currentEvents\n * The current set of temporally active events.\n * @private\n * @type {ITtmlEvent[]}\n */\n private currentEvents!: ITtmlEvent[];\n\n /**\n * @name - currentEventsTime\n * The time the currentEvents was populated.\n * @private\n * @type {number}\n */\n private currentEventsTime!: number;\n\n /**\n * Converts a ttml text decoration style value to a css one.\n * @param ttmlTextDecoration - The ttml value.\n * @returns - The css value.\n */\n private static _ttmlToCssTextDecoration(ttmlTextDecoration: string): string {\n let textDecoration = '';\n const parts = ttmlTextDecoration.split(/\\s+/);\n\n // Since we have no CSS for the 'no' values just replace them all with a none at the front of the list.\n for (const value of parts) {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'none':\n case 'noUnderline':\n case 'noLineThrough':\n case 'noOverline':\n textDecoration = 'none';\n }\n }\n\n // Then append all the others.\n for (const value of parts) {\n switch (value) {\n case 'none':\n case 'noUnderline':\n case 'noLineThrough':\n case 'noOverline':\n break;\n case 'lineThrough':\n textDecoration += ' line-through';\n break;\n default:\n textDecoration += ` ${value}`;\n }\n }\n\n return trim(textDecoration);\n }\n\n /**\n * Converts a ttml text color style value to a css one.\n * #RRGGBB and rgb(rrr,ggg,bbb) do not need conversion and are not modified.\n * #RRGGBBAA is modified because css doesn't support it (at least as implemented in todays browsers).\n * rgba(rrr,ggg,bbb,aaa) is converted to rgba(rrr,ggg,bbb,0-1).\n * ttml namedColors are converted to rgb(rrr,ggg,bbb) in the unlikely event that their alpha (only) is overridden.\n * @param color - The ttml value.\n * @returns - The css value.\n */\n private static _ttmlToCssColor(color: string): string {\n let mappedColor = color;\n\n color = color.toLowerCase();\n\n if (color.startsWith('rgba')) {\n const parts = TtmlContext.rgbaRegEx.exec(color);\n\n if (parts && parts.length === 5) {\n const red = parts[1];\n const green = parts[2];\n const blue = parts[3];\n const alpha = Number.parseInt(parts[4], 10);\n\n mappedColor = format('rgba({0},{1},{2},{3})', red, green, blue, Math.round((alpha * 100) / 255) / 100);\n }\n } else if (color.startsWith('#') && color.length === 9) {\n const red = Number.parseInt(color.substr(1, 2), 16);\n const green = Number.parseInt(color.substr(3, 2), 16);\n const blue = Number.parseInt(color.substr(5, 2), 16);\n const alpha = Number.parseInt(color.substr(7, 2), 16);\n\n mappedColor = format('rgba({0},{1},{2},{3})', red, green, blue, Math.round((alpha * 100) / 255) / 100);\n } else if (TtmlContext.TtmlNamedColorMap[color]) {\n mappedColor = TtmlContext.TtmlNamedColorMap[color];\n }\n\n return mappedColor;\n }\n\n /**\n * Applies default styles to the element to match the ttml defaults.\n * @param element - The element to set the default styles on.\n * @returns - The specified element (for chaining).\n */\n private static _defaultStyle(element: HTMLElement): HTMLElement {\n // Set some element styles to our ttml defaults for them.\n css(element, 'background-color', TtmlContext.TtmlNamedColorMap.transparent);\n css(element, 'offset', '0');\n css(element, 'margin', '0');\n css(element, 'padding', '0');\n css(element, 'border', '0');\n return element;\n }\n\n /**\n * Set the context's owner document. It will use this to create elements during translation.\n * @param ownerDocument - The owner document for this context.\n */\n public setOwnerDocument(ownerDocument: Document): void {\n this.ownerDocument = ownerDocument;\n }\n\n /**\n * Updates the context's media object region.\n * @public\n * @param dimensions - The desired dimensions for the region.\n * @returns - True if the dimensions where changed, otherwise false.\n */\n public updateRelatedMediaObjectRegion(dimensions: IClientDimension): boolean {\n if (\n dimensions !== null &&\n (!this.settings.relatedMediaObjectRegion ||\n dimensions.width !== this.settings.relatedMediaObjectRegion.width ||\n dimensions.height !== this.settings.relatedMediaObjectRegion.height)\n ) {\n this.settings.relatedMediaObjectRegion = {\n width: dimensions.width,\n height: dimensions.height\n };\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Indicates whether or not the context has events.\n * @returns - True if the context has events, otherwise false.\n */\n public hasEvents(): boolean {\n return this.events && !!this.events.length;\n }\n\n /**\n * Resets the context's currentEvents.\n */\n public resetCurrentEvents(): void {\n this.currentEvents = [];\n }\n\n /**\n * Updates the context's currentEvents if there are new events for the specified time.\n * @param time - The time to get events for.\n * @returns - True if the events for the specified time are different than the currentEvents, otherwise false.\n */\n public updateCurrentEvents(time: number): boolean {\n const timeEvents = this._getTemporallyActiveEvents(time);\n\n // As a shortcut compare lengths first.\n const currentEventsLength = this.currentEvents ? this.currentEvents.length : 0;\n const timeEventsLength = timeEvents ? timeEvents.length : 0;\n\n if (currentEventsLength !== timeEventsLength) {\n this.currentEventsTime = time;\n this.currentEvents = timeEvents;\n return true;\n }\n\n if (this.currentEvents) {\n for (let index = 0; index < currentEventsLength; index++) {\n if (this.currentEvents[index].time !== timeEvents[index].time) {\n this.currentEventsTime = time;\n this.currentEvents = timeEvents;\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * The set of cues that apply to the specified time.\n * @param time - The time to get cues for.\n * @returns - The set of cues for the specified time, otherwise an empty [].\n */\n public getCues(time: number): HTMLElement[] {\n let cues: HTMLElement[] = [];\n\n if (this.currentEventsTime !== time) {\n this.updateCurrentEvents(time);\n }\n\n // Find all the region elements in the TTML namespace.\n const preserveSpace = TtmlParser.getAttributeNS(this.root, 'space', xmlNS) === 'preserve';\n const regions = (this.layout ? this.layout.getElementsByTagNameNS(this.settings.ttmlNamespace, 'region') : []);\n\n for (const region of regions) {\n const regionId = TtmlParser.getAttributeNS(region, 'id', xmlNS);\n const anonymousId = region.getAttribute('data-isanonymous');\n\n if (anonymousId || regionId) {\n const translation = this._translate(region, this.settings.defaultRegionStyle, preserveSpace, time, this.translateToHtml);\n\n if (translation.outerNode && translation.innerNode) {\n const innerNode = translation.innerNode;\n const outerNode = translation.outerNode;\n\n // Create a new subtree for the body element, prune elements\n // not associated with the region, and if its not empty then\n // select it into this region by adding it to div container.\n for (const event of this.events) {\n if (event.element) {\n if (this._isInRegion(event.element, anonymousId ? '' : regionId)) {\n const pruneResult = this._prune(\n event.element,\n translation.inheritableStyleSet!,\n preserveSpace,\n time,\n this.translateToHtml\n );\n let cueBody: Element | null = pruneResult.prunedElement;\n\n if (!pruneResult.hasPreservedContent && cueBody && !trim(getText(cueBody)).length) {\n cueBody = null;\n }\n\n if (cueBody) {\n innerNode.appendChild(cueBody);\n }\n }\n }\n }\n\n const showAlways = outerNode.getAttribute('data-showBackground') === 'always';\n\n if (showAlways || innerNode.children.length) {\n if (showAlways) {\n // Just needed internally for the previous check, don't pass through on the cue.\n outerNode.removeAttribute('data-showBackground');\n }\n\n cues.push(outerNode);\n }\n }\n }\n }\n\n // If we ended up with any displayable cues add them all to the rootContainerRegion cue.\n if (cues.length) {\n const rcr = this._translate(this.rootContainerRegion, { overflow: 'hidden', padding: '0' }, false, time, this.translateToHtml);\n\n for (const cue of cues) {\n rcr.innerNode!.appendChild(cue);\n }\n\n cues = [];\n cues.push(rcr.outerNode!);\n }\n\n return cues;\n }\n\n /**\n * Get the list of temporally active events for the specified time.\n * @private\n * @param time - The time to get the active events for.\n * @returns - The set of active events for the specified time, otherwise an empty [].\n */\n private _getTemporallyActiveEvents(time: number): ITtmlEvent[] {\n return this.events.filter(event => {\n return event.element ? this._isTemporallyActive(event.element, time) : true;\n });\n }\n\n /**\n * Determines whether or not the specified element is temporally active at the specified time.\n * @param element - The element to check.\n * @param time - The time to check against.\n * @returns - True if the element is active at the specified time, otherwise false.\n */\n private _isTemporallyActive(element: Element, time: number): boolean {\n return (\n (Number.parseInt(element.getAttribute('data-time-start')!, 10) || 0) <= time &&\n time < (Number.parseInt(element.getAttribute('data-time-end')!, 10) || 0)\n );\n }\n\n /**\n * Convert a ttml element into the equivalent in another format via the supplied translator function.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The element's inherited style set.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param translator - The translator function to use. Originally supported both xml/html but is always using html in MWF.\n * @returns - A ITtmlTranslationResult instance containing the translation results.\n */\n private _translate(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n preserveSpace: boolean,\n time: number,\n translator: Function\n ): ITtmlTranslationResult {\n let translation: ITtmlTranslationResult;\n let computedStyleSet: IDictionaryStringString;\n\n if (this._isTemporallyActive(element, time)) {\n const tag = this._getTagNameEquivalent(element);\n\n computedStyleSet = this._getComputedStyleSet(element, inheritedStyleSet, tag, time);\n\n if (computedStyleSet.display !== 'none') {\n const applicableStyleSet = this._getApplicableStyleSet(computedStyleSet, tag);\n\n translation = translator(element, applicableStyleSet, preserveSpace);\n\n return {\n outerNode: translation.outerNode,\n innerNode: translation.innerNode,\n inheritableStyleSet: this._getInheritableStyleSet(computedStyleSet)\n };\n }\n }\n\n return { outerNode: null, innerNode: null, inheritableStyleSet: null };\n }\n\n /**\n * Convert a ttml element into the its equivalent html element.\n * @param element - The ttml element to translate.\n * @param applicableStyleSet - The style set applicable to this element.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @returns - A ITtmlTranslationResult instance containing the translation results.\n */\n private readonly translateToHtml = (\n element: Element,\n applicableStyleSet: IDictionaryStringString,\n preserveSpace: boolean\n ): ITtmlTranslationResult => {\n let translation: HTMLElement;\n let innerNode: HTMLElement;\n const name = this._getTagNameEquivalent(element);\n let htmlName = '';\n let htmlClass = '';\n switch (name) {\n case 'ttml:region':\n htmlClass = 'cue ';\n\n /* Falls through */\n // break;\n case 'ttml:rootcontainerregion':\n case 'ttml:body':\n case 'ttml:div':\n htmlName = 'div';\n break;\n case 'ttml:p':\n htmlName = 'p';\n break;\n case 'ttml:span':\n htmlName = 'span';\n break;\n case 'ttml:br':\n htmlName = 'br';\n break;\n default:\n }\n\n const role = TtmlParser.getAttributeNS(element, 'role', this.settings.ttmlMetaNamespace);\n\n if (role) {\n htmlClass += ` ${role}`;\n }\n\n const agent = TtmlParser.getAttributeNS(element, 'agent', this.settings.ttmlMetaNamespace);\n\n if (agent) {\n htmlClass += ` ${agent}`;\n }\n\n // Hack until display:ruby on other elements works.\n if (role === 'x-ruby') {\n htmlName = 'ruby';\n } else if (role === 'x-rubybase') {\n htmlName = 'rb';\n } else if (role === 'x-rubytext') {\n htmlName = 'rt';\n }\n\n if (!isNullOrWhiteSpace(htmlName)) {\n translation = TtmlContext._defaultStyle(this.ownerDocument.createElement(htmlName));\n addClass(translation, trim(htmlClass));\n\n const title = TtmlParser.getAttributeNS(element, 'title', this.settings.ttmlMetaNamespace);\n\n if (title) {\n translation.setAttribute('title', title);\n }\n\n const id = TtmlParser.getAttributeNS(element, 'id', xmlNS);\n\n if (id && this.settings.idPrefix) {\n // Migrate the ttml doc id's over to the html markup.\n // Use idPrefix to ensure there are no name clases on id's already in target doc.\n translation.setAttribute('id', this.settings.idPrefix + id);\n }\n\n if (name === 'ttml:region') {\n // To get a to display properly we are actually going to need to create two nested
s\n // This is because for displayAlign to work we need a table-cell
inside a table
.\n innerNode = translation.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('div')));\n innerNode.setAttribute('style', 'display:table; border-spacing:0; cell-spacing:0; cell-padding:0; width:100%; height:100%');\n innerNode = innerNode.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('div')));\n css(innerNode, 'display', 'table-cell');\n\n // Apply the displayAlign style to inner table-cell
\n if (applicableStyleSet.displayAlign) {\n this._translateStyle(name, innerNode, { displayAlign: applicableStyleSet.displayAlign });\n\n // Then remove displayAlign from the applicableStyleSet so as not to also later apply it to the outer table
\n applicableStyleSet.displayAlign = '';\n }\n }\n\n // If we're preserving space add an inner with 'white-space: pre'.\n // This is how we implement preserving space in css and we need an inner\n // span because the 'real' span will already be setting it's css white-space\n // value to either normal or nowrap and we can't collide with that.\n if (preserveSpace && name === 'ttml:span') {\n innerNode = translation.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('span')));\n css(innerNode, 'white-space', 'pre');\n }\n\n // Default some css properties that we don't want to inadvertantly end up\n // inheriting values for that might cause adverse layout impacts for us.\n css(translation, 'position', 'static');\n css(translation, 'width', '100%');\n\n // Copy style from element over to html, translating into CSS as we go.\n this._translateStyle(name, translation, applicableStyleSet);\n }\n\n return { outerNode: translation!, innerNode: innerNode! ? innerNode! : translation! };\n };\n\n /**\n * Translate the ttml styles in a styleSet to their equivalent css styles and apply them to the specified html element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param element - The ttml element to translate.\n * @param applicableStyleSet - The style set applicable to this element.\n */\n private _translateStyle(tagName: string, element: HTMLElement, applicableStyleSet: IDictionaryStringString): void {\n for (const style in applicableStyleSet) {\n if (applicableStyleSet[style]) {\n this._applyStyle(element, tagName, style, applicableStyleSet[style]);\n }\n }\n }\n\n /**\n * Convert the element if it is in the region, then recurse into its contents.\n * If it ends up with no children then we dont add it to the region, we prune it.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The style set inherited by this element.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param translator - The translator function to use. Originally supported both xml/html but is always using html in MWF.\n * @param [ignoreAncestors] - Specifies whether or not to ignore the element's ancestors.\n * @returns - A ITtmlPruneResult instance containing the prune results.\n */\n private _prune(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n preserveSpace: boolean,\n time: number,\n translator: Function,\n ignoreAncestors: boolean = false\n ): ITtmlPruneResult {\n let outerNode: Element;\n let hasPreservedContent = false;\n\n let translation = this._translate(element, inheritedStyleSet, preserveSpace, time, translator);\n\n if (translation.outerNode !== null) {\n const tag = this._getTagNameEquivalent(element);\n\n outerNode = translation.outerNode;\n let innerNode = translation.innerNode;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.COMMENT_NODE) {\n // Do nothing.\n } else if (child.nodeType === Node.TEXT_NODE) {\n innerNode!.appendChild(document.createTextNode((child).data));\n\n if (preserveSpace && tag === 'ttml:span') {\n hasPreservedContent = true;\n }\n } else {\n let childPreserveSpace = preserveSpace;\n const spaceAttr = TtmlParser.getAttributeNS(child, 'space', xmlNS);\n\n if (spaceAttr) {\n childPreserveSpace = spaceAttr === 'preserve';\n }\n\n const pruneRecord = this._prune(\n child,\n translation.inheritableStyleSet!,\n childPreserveSpace,\n time,\n translator,\n true\n );\n\n hasPreservedContent = hasPreservedContent || pruneRecord.hasPreservedContent;\n\n if (pruneRecord.prunedElement) {\n innerNode!.appendChild(pruneRecord.prunedElement);\n }\n }\n }\n\n // Now traverse back till the body and build the corresponding structures.\n if (!ignoreAncestors) {\n let ancestor = element.parentNode;\n\n while (ancestor !== null && ancestor.nodeType === Node.ELEMENT_NODE && ancestor !== this.body) {\n translation = this._translate(ancestor, inheritedStyleSet, preserveSpace, time, translator);\n if (translation.outerNode) {\n innerNode = translation.innerNode;\n innerNode!.appendChild(outerNode);\n outerNode = translation.outerNode;\n } else {\n break;\n }\n\n ancestor = ancestor.parentNode;\n }\n }\n }\n\n return { prunedElement: outerNode!, hasPreservedContent };\n }\n\n /**\n * Build this element's ttml computed styleset.\n * This is used as the base styleSet to filter the inherited styleSet from for an element's children.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The styleSet inherited by this element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @returns - The resulting computed styleSet.\n */\n private _getComputedStyleSet(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n tagName: string,\n time: number\n ): IDictionaryStringString {\n // Start off with a clone of the inherited styleset.\n const computedStyleSet = extend({}, inheritedStyleSet);\n\n // Iterate over this nodes ttml styles and pave them onto it's computed styleset.\n extend(computedStyleSet, this.styleSetCache[Number.parseInt(element.getAttribute('data-styleSet')!, 10)]);\n\n // Apply any temporally active style animations.\n const sets = element.getElementsByTagNameNS(this.settings.ttmlNamespace, 'set');\n\n for (const set of nodeListToArray(sets)) {\n if (this._isTemporallyActive(set, time)) {\n TtmlParser.applyInlineStyles(this.settings, computedStyleSet, set);\n }\n }\n\n if (tagName === 'ttml:p' && computedStyleSet.lineHeight === 'normal') {\n // Special case for

's with tts:lineHeight='normal'\n // This means use the largest tts:fontSize value of any\n // of it's descendant 's. Since we don't know what\n // values those might be until translateStyle we'll just\n // save them all and figure it out then.\n const fontSizes = this._appendSpanFontSizes(element, this._getInheritableStyleSet(computedStyleSet), time, '');\n\n if (fontSizes) {\n computedStyleSet['computed-lineHeight'] = fontSizes;\n }\n }\n\n return computedStyleSet;\n }\n\n /**\n * Build this tags ttml applicable styleset from the specified computed styleSet to apply only to it.\n * @param computedStyleSet - The style set inherited by this element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @returns - The resulting applicable styleSet.\n */\n private _getApplicableStyleSet(computedStyleSet: IDictionaryStringString, tagName: string): IDictionaryStringString {\n const applicableStyleSet: IDictionaryStringString = {};\n\n // Special case extent to the front of the list as later processing of\n // padding will depend on it having already been set first.\n if (computedStyleSet.extent && this._isStyleApplicable(tagName, 'extent')) {\n applicableStyleSet.extent = computedStyleSet.extent;\n }\n\n // Special case color to the front of the list as later processing of\n // textOutline will depend on it having already been set first.\n if (computedStyleSet.color && this._isStyleApplicable(tagName, 'color')) {\n applicableStyleSet.color = computedStyleSet.color;\n }\n\n for (const style in computedStyleSet) {\n if (this._isStyleApplicable(tagName, style)) {\n applicableStyleSet[style] = computedStyleSet[style];\n }\n }\n\n return applicableStyleSet;\n }\n\n /**\n * Determines if the specified style applies to the specified ttml tagName.\n * NOTE: The ttml spec doesn't mention ttml:br in the styles 'applies to' sections but\n * as noted in the span section everything that applies to ttml:span also applies to ttml:br.\n * @private\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param style - The style to check against the tagName.\n * @returns - True if the ttml:style applies to the ttml:tag, otherwise false.\n */\n private _isStyleApplicable(tagName: string, style: string): boolean {\n switch (style) {\n case 'backgroundColor':\n case 'display':\n case 'visibility':\n return 'ttml:body ttml:div ttml:p ttml:region ttml:rootcontainerregion ttml:span ttml:br'.includes(tagName);\n\n // Technically these font styles do not apply to

s but for some reason the resulting html/css\n // for span/br doesnt compute line-height correctly if the entire containing

(div) isn't all the same...\n case 'fontFamily':\n case 'fontSize':\n case 'fontStyle':\n case 'fontWeight':\n return 'ttml:p ttml:span ttml:br'.includes(tagName);\n\n case 'color':\n case 'textDecoration':\n case 'textOutline':\n case 'wrapOption':\n return 'ttml:span ttml:br'.includes(tagName);\n\n case 'direction':\n case 'unicodeBidi':\n return 'ttml:p ttml:span ttml:br'.includes(tagName);\n\n case 'displayAlign':\n case 'opacity':\n case 'origin':\n case 'overflow':\n case 'padding':\n case 'showBackground':\n case 'writingMode':\n case 'zIndex':\n return 'ttml:region ttml:rootcontainerregion'.includes(tagName);\n\n case 'extent':\n return 'ttml:tt ttml:region ttml:rootcontainerregion'.includes(tagName);\n\n case 'computed-lineHeight':\n case 'lineHeight':\n case 'textAlign':\n return 'ttml:p'.includes(tagName);\n\n default:\n return false;\n }\n }\n\n /**\n * Filters a computed styleSet into an inheritable styleSet subset to pass on to children.\n * Not all styles are inheritable.\n * @private\n * @param computedStyleSet - The computed styleSet to filter.\n * @returns - The resulting inheritable styleSet.\n */\n private _getInheritableStyleSet(computedStyleSet: IDictionaryStringString): IDictionaryStringString {\n const inheritedStyleSet: IDictionaryStringString = {};\n\n for (const style in computedStyleSet) {\n if (computedStyleSet.hasOwnProperty(style)) {\n switch (style) {\n case 'backgroundColor':\n case 'computed-lineHeight':\n case 'display':\n case 'displayAlign':\n case 'extent':\n case 'opacity':\n case 'origin':\n case 'overflow':\n case 'padding':\n case 'showBackground':\n case 'unicodeBidi':\n case 'writingMode':\n case 'zIndex':\n break;\n default:\n inheritedStyleSet[style] = computedStyleSet[style];\n }\n }\n }\n\n return inheritedStyleSet;\n // eslint-disable-next-line max-lines\n }\n\n /**\n * Recurses through an element and it's descendants finding the font sizess of all it's 's.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The element's inherited styleSet.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param value - The list of font sizes to append to.\n * @returns - The value with any additional font sizes appended to it.\n */\n private _appendSpanFontSizes(element: Element, inheritedStyleSet: IDictionaryStringString, time: number, value: string): string {\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n const tag = this._getTagNameEquivalent(child);\n\n if (tag === 'ttml:span') {\n const computedStyleSet = this._getComputedStyleSet(child, inheritedStyleSet, 'ttml:span', time);\n const fontSize = computedStyleSet.fontSize;\n\n if (fontSize) {\n value += (value ? ',' : '') + fontSize;\n }\n\n value = this._appendSpanFontSizes(child, this._getInheritableStyleSet(computedStyleSet), time, value);\n }\n }\n }\n\n return value;\n }\n\n /**\n * Determines whether or not the specified element is associated with the specified region.\n * Ttml defines 5 ordered rules, where the first rule satisfied is used and remaining rules are skipped.\n * @param element - The ttml element to check.\n * @param regionId - The id of the region to see if the element is associated with.\n * @returns - True if the specified element is within the specified region, otherwise false.\n */\n private _isInRegion(element: Element, regionId: string): boolean {\n // Quick test: Out of normal order, but makes following rules simpler.\n // This is a shortcut to check step #4 first\n if (!regionId) {\n return true;\n }\n\n const elemRegion = TtmlParser.getAttributeNS(element, 'region', this.settings.ttmlNamespace);\n\n // 1. If the element specifies a region attribute, then the element is\n // associated with the region referenced by that attribute;\n if (elemRegion === regionId) {\n return true;\n }\n\n if (!elemRegion) {\n // 2. If some ancestor of that element specifies a region attribute, then the element is\n // associated with the region referenced by the most immediate ancestor that specifies\n // this attribute;\n let ancestor = element.parentNode;\n\n while (ancestor !== null && ancestor.nodeType === Node.ELEMENT_NODE) {\n const id = this._getRegionId(ancestor);\n if (id) {\n return id === regionId;\n }\n ancestor = ancestor.parentNode;\n }\n\n // 3. If the element contains a descendant element that specifies a region attribute,\n // then the element is associated with the region referenced by that attribute;\n for (const node of nodeListToArray(element.getElementsByTagName('*'))) {\n if (this._getRegionId(node) === regionId) {\n return true;\n }\n }\n }\n\n // 5. The element is not associated with any region.\n return false;\n }\n\n /**\n * Gets the region id for the specified element.\n * @param element - The ttml element to check.\n * @returns - The id of the region the element is associated with.\n */\n private _getRegionId(element: Element): string {\n let regionId: string;\n\n if (element.nodeType === Node.ELEMENT_NODE && element.namespaceURI === this.settings.ttmlNamespace) {\n if (TtmlParser.getLocalTagName(element) === 'region') {\n regionId = TtmlParser.getAttributeNS(element, 'id', xmlNS);\n } else {\n regionId = TtmlParser.getAttributeNS(element, 'region', this.settings.ttmlNamespace);\n }\n }\n\n return regionId!;\n }\n\n /**\n * Gets the tagName of the element with the current ttml namespace prepended if non-standard.\n * @param element - The ttml element to get the tagName of.\n * @returns - The tagName or '' if the namespace isn't one of the ttml ones.\n */\n private _getTagNameEquivalent(element: Element): string {\n const tagName = TtmlParser.getLocalTagName(element);\n const nameSpace = element.namespaceURI;\n\n if (nameSpace === this.settings.ttmlNamespace) {\n return `ttml:${tagName}`;\n }\n\n if (nameSpace === 'http://www.w3.org/1999/xhtml') {\n return tagName;\n }\n\n return '';\n }\n\n /**\n * Translates the ttml style/value into one or more css styles/values and applies them to the element.\n * @param element - The ttml element to apply the css style(s) too.\n * @param tagName - The ttml tagName associated with the element.\n * @param style - The ttml style name.\n * @param value - The ttml style value.\n */\n // eslint-disable-next-line complexity\n private _applyStyle(element: HTMLElement, tagName: string, style: string, value: string): void {\n let mappedValue = value;\n\n switch (style) {\n case 'color':\n case 'backgroundColor': {\n mappedValue = TtmlContext._ttmlToCssColor(value);\n css(element, style, mappedValue);\n return;\n }\n\n case 'direction':\n case 'display': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'displayAlign': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'before':\n mappedValue = 'top';\n break;\n case 'center':\n mappedValue = 'middle';\n break;\n case 'after':\n mappedValue = 'bottom';\n }\n\n css(element, 'vertical-align', mappedValue);\n return;\n }\n\n case 'extent': {\n let width: string;\n let height: string;\n\n if (value !== 'auto') {\n // Get the individual components.\n const coords = value.split(/\\s+/);\n\n if (coords.length === 2) {\n width = this._ttmlToCssUnits(coords[0], true);\n height = this._ttmlToCssUnits(coords[1], false);\n }\n }\n\n if (!width!) {\n width = `${(this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions.width\n : this.settings.relatedMediaObjectRegion!.width\n ).toString()}px`;\n height = `${(this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions.height\n : this.settings.relatedMediaObjectRegion!.height\n ).toString()}px`;\n }\n\n css(element, 'position', 'absolute');\n css(element, 'width', width!);\n css(element, 'min-width', width!);\n css(element, 'max-width', width!);\n css(element, 'height', height!);\n css(element, 'min-height', height!);\n css(element, 'max-height', height!);\n return;\n }\n\n case 'fontFamily': {\n if (this.settings.fontMap && this.settings.fontMap[value]) {\n mappedValue = this.settings.fontMap[value];\n }\n\n if (value === 'smallCaps') {\n // Need to additionally add font-variant: small-caps.\n css(element, 'fontVariant', 'small-caps');\n }\n\n css(element, style, mappedValue);\n return;\n }\n\n case 'fontSize': {\n const parts = value.split(/\\s+/);\n\n // For two part fontSize values we use the vertical size which is in the second part.\n const size = parts.length > 1 ? parts[1] : parts[0];\n\n // Set the fontsize scaleFactor to 75% (of cell size) to account for ascenders/descenders etc.\n mappedValue = this._ttmlToCssFontSize(size, false, 0.75, tagName === 'ttml:region');\n\n css(element, style, mappedValue);\n return;\n }\n\n case 'fontStyle':\n case 'fontWeight': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'lineHeight': {\n // Spec doesn't qualify what % lengths mean so I'm going to assume it's % of a\n // cell and therefore use fontSize conversion method.\n mappedValue = value === 'normal' ? value : this._ttmlToCssFontSize(value, false);\n\n css(element, 'line-height', mappedValue);\n return;\n }\n\n case 'computed-lineHeight': {\n const values = value.split(',');\n let max = -1;\n\n for (const fontSize of values) {\n // Computed-lineHeight is based off of fontSize so use fontSize conversion method.\n mappedValue = this._ttmlToCssFontSize(fontSize, false);\n\n if (mappedValue && mappedValue.indexOf('px') === mappedValue.length - 2) {\n const height = Number.parseFloat(mappedValue.substr(0, mappedValue.length - 2));\n\n if (!isNaN(height) && height > max) {\n max = height;\n }\n }\n }\n\n if (max >= 0) {\n css(element, 'line-height', `${max}px`);\n }\n\n return;\n }\n\n case 'origin': {\n if (value !== 'auto') {\n // Get the individual components.\n const coords = value.split(/\\s+/);\n\n if (coords.length === 2) {\n css(element, 'position', 'absolute');\n css(element, 'left', this._ttmlToCssUnits(coords[0], true));\n css(element, 'top', this._ttmlToCssUnits(coords[1], false));\n }\n }\n\n return;\n }\n\n case 'opacity': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'padding': {\n const contextRect = getDimensions(element);\n\n // Get the individual components.\n const parts = value.split(/\\s+/);\n let first: string;\n let second: string;\n let third: string;\n let forth: string;\n\n // eslint-disable-next-line default-case\n switch (parts.length) {\n case 1:\n // Value is used for all 4 sides.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[0], true, contextRect!);\n mappedValue = format('{0} {1} {0} {1}', first, second);\n break;\n case 2:\n // First is top/bottom, second is left/right.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n mappedValue = format('{0} {1} {0} {1}', first, second);\n break;\n case 3:\n // First is top, second is left/right, third is bottom.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n third = this._ttmlToCssUnits(parts[2], false, contextRect!);\n mappedValue = format('{0} {1} {2} {1}', first, second, third);\n break;\n case 4:\n // Top, right, bottom, left.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n third = this._ttmlToCssUnits(parts[2], false, contextRect!);\n forth = this._ttmlToCssUnits(parts[3], true, contextRect!);\n mappedValue = format('{0} {1} {2} {3}', first, second, third, forth);\n }\n\n // Using border width to implement tts:padding as neither padding nor margin fix the size (height) of the content area.\n css(element, 'box-sizing', 'border-box');\n\n // TODO: See if we work in FF without the following commented out -moz-box-sizing line now and if so remove it.\n /// /// css(element, '-moz-box-sizing', 'border-box');\n css(element, 'border-style', 'solid');\n css(element, 'border-color', 'transparent');\n\n // It can be helpful when debugging to change the border-color from transparent to something like rgba(255,255,200,0.5)\n // css(element, 'border-color', 'rgba(255,255,200,0.5)');\n css(element, 'border-width', mappedValue);\n return;\n }\n\n // If you know what this was for please document it here and uncomment it.\n // As of now the caller appeared to be doing nothing with it so commenting it out.\n /// /// case 'showBackground': {\n /// /// return this.getAttribute('data-showBackground', value);\n /// /// }\n\n case 'textAlign': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'start':\n mappedValue = 'left'; // TODO: handle rtl correctly.\n break;\n case 'end':\n mappedValue = 'right'; // TODO: handle rtl correctly.\n }\n\n css(element, 'text-align', mappedValue);\n return;\n }\n\n case 'textDecoration': {\n mappedValue = TtmlContext._ttmlToCssTextDecoration(value);\n css(element, 'text-decoration', mappedValue);\n return;\n }\n\n case 'textOutline': {\n const defaultColor = css(element, 'color');\n css(element, 'text-shadow', this._ttmlToCssTextOutline(mappedValue, defaultColor));\n return;\n }\n\n case 'unicodeBidi': {\n // TODO: Handle multiple options correctly.\n // eslint-disable-next-line default-case\n switch (value) {\n case 'bidiOverride':\n mappedValue = 'bidi-override';\n }\n css(element, 'unicode-bidi', mappedValue);\n return;\n }\n\n case 'visibility': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'writingMode': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'lr':\n case 'lrtb': {\n css(element, 'writing-mode', 'horizontal-tb'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-writing-mode', 'horizontal-tb'); // Webkit for Chrome\n css(element, 'writing-mode', 'lr-tb'); // IE specific\n return;\n }\n case 'rl':\n case 'rltb': {\n css(element, 'writing-mode', 'horizontal-tb'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-writing-mode', 'horizontal-tb'); // Webkit for Chrome\n css(element, 'writing-mode', 'rl-tb'); // IE specific\n return;\n }\n case 'tblr': {\n css(element, 'text-orientation', 'upright'); // CCS3 standard: Doesn't work yet\n css(element, 'writing-mode', 'vertical-lr'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-text-orientation', 'upright'); // Webkit for Chrome\n css(element, '-webkit-writing-mode', 'vertical-lr'); // Webkit for Chrome\n css(element, 'writing-mode', 'tb-lr'); // IE specific\n return;\n }\n case 'tb':\n case 'tbrl': {\n css(element, 'text-orientation', 'upright'); // CCS3 standard: Doesn't work yet\n css(element, 'writing-mode', 'vertical-rl'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-text-orientation', 'upright'); // Webkit for Chrome\n css(element, '-webkit-writing-mode', 'vertical-rl'); // Webkit for Chrome\n css(element, 'writing-mode', 'tb-rl'); // IE specific\n return;\n }\n }\n return;\n }\n\n case 'wrapOption': {\n css(element, 'white-space', value === 'noWrap' ? 'nowrap' : value === 'pre' ? 'pre' : 'normal');\n return;\n }\n\n case 'zIndex': {\n css(element, style, mappedValue); // Requires global information...\n return;\n }\n\n default: {\n css(element, style, mappedValue);\n }\n }\n }\n\n /**\n * Converts a ttml unit string to a css one.\n * @param ttmlUnits - The ttml value.\n * @param width - Indicates whether to perform a width based or a height based conversion.\n * @param [contextRect] - The context rectangle to use for conversion.\n * @returns - The css value.\n */\n private _ttmlToCssUnits(ttmlUnits: string, width: boolean, contextRect?: IClientDimension): string {\n let cssUnits = ttmlUnits;\n\n if (ttmlUnits) {\n const unit = ttmlUnits.charAt(ttmlUnits.length - 1);\n\n // Need to special case handle ttml cell metrics.\n if (unit === 'c' || unit === '%') {\n const container = this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions\n : this.settings.relatedMediaObjectRegion;\n const length = Number.parseFloat(ttmlUnits.substr(0, ttmlUnits.length - 1));\n let containerSize = width ? container!.width : container!.height;\n let value: number;\n\n if (unit === 'c') {\n const gridSize = width ? this.settings.cellResolution.columns : this.settings.cellResolution.rows;\n\n value = (length * containerSize) / gridSize;\n } else if (unit === '%') {\n // If % units calls also specify a contextRect use that instead of the container.\n if (contextRect) {\n containerSize = width ? contextRect.width : contextRect.height;\n }\n\n // Have to convert % to px because padding and vertical-align (displayAlign) are not\n // working together if the extent width/height are % instead of px.\n value = (containerSize * length) / 100;\n }\n\n // Round to 1 decimal place\n value = Math.round(value! * 10) / 10;\n cssUnits = `${value}px`;\n }\n }\n\n return cssUnits;\n }\n\n /**\n * Converts a ttml font size to a css one.\n * @param ttmlUnits - The ttml value.\n * @param width - Indicates whether to perform a width based or a height based conversion.\n * @param [scaleFactor] - The scale factor to use for conversion.\n * @param [isRegion] - Indicates whether or not the conversion is being done for a .\n * @returns - The css value.\n */\n private _ttmlToCssFontSize(ttmlUnits: string, width: boolean, scaleFactor: number = 1, isRegion: boolean = false): string {\n let cssUnits = ttmlUnits;\n\n if (ttmlUnits) {\n const unit = ttmlUnits.charAt(ttmlUnits.length - 1);\n\n // Need to special case handle ttml cell metrics and % units.\n if (unit === 'c' || (isRegion && unit === '%')) {\n const container = this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions\n : this.settings.relatedMediaObjectRegion;\n const length = Number.parseFloat(ttmlUnits.substr(0, ttmlUnits.length - 1));\n const containerSize = width ? container!.width : container!.height;\n const gridSize = width ? this.settings.cellResolution.columns : this.settings.cellResolution.rows;\n let value = (length * containerSize) / gridSize;\n\n if (unit === '%') {\n // Length is % so divide by 100.\n value /= 100;\n }\n\n // Apply the scale factor and limit to one decimal place precision.\n value = Math.floor(value * scaleFactor * 10) / 10;\n\n cssUnits = `${value}px`;\n }\n }\n\n return cssUnits;\n }\n\n /**\n * Converts a ttml text outline style value to a css one.\n * @param textOutline - The ttml value.\n * @param defaultColor - Default value of the outline color.\n * @returns - The css value.\n */\n private _ttmlToCssTextOutline(textOutline: string, defaultColor: string): string {\n let textShadow = 'none';\n\n if (!isNullOrWhiteSpace(textOutline) && textOutline !== 'none') {\n let parts: string[] = textOutline.split(/\\s+/);\n let color: string = '';\n let thickness: string = '';\n let blur: string = '';\n\n if (parts.length === 1) {\n color = defaultColor;\n thickness = parts[0];\n blur = '';\n } else if (parts.length === 3) {\n color = parts[0];\n thickness = parts[1];\n blur = parts[2];\n } else if (parts.length === 2) {\n const firstChar = parts[0].charAt(0);\n\n if (firstChar >= '0' && firstChar <= '9') {\n color = defaultColor;\n thickness = parts[0];\n blur = parts[1];\n } else {\n color = parts[0];\n thickness = parts[1];\n blur = '';\n }\n }\n\n // Spec doesn't qualify what % lengths mean so I'm going to assume it's % of a cell\n // and therefore use fontSize conversion method with the same scaleFactor applied\n // to fontSize since it's the font that we're outlining here.\n blur = this._ttmlToCssFontSize(blur, false, 0.75);\n thickness = this._ttmlToCssFontSize(thickness, false, 0.75);\n\n parts = TtmlContext.lengthRegEx.exec(thickness);\n\n if (parts && parts.length === 3) {\n const width = Math.round(Number.parseFloat(parts[1]));\n const units = parts[2];\n\n textShadow = '';\n\n for (let x = -width; x <= width; x++) {\n for (let y = -width; y <= width; y++) {\n if (x !== 0 || y !== 0) {\n textShadow += format('{0}{4} {1}{4} {2} {3}, ', x, y, blur, TtmlContext._ttmlToCssColor(color), units);\n }\n }\n }\n\n if (textShadow) {\n textShadow = textShadow.substr(0, textShadow.length - 2);\n }\n }\n }\n\n return textShadow;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * TtmlTimeParser class.\n * @classdesc - The TtmlTimeParser class is used to parse ttml time expressions which can be absolute or relative.\n */\nexport class TtmlTimeParser {\n /**\n * @name - absoluteTimeRegex\n * Regex to parse absolute ttml times. (clock-time).\n * Hours \":\" minutes \":\" seconds ( fraction | \":\" frames ( \".\" sub-frames )? )?.\n * NOTE: (johnlemi) Our clocktime regex matches 1 or 2 digits for hours instead of 2 because even.\n * though the spec says 2 we have some existing ttml from the Office team with end attrs with 1 hour digit.\n * @static\n * @private\n * @type {string}\n */\n private static readonly absoluteTimeRegex: RegExp = /^(\\d+):(\\d{2}):(\\d{2})((\\.\\d+)|:(\\d{2,}(\\.\\d+)?))?$/;\n\n /**\n * @name - relativeTimeRegex\n * Regex to parse relative ttml times. (offset-time).\n * time-count fraction? metric.\n * @static\n * @private\n * @type {string}\n */\n private static readonly relativeTimeRegex: RegExp = /^(\\d+(\\.\\d+)?)(ms|[fhmst])$/;\n\n /**\n * @name - mediaFrameRate.\n * @description - mediaFrameRate.\n * @private\n * @type {string}\n */\n private readonly mediaFrameRate: number;\n\n /**\n * @name - mediaTickRate.\n * @description - mediaTickRate.\n * @private\n * @type {string}\n */\n private readonly mediaTickRate: number;\n\n /**\n * Constructor for the TtmlTimeParser class.\n * @param _mediaFrameRate - The ttml media frame rate.\n * @param _mediaTickRate - The ttml media tick rate.\n */\n public constructor(_mediaFrameRate: number, _mediaTickRate: number) {\n this.mediaFrameRate = _mediaFrameRate;\n this.mediaTickRate = _mediaTickRate;\n }\n\n /**\n * Parses a ttml time expression string into a number.\n * @param ttmlTime - The time expression to parse.\n * @returns - The number the time expression represents, or 0 if the exression doesn't match.\n */\n public parse(ttmlTime: string): number {\n if (!ttmlTime) {\n return 0;\n }\n\n const absoluteTime = TtmlTimeParser.absoluteTimeRegex.exec(ttmlTime);\n\n if (absoluteTime && absoluteTime.length > 3) {\n const hours = Number.parseInt(absoluteTime[1], 10) * 60 * 60;\n const minutes = Number.parseInt(absoluteTime[2], 10) * 60;\n const seconds = Number.parseInt(absoluteTime[3], 10);\n let subseconds = 0;\n\n if (absoluteTime[5]) {\n subseconds = Number.parseFloat(absoluteTime[4]) * 1000;\n }\n\n if (absoluteTime[6]) {\n subseconds = Math.round(Number.parseFloat(absoluteTime[6]) * this._getTimeUnitMultiplier('f'));\n }\n\n return (hours + minutes + seconds) * 1000 + subseconds;\n }\n\n const relativeTime = TtmlTimeParser.relativeTimeRegex.exec(ttmlTime);\n\n if (relativeTime && relativeTime.length > 3) {\n return Math.round(Number.parseFloat(relativeTime[1]) * this._getTimeUnitMultiplier(relativeTime[3]));\n }\n\n return 0;\n }\n\n /**\n * Converts a ttml time unit expression string into a multiplier number.\n * @param timeUnit - The time unit expression.\n * @returns - The multiplier value, or 0 if the unit exression doesn't match.\n */\n private _getTimeUnitMultiplier(timeUnit: string): number {\n switch (timeUnit) {\n case 'h':\n return 1000 * 60 * 60;\n case 'ms':\n return 1;\n case 'm':\n return 1000 * 60;\n case 's':\n return 1000;\n case 'f':\n return 1000 / this.mediaFrameRate;\n case 't':\n return 1000 / this.mediaTickRate;\n default:\n return 0;\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 { format, IDictionaryStringString, IGrid, nodeListToArray, trim } from '../utilities';\nimport { ITtmlContext, TtmlContext } from './ttml-context';\nimport { ITtmlSettings, TtmlSettings, xmlNS } from './ttml-settings';\nimport { TtmlTimeParser } from './ttml-time-parser';\n\n// Timed Text Markup Language (TTML).\n// See http://www.w3.org/TR/ttml1/ for more details.\n\n/**\n * @interface ITtmlEvent\n * @classdesc - The ITtmlEvent interface contract.\n * @export\n */\nexport interface ITtmlEvent {\n time: number;\n element?: Element;\n}\n\n/**\n * @interface ITtmlTimingBounds\n * @classdesc - The ITtmlTimingBounds interface contract.\n * @export\n */\ninterface ITtmlTimingBounds {\n start: number;\n end: number;\n}\n\n/**\n *\n * The TtmlParser class.\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class TtmlParser {\n /**\n * @name - mediaStart\n * Used as the start time for applyTiming when applying to the entire document.\n * @static\n * @private\n * @type {number}\n */\n private static readonly mediaStart: number = -1;\n\n /**\n * @name - mediaEnd\n * Used as the end time for applyTiming when applying to the entire document.\n * Picking a number that should always be greater than any real media end time.\n * @static\n * @private\n * @type {number}\n */\n private static readonly mediaEnd: number = 99_999_999;\n\n /**\n * Gets the local tagName of a Node.\n * @param node - The node to get the tagName of.\n * @returns - The tagName.\n */\n public static getLocalTagName(node: Node): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (node).localName || (node).baseName;\n }\n\n /**\n * Gets the value of a namespaced attribute. First tries element.getAttributeNS() but falls back\n * to scanning each attribute if that fails.\n * If you know which cases go into the fallback code please document it here.\n * @param element - The element to get the attribute of.\n * @param name - The attribute name.\n * @param namespace - The attribute namespace.\n * @returns - The attribute value. Or an empty string if a matching attribute is not found.\n */\n public static getAttributeNS(element: Element, name: string, namespace: string): string {\n let result = element.getAttributeNS(namespace, name);\n\n if (!result) {\n // Go through all the attributes looking for a match.\n for (const attribute of nodeListToArray(element.attributes)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((attribute).localName === name && attribute.lookupNamespaceURI((attribute).prefix) === namespace) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = (attribute).value;\n break;\n }\n }\n }\n\n return result!;\n }\n\n /**\n * Parses a ttml document and builds a ttmlContext instance from it.\n * @param ttmlDocument - The ttml document to parse.\n * @param settingsOverrides - The ttml settings overrides to use.\n * @returns - The resulting ttmlContext instance that can be used to get cues by time.\n */\n public static parse(ttmlDocument: XMLDocument, settingsOverrides: ITtmlSettings): ITtmlContext {\n ttmlDocument = typeof ttmlDocument === 'string' ? TtmlParser._parseXml(ttmlDocument) : ttmlDocument;\n\n const ttmlContext = new TtmlContext();\n\n // Start initializing the context.\n ttmlContext.settings = new TtmlSettings(settingsOverrides);\n ttmlContext.root = TtmlParser._verifyRoot(ttmlDocument, ttmlContext);\n ttmlContext.body = TtmlParser._getFirstElementByTagNameNS(ttmlContext.root, 'body', ttmlContext.settings.ttmlNamespace);\n ttmlContext.events = [];\n ttmlContext.styleSetCache = [];\n\n if (ttmlContext.body) {\n // Parse the root attributes.\n TtmlParser._parseTtAttrs(ttmlContext);\n\n // Set up our regions.\n const head = TtmlParser._ensureRegions(ttmlContext);\n\n const timeBase =\n TtmlParser.getAttributeNS(ttmlContext.root, 'timeBase', ttmlContext.settings.ttmlParameterNamespace) || 'media';\n\n if (ttmlContext.settings.supportedTimeBase.includes(timeBase)) {\n // Process textnodes into anonymous spans.\n TtmlParser._processAnonymousSpans(ttmlContext, ttmlContext.body);\n\n const timeParser = new TtmlTimeParser(ttmlContext.settings.mediaFrameRate, ttmlContext.settings.mediaTickRate);\n\n // Apply the intervals over the tree.\n TtmlParser._applyTiming(\n ttmlContext,\n ttmlContext.root,\n { start: TtmlParser.mediaStart, end: TtmlParser.mediaEnd },\n true,\n timeParser\n );\n\n // Apply the style inheritance over the tree.\n TtmlParser._applyStyling(ttmlContext, head);\n }\n\n // Add an dummy end event for the captions to appear until end of video.\n // Not sure why we need to do this, please add to this comment if you know.\n ttmlContext.events.push({ time: TtmlParser.mediaEnd, element: undefined });\n\n // Sort events into temporal order.\n ttmlContext.events.sort((event1: ITtmlEvent, event2: ITtmlEvent) => {\n return event1.time - event2.time;\n });\n }\n\n return ttmlContext;\n }\n\n /**\n * Applies the elements inline styles into the styleSet.\n * @param settings - The TtmlSettings for this document.\n * @param styleSet - The styleSet to build upon.\n * @param element - The element to apply the styles of.\n */\n public static applyInlineStyles(settings: TtmlSettings, styleSet: IDictionaryStringString, element: Element): void {\n for (const attribute of nodeListToArray(element.attributes)) {\n if (attribute.namespaceURI === settings.ttmlStyleNamespace) {\n // Trim() because we see lots of ttml attribute values with trailing space...\n styleSet[TtmlParser.getLocalTagName(attribute)] = trim(attribute.nodeValue!);\n }\n }\n }\n\n /**\n * Parses an xml document in string format to an XMLDocument.\n * @param xmlString - The xml string to parse.\n * @returns - The resulting XMLDocument, or null if the xml string failed to parse.\n */\n private static _parseXml(xmlString: string): XMLDocument {\n let xml: XMLDocument;\n\n if (window.DOMParser) {\n const domParser = new window.DOMParser();\n xml = domParser.parseFromString(xmlString, 'application/xml');\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const domParser = new (window).ActiveXObject('Microsoft.XMLDOM');\n domParser.async = false;\n domParser.loadXML(xmlString);\n xml = domParser;\n }\n return xml;\n }\n\n /**\n * Verifies that root of the specified document is the expected ttml tagName and\n * updates the settings namespaces from it if they are non standard.\n * @param ttmlDocument - The ttml document to verify.\n * @param ttmlContext - The ttmlContext for this document.\n * @returns - The valid root Element, or or null if the root Element was not valid.\n */\n private static _verifyRoot(ttmlDocument: XMLDocument, ttmlContext: TtmlContext): Element {\n let root: Element;\n const candidate = ttmlDocument.documentElement;\n\n if (TtmlParser.getLocalTagName(candidate) === 'tt') {\n if (candidate.namespaceURI !== 'http://www.w3.org/ns/ttml') {\n ttmlContext.settings.ttmlNamespace = candidate.namespaceURI!;\n ttmlContext.settings.ttmlStyleNamespace = `${ttmlContext.settings.ttmlNamespace}#styling`;\n ttmlContext.settings.ttmlParameterNamespace = `${ttmlContext.settings.ttmlNamespace}#parameter`;\n ttmlContext.settings.ttmlMetaNamespace = `${ttmlContext.settings.ttmlNamespace}#metadata`;\n }\n\n root = candidate;\n }\n\n return root!;\n }\n\n /**\n * Parses the tag attributes and initializes ttmlContext properties from them.\n * @param ttmlContext - The ttmlContext for this document.\n */\n private static _parseTtAttrs(ttmlContext: TtmlContext): void {\n const cellRes = TtmlParser.getAttributeNS(ttmlContext.root, 'cellResolution', ttmlContext.settings.ttmlParameterNamespace);\n const extent = TtmlParser.getAttributeNS(ttmlContext.root, 'extent', ttmlContext.settings.ttmlStyleNamespace);\n let cellGrid: IGrid | null = null;\n\n if (cellRes) {\n const parts = trim(cellRes).split(/\\s+/);\n\n if (parts.length === 2) {\n const columns = Math.round(Number.parseFloat(parts[0]));\n const rows = Math.round(Number.parseFloat(parts[1]));\n\n if (rows > 0 && columns > 0) {\n cellGrid = { rows, columns };\n }\n }\n }\n\n if (cellGrid) {\n ttmlContext.settings.cellResolution = cellGrid;\n }\n\n if (extent) {\n if (extent !== 'auto') {\n // Get the individual components.\n const coords = extent.split(/\\s+/);\n\n if (\n coords.length === 2 &&\n coords[0].substr(coords[0].length - 2) === 'px' &&\n coords[1].substr(coords[1].length - 2) === 'px'\n ) {\n const width = Number.parseFloat(coords[0].substr(0, coords[0].length - 2));\n const height = Number.parseFloat(coords[1].substr(0, coords[1].length - 2));\n\n // Round to integer.\n ttmlContext.settings.rootContainerRegionDimensions = { width: Math.round(width), height: Math.round(height) };\n }\n }\n }\n }\n\n /**\n * Ensures we have the elements/regions we require by either finding them or creating them if they are not present.\n * @param ttmlContext - The ttmlContext for this document.\n * @returns - The element.\n */\n private static _ensureRegions(ttmlContext: TtmlContext): Element {\n // Create our rootContainerRegion\n ttmlContext.rootContainerRegion = ttmlContext.root.ownerDocument.createElementNS(\n ttmlContext.settings.ttmlNamespace,\n 'rootcontainerregion'\n );\n\n ttmlContext.root.appendChild(ttmlContext.rootContainerRegion);\n\n const extents = ttmlContext.settings.rootContainerRegionDimensions\n ? format(\n '{0}px {1}px',\n ttmlContext.settings.rootContainerRegionDimensions.width,\n ttmlContext.settings.rootContainerRegionDimensions.height\n )\n : 'auto';\n\n ttmlContext.rootContainerRegion.setAttributeNS(ttmlContext.settings.ttmlStyleNamespace, 'extent', extents);\n\n let head = TtmlParser._getFirstElementByTagNameNS(ttmlContext.root, 'head', ttmlContext.settings.ttmlNamespace);\n\n // Ensure we have a \n if (!head) {\n // No so we need to create that now.\n head = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'head');\n ttmlContext.root.appendChild(head);\n }\n\n // Ensure we have a \n ttmlContext.layout = TtmlParser._getFirstElementByTagNameNS(head, 'layout', ttmlContext.settings.ttmlNamespace);\n\n if (!ttmlContext.layout) {\n // No so we need to create that now.\n ttmlContext.layout = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'layout');\n ttmlContext.root.appendChild(ttmlContext.layout);\n }\n\n // Create an anonymous region if we have no regions.\n const regions = ttmlContext.layout.getElementsByTagNameNS(ttmlContext.settings.ttmlNamespace, 'region');\n\n if (!regions.length) {\n const anonymousRegion = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'region');\n\n anonymousRegion.setAttributeNS(xmlNS, 'id', 'anonymous');\n anonymousRegion.setAttribute('data-isanonymous', '1');\n ttmlContext.layout.appendChild(anonymousRegion);\n\n ttmlContext.body.setAttributeNS(ttmlContext.settings.ttmlNamespace, 'region', 'anonymous');\n }\n\n return head;\n }\n\n /**\n * Recurses through all the

elements in the document and groups all the contiguous TEXT_NODES together into 's.\n * @param ttmlContext - The ttmlContext for this document.\n * @param element - The element to process the TEXT_NODES of.\n */\n private static _processAnonymousSpans(ttmlContext: TtmlContext, element: Element): void {\n // If this element is

then group all contiguous textnodes together in \n if (TtmlParser._isTagNS(element, 'p', ttmlContext.settings.ttmlNamespace)) {\n const textNodeGroups: Node[][] = [];\n let prevNodeType: number = 0;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE) {\n if (prevNodeType !== Node.TEXT_NODE) {\n textNodeGroups.push([]);\n }\n\n textNodeGroups[textNodeGroups.length - 1].push(child);\n }\n\n prevNodeType = child.nodeType;\n }\n\n for (const group of textNodeGroups) {\n const anonSpan = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'span');\n\n anonSpan.appendChild(group[0].parentNode!.replaceChild(anonSpan, group[0]));\n\n for (let index = 1; index < group.length; index++) {\n anonSpan.appendChild(group[index]);\n }\n }\n }\n\n // Then recurse through the contents doing the same thing for those.\n for (const child of nodeListToArray(element.childNodes)) {\n this._processAnonymousSpans(ttmlContext, child);\n }\n }\n\n /**\n * Recurses through the document element tree to determine the absolute start and end times of all the elements\n * using the TTML subset of the SMIL timing model. The reference times passed in 'bound' are absolute times.\n * The result of calling this is to set the local start time and end time to absolute times between these two\n * reference times, based on the begin, end and dur attributes and to recursively set all of the children.\n * @param ttmlContext - The ttmlContext for this document.\n * @param element - The element to apply the timing to.\n * @param bound - The bounds for the timing.\n * @param isParallelContext - Indicates whether or not this element is in a parallel timing context.\n * @param timeParser - The TtmlTimeParser to use to parse this elements time attributes.\n */\n private static _applyTiming(\n ttmlContext: TtmlContext,\n element: Element,\n bound: ITtmlTimingBounds,\n isParallelContext: boolean,\n timeParser: TtmlTimeParser\n ): void {\n const beginAttribute = TtmlParser.getAttributeNS(element, 'begin', ttmlContext.settings.ttmlNamespace);\n let startTime = beginAttribute ? timeParser.parse(beginAttribute) : bound.start;\n let endTime = 0;\n\n // Compute the simple duration of the interval.\n let duration = 0;\n let end = 0;\n const durationAttribute = TtmlParser.getAttributeNS(element, 'dur', ttmlContext.settings.ttmlNamespace);\n const endAttribute = TtmlParser.getAttributeNS(element, 'end', ttmlContext.settings.ttmlNamespace);\n\n if (!durationAttribute && !endAttribute) {\n // No direct timing attested, so use default based on context.\n // Parallel children have indefinite default duration, truncated by bounds.\n if (isParallelContext) {\n // Sequential children have zero default duration.\n if (startTime <= bound.end) {\n endTime = bound.end;\n } else {\n endTime = 0;\n }\n }\n } else if (durationAttribute && endAttribute) {\n // Both duration and end attested, the minimum interval applies.\n duration = timeParser.parse(durationAttribute);\n end = timeParser.parse(endAttribute);\n const minEnd = Math.min(startTime + duration, bound.start + end);\n endTime = Math.min(minEnd, bound.end);\n } else if (endAttribute) {\n // Only end attested.\n end = timeParser.parse(endAttribute);\n endTime = Math.min(bound.start + end, bound.end);\n } else {\n // Only dur attested.\n duration = timeParser.parse(durationAttribute);\n endTime = Math.min(startTime + duration, bound.end);\n }\n\n if (endTime < startTime) {\n endTime = startTime;\n }\n\n startTime = Math.floor(startTime);\n endTime = Math.floor(endTime);\n\n element.setAttribute('data-time-start', startTime.toString());\n element.setAttribute('data-time-end', endTime.toString());\n\n if (\n startTime >= 0 &&\n ttmlContext.events.filter(event => {\n return event.time === startTime;\n }).length <= 0\n ) {\n ttmlContext.events.push({ time: startTime, element });\n }\n\n let start = startTime;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n // Parallel is the default so null is OK here.\n if (TtmlParser.getAttributeNS(element, 'timeContainer', ttmlContext.settings.ttmlNamespace) !== 'seq') {\n this._applyTiming(ttmlContext, child, { start: startTime, end: endTime }, true, timeParser);\n } else {\n this._applyTiming(ttmlContext, child, { start, end: endTime }, false, timeParser);\n start = Number.parseInt(child.getAttribute('data-time-end')!, 10);\n }\n }\n }\n }\n\n /**\n * Recurses through all the elements in applying the ttml sytling to them based on the