{"version":3,"sources":["Themes/Default/Content/ts/Shared/Navigation/navbar-options.ts"],"names":[],"mappings":";;;IAiBA;QAcI,uBAAY,MAA2B;;YACnC,IAAI,CAAC,sBAAsB,GAAG,MAAA,MAAM,CAAC,sBAAsB,mCAAI,IAAI,CAAC;YACpE,IAAI,CAAC,iBAAiB,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,IAAI,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,MAAA,MAAM,CAAC,sBAAsB,mCAAI,KAAK,CAAC;YAGrE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC9B,OAAO;aACV;YAED,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YAGd,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClB,CAAC;QAEM,8BAAM,GAAb;YAAA,iBAQC;YAPG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,+CAAsB,CAAC,4BAA4B,EAAE,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC9D,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,KAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC,OAAO,CAAC;gBACP,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,CAAC;QACL,oBAAC;IAAD,CA5CA,AA4CC,IAAA;;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC;IACvC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE;QAClC,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,EAAE,OAAO,EAAE,4DAAqD,aAAa,UAAO,EAAE;KACnG,CAAC,CAAC","file":"navbar-options.js","sourcesContent":["import * as ko from \"knockout\";\nimport * as amplify from \"amplify\";\nimport * as globalConfig from \"globalConfig\";\n\r\n// Services\r\nimport { UniversalBasketService } from 'Content/ts/UniversalBasket/Services/universalBasketService';\r\n\r\n// Components\r\nimport \"Content/ts/UniversalBasket/universal-basket-timer\";\r\nimport \"Content/ts/Shared/Language/language-selector\";\r\n\r\ninterface NavbarOptionsParams {\r\n UniversalBasketEnabled: boolean;\r\n ShowBasketOptions: boolean;\r\n LegacyResponsiveHeader: boolean;\r\n}\r\n\r\nexport default class NavbarOptions {\r\n basketSecondsUntilExpiry: KnockoutObservable;\r\n basketItemCount: KnockoutObservable;\r\n isUpdating: KnockoutObservable;\r\n\r\n /** Whether Universal Basket is enabled. If false, basket timer isn't used and basket count doesn't need item count passing to it. */\r\n universalBasketEnabled: boolean;\r\n\r\n /** Whether to show the basket timer and basket count. */\r\n showBasketOptions: boolean;\r\n\r\n /** Whether using a legacy navbar (determines the markup to use for the options). */\r\n legacyResponsiveHeader: boolean;\r\n\r\n constructor(params: NavbarOptionsParams) {\r\n this.universalBasketEnabled = params.UniversalBasketEnabled ?? true;\r\n this.showBasketOptions = params.ShowBasketOptions ?? true;\r\n this.legacyResponsiveHeader = params.LegacyResponsiveHeader ?? false;\r\n\r\n /** If not using Universal Basket, we don't need to get/update the item count or time remaining. */\r\n if (!this.universalBasketEnabled) {\r\n return;\r\n }\r\n\r\n this.basketItemCount = ko.observable(0);\r\n this.basketSecondsUntilExpiry = ko.observable(0);\r\n this.isUpdating = ko.observable(false);\r\n this.update();\r\n\r\n /** Listen for event that should update the count/timer. */\r\n amplify.subscribe(globalConfig.AmplifyEvents.Names.CountBasketItems, function () {\r\n this.update();\r\n }.bind(this));\r\n }\r\n\r\n public update(): void {\r\n this.isUpdating(true);\r\n UniversalBasketService.getBasketCountAndExpiryAsync().then((result) => {\r\n this.basketItemCount(result.ItemCount);\r\n this.basketSecondsUntilExpiry(result.SecondsUntilExpiry);\r\n }).finally(() => {\r\n this.isUpdating(false);\r\n });\r\n }\r\n}\r\n\r\nconst componentName = \"navbar-options\";\r\nko.components.unregister(componentName);\r\nko.components.register(componentName, {\r\n viewModel: NavbarOptions,\r\n template: { require: `text!/Themes/Default/Content/ts/Shared/Navigation/${componentName}.html` }\r\n});\r\n"]}