{"version":3,"file":"main-T6TGFCPP.js","sources":["node_modules/@angular/material/fesm2022/slider.mjs","node_modules/@angular/cdk/fesm2022/accordion.mjs","node_modules/@angular/material/fesm2022/expansion.mjs","node_modules/@angular/material/fesm2022/icon.mjs","node_modules/@angular/cdk/fesm2022/observers/private.mjs","node_modules/@angular/material/fesm2022/form-field.mjs","node_modules/@angular/cdk/fesm2022/text-field.mjs","node_modules/@angular/material/fesm2022/input.mjs","node_modules/@angular/material/fesm2022/button.mjs","node_modules/@angular/material/fesm2022/datepicker.mjs","node_modules/@angular/cdk/fesm2022/table.mjs","node_modules/@angular/material/fesm2022/table.mjs","packages/vanilla/lib/features/svg/src/svg.component.ts","packages/vanilla/lib/features/svg/src/svg.component.html","packages/vanilla/lib/shared/image/image.html","packages/vanilla/lib/shared/image/image.component.ts","packages/vanilla/lib/shared/badge/src/badge.client-config.ts","packages/vanilla/lib/features/menus/src/menu-item-badge.directive.ts","packages/vanilla/lib/shared/auth/src/authstate.directive.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.client-config.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.service.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.html","packages/vanilla/lib/shared/tooltips/src/tooltips.component.ts","packages/vanilla/lib/features/menus/src/menu-item-click-handler.service.ts","packages/vanilla/lib/features/menus/src/menu-item-text-content.html","packages/vanilla/lib/features/menus/src/menu-item-text-content.component.ts","packages/vanilla/lib/features/menus/src/menu-item.html","packages/vanilla/lib/features/menus/src/menu-item.component.ts","packages/vanilla/lib/shared/account-menu/account-menu-onboarding.service.ts","packages/vanilla/lib/shared/account-menu/account-menu.client-config.ts","packages/vanilla/lib/shared/account-menu/account-menu-data.service.ts","packages/vanilla/lib/shared/account-menu/account-menu.models.ts","packages/vanilla/lib/shared/account-menu/account-menu-tasks.service.ts","packages/vanilla/lib/shared/account-menu/account-menu-router.ts","packages/vanilla/lib/shared/account-menu/account-menu.html","packages/vanilla/lib/shared/account-menu/account-menu.component.ts","packages/vanilla/lib/shared/overlay-factory/src/overlay-factory.models.ts","packages/vanilla/lib/shared/overlay-factory/src/overlay.factory.ts","packages/vanilla/lib/shared/login/src/workflow.service.ts","packages/vanilla/lib/shared/login/src/login.client-config.ts","packages/vanilla/lib/shared/login/src/login.service.ts","packages/vanilla/lib/features/header-bar/src/header-bar.client-config.ts","packages/vanilla/lib/features/header-bar/src/header-bar.service.ts","packages/vanilla/lib/features/header-bar/src/header-bar-bootstrap.service.ts","packages/vanilla/lib/features/header-bar/src/header-bar.feature.ts","packages/vanilla/lib/shared/confirm-popup/src/confirm-popup.client-config.ts","packages/vanilla/lib/shared/confirm-popup/src/confirm-popup.html","packages/vanilla/lib/shared/confirm-popup/src/confirm-popup.component.ts","packages/vanilla/lib/shared/confirm-popup/src/confirm-popup.service.ts","packages/vanilla/lib/features/header-bar/src/header-bar.models.ts","packages/vanilla/lib/features/header-bar/src/header-bar.html","packages/vanilla/lib/features/header-bar/src/header-bar.component.ts","packages/vanilla/lib/features/header-bar/src/lh-header-bar.component.ts","packages/vanilla/lib/features/header-bar/src/header-bar.component.html","packages/vanilla/lib/features/content/src/page-matrix.service.ts","packages/vanilla/lib/features/content/src/page-matrix.directive.ts","packages/vanilla/lib/features/content/src/pc-component.ts","packages/vanilla/lib/features/content/src/pc-scrollmenu.directive.ts","packages/vanilla/lib/features/content/src/pm-component.ts","packages/vanilla/lib/features/content/src/profiles.directive.ts","packages/vanilla/lib/features/content/src/components-v2/pc-component-header.html","packages/vanilla/lib/features/content/src/components-v2/pc-component-header.component.ts","packages/vanilla/lib/features/content/src/components-v2/pc-menu-item.html","packages/vanilla/lib/features/content/src/components-v2/pc-menu-item.component.ts","packages/vanilla/lib/features/content/src/components-v2/pm-1col-page.html","packages/vanilla/lib/features/content/src/components-v2/pc-text.html","packages/vanilla/lib/features/content/src/components-v2/pc-text-with-header-bar.html","packages/vanilla/lib/features/content/src/components-v2/pc-header-for-mpp-page.html","packages/vanilla/lib/features/content/src/components-v2/pc-toggle.html","packages/vanilla/lib/features/content/src/components-v2/pc-image.html","packages/vanilla/lib/features/content/src/components-v2/pc-image-text.html","packages/vanilla/lib/features/content/src/components-v2/pc-video.html","packages/vanilla/lib/features/content/src/components-v2/pc-teaser.html","packages/vanilla/lib/features/content/src/components-v2/pc-container.html","packages/vanilla/lib/features/content/src/components-v2/pc-component-folder.html","packages/vanilla/lib/features/content/src/components-v2/pc-menu.html","packages/vanilla/lib/features/content/src/components-v2/pc-regional-component.html","packages/vanilla/lib/features/content/src/components-v2/pc-raw-image.html","packages/vanilla/lib/features/content/src/components-v2/pc-carousel.html","packages/vanilla/lib/features/content/src/components-v2/pc-scrollmenu.html","packages/vanilla/lib/features/content/src/components-v2/pc.components.ts","packages/vanilla/lib/features/content/src/components-v2/pc-raw-text.html","packages/vanilla/lib/features/content/src/content-filter.component.ts","packages/vanilla/lib/features/content/src/page-matrix-bootstrap.service.ts","packages/vanilla/lib/features/content/src/content.feature.ts","packages/vanilla/lib/features/content/src/page-matrix.component.ts","packages/casino/platform-lib/slot-races/shared/prize.pipe.ts","packages/casino/platform-lib/slot-races/leaderboard/leaderboard.component.html","packages/casino/platform-lib/slot-races/leaderboard/leaderboard.component.ts","packages/casino/platform-lib/slot-races/coin-economy-confirm-popup/coin-economy-confirm-popup.component.html","packages/casino/platform-lib/slot-races/coin-economy-confirm-popup/coin-economy-confirm-popup.component.ts","packages/casino/platform-lib/slot-races/notification-popup/notification-popup.component.ts","packages/casino/platform-lib/slot-races/notification-popup/notification-popup.component.html","packages/casino/platform-lib/slot-races/shared/time-format.pipe.ts","packages/casino/platform-lib/slot-races/tournament-icon/tournament-icon.component.html","packages/casino/platform-lib/slot-races/tournament-icon/tournament-icon.component.ts","packages/casino/platform-lib/slot-races/cards-wrapper/card/card.component.html","packages/casino/platform-lib/slot-races/cards-wrapper/card/card.component.ts","packages/casino/platform-lib/slot-races/notification-overlay/notification-overlay.component.ts","packages/casino/platform-lib/slot-races/notification-overlay/notification-overlay.component.html","packages/casino/platform-lib/slot-races/pick-game-overlay/pick-game-overlay.component.html","packages/casino/platform-lib/slot-races/pick-game-overlay/pick-game-overlay.component.ts","packages/casino/platform-lib/slot-races/race-info/beat-the-banker-notification/beat-the-banker-notification.html","packages/casino/platform-lib/slot-races/race-info/beat-the-banker-notification/beat-the-banker-notification.ts","packages/casino/platform-lib/slot-races/race-info/prizes/prizes.component.html","packages/casino/platform-lib/slot-races/race-info/prizes/prizes.component.ts","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/points/points.component.html","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/points/points.component.ts","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/rules/rules.component.html","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/rules/rules.component.ts","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/tips/tips.component.html","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/tips/tips.component.ts","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/tnc/tnc.component.html","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/tnc/tnc.component.ts","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/rules-and-tnc.component.html","packages/casino/platform-lib/slot-races/rules-points-tips-tnc/rules-and-tnc.component.ts","packages/casino/platform-lib/slot-races/race-info/race-info.component.html","packages/casino/platform-lib/slot-races/race-info/race-info.component.ts","packages/casino/platform-lib/slot-races/cards-wrapper/cards-wrapper.component.html","packages/casino/platform-lib/slot-races/cards-wrapper/cards-wrapper.component.ts","packages/casino/platform-lib/slot-races/shared/results.pipe.ts","packages/casino/platform-lib/slot-races/results/results.component.html","packages/casino/platform-lib/slot-races/results/results.component.ts","packages/casino/platform-lib/slot-races/timeline-item.component.html","packages/casino/platform-lib/slot-races/timeline-item.component.ts","packages/casino/platform-lib/slot-races/slot-races.component.html","packages/casino/platform-lib/slot-races/slot-races.component.ts","packages/casino/platform-lib/slot-races/slot-races-wrapper.component.html","packages/casino/platform-lib/slot-races/slot-races-wrapper.component.ts","packages/casino/platform-lib/slot-races/slot-races-widget.component.html","packages/casino/platform-lib/slot-races/slot-races-widget.component.ts","packages/lottery-app/src/client-config/lottery-client-config.models.ts","packages/lottery-app/src/api/api.service.ts","packages/lottery-app/src/shared/model/category-sitecore-data.model.ts","packages/lottery-app/src/shared/lottery-lobby.service.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-cta/gaming-story-cta.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-cta/gaming-story-cta.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-emoji-slider/gaming-story-emoji-slider.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-emoji-slider/gaming-story-emoji-slider.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-emojis-animations/gaming-story-emojis-animations.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-emojis-animations/gaming-story-emojis-animations.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-optin/gaming-story-optin.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-optin/gaming-story-optin.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-progress-bar/gaming-story-progress-bar.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-progress-bar/gaming-story-progress-bar.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-quiz/gaming-story-quiz.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-quiz/gaming-story-quiz.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-yesno-poll/gaming-story-yesno-poll.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-yesno-poll/gaming-story-yesno-poll.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-items/gaming-story-items.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-items/gaming-story-items.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-container/gaming-stories-container.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-story-container/gaming-stories-container.component.ts","packages/casino/platform-lib/gaming-stories-phase2/gaming-stories-phase2-wrapper/gaming-stories-phase2-wrapper.component.html","packages/casino/platform-lib/gaming-stories-phase2/gaming-stories-phase2-wrapper/gaming-stories-phase2-wrapper.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-jackpot/news-feed-v2-jackpot.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-jackpot/news-feed-v2-jackpot.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-livecasino-api-item/news-feed-v2-livecasino-api-item.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-livecasino-api-item/news-feed-v2-livecasino-api-item.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-newgames/news-feed-v2-newgames.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-newgames/news-feed-v2-newgames.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-promo-marketing/news-feed-v2-promo-marketing.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-promo-marketing/news-feed-v2-promo-marketing.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-custom-item/news-feed-v2-custom-item.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-custom-item/news-feed-v2-custom-item.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-item/news-feed-v2-item.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-item/news-feed-v2-item.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2/news-feed-v2.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2/news-feed-v2.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-container/news-feed-v2-container.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-container/news-feed-v2-container.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-wrapper/news-feed-v2-wrapper.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-wrapper/news-feed-v2-wrapper.component.ts","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-widget/news-feed-v2-widget.component.html","packages/casino/platform-lib/news-feed-v2-section/news-feed-v2-widget/news-feed-v2-widget.component.ts","packages/casino/loader-lib/src/lib/casino-platform-loader.service.ts","packages/casino/loader-lib/src/lib/casino-module-load.directive.ts","packages/casino/loader-lib/src/lib/casino-platform-loader.module.ts","packages/lottery-app/src/faq-items/faq-items.component.html","packages/lottery-app/src/faq-items/faq-items.component.ts","packages/lottery-app/src/lottery-nav-section/lottery-nav-section.component.ts","packages/lottery-app/src/lottery-nav-section/lottery-nav-section.component.html","packages/lottery-app/src/lottery-seoboxes/lottery-seoboxes.component.html","packages/lottery-app/src/lottery-seoboxes/lottery-seoboxes.component.ts","packages/lottery-app/src/faq/faq.component.ts","packages/lottery-app/src/faq/faq.component.html","packages/lottery-app/src/faq-section/faq-section.component.html","packages/lottery-app/src/faq-section/faq-section.component.ts","packages/lottery-app/src/how-to-play-items/how-to-play-items.component.ts","packages/lottery-app/src/how-to-play-items/how-to-play-items.component.html","packages/lottery-app/src/how-to-play/how-to-play.component.html","packages/lottery-app/src/how-to-play/how-to-play.component.ts","packages/lottery-app/src/how-to-play-section/how-to-play-section.component.html","packages/lottery-app/src/how-to-play-section/how-to-play-section.component.ts","packages/lottery-app/src/iframes/iframe.component.html","packages/lottery-app/src/iframes/iframe.component.ts","packages/lottery-app/src/iframes-widget/iframe-widget.component.html","packages/lottery-app/src/iframes-widget/iframe-widget.component.ts","packages/lottery-app/src/lottery-games-section/lottery-games-section.component.ts","packages/lottery-app/src/lottery-games-section/lottery-games-section.component.html","packages/lottery-app/src/lottery-icons-item/lottery-icons-item.component.html","packages/lottery-app/src/lottery-icons-item/lottery-icons-item.component.ts","packages/lottery-app/src/lottery-icons/lottery-icons.component.html","packages/lottery-app/src/lottery-icons/lottery-icons.component.ts","packages/lottery-app/src/why-play-with-us/whyplaywithus.component.html","packages/lottery-app/src/why-play-with-us/whyplaywithus.component.ts","packages/lottery-app/src/lottery-home-widget/lottery-home-widget.component.ts","packages/lottery-app/src/lottery-home-widget/lottery-home-widget.component.html","packages/lottery-app/src/lottery-iframe-widget-section/lottery-iframe-widget-section.component.ts","packages/lottery-app/src/lottery-iframe-widget-section/lottery-iframe-widget-section.component.html","packages/lottery-app/src/lottery-seo-box-section/lottery-seo-box-section.component.ts","packages/lottery-app/src/lottery-seo-box-section/lottery-seo-box-section.component.html","packages/lottery-app/src/lottery-teaser-section/lottery-teaser-section.component.ts","packages/lottery-app/src/lottery-teaser-section/lottery-teaser-section.component.html","packages/lottery-app/src/shared/lottery-widget-composition.service.ts","packages/lottery-app/src/lottery-widgets/lottery-widgets.component.html","packages/lottery-app/src/lottery-widgets/lottery-widgets.component.ts","packages/lottery-app/src/lottery-widget-composition/lottery-widget-composition.component.ts","packages/lottery-app/src/lottery-widget-composition/lottery-widget-composition.component.html","packages/lottery-app/src/lottery-widget-container/lottery-widget-container.component.html","packages/lottery-app/src/lottery-widget-container/lottery-widget-container.component.ts","packages/lottery-app/src/lottery-lobby-container/lottery-lobby-container.component.html","packages/lottery-app/src/lottery-lobby-container/lottery-lobby-container.component.ts","packages/lottery-app/src/lottery-lobby-container-wrapper/lottery-lobby-container-wrapper.component.html","packages/lottery-app/src/lottery-lobby-container-wrapper/lottery-lobby-container-wrapper.component.ts","packages/lottery-app/src/lottery-home/lottery-home.component.ts","packages/lottery-app/src/lottery-home/lottery-home.component.html","packages/casino/platform-lib/src/lib/thumbnail-newgame/thumbnail-newgame.component.html","packages/casino/platform-lib/src/lib/thumbnail-newgame/thumbnail-newgame.component.ts","node_modules/@rx-angular/template/fesm2022/template-for.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","packages/loaders-lib/src/loader-styles.service.ts","packages/loaders-lib/src/module.service.ts","packages/loaders-lib/src/loaders.client-config.ts","packages/loaders-lib/src/loaders.models.ts","packages/loaders-lib/src/loader.service.ts","packages/loaders-lib/src/loaders-bootstrap.service.ts","packages/loaders-lib/src/loaders-map.ts","packages/loaders-lib/src/loaders.feature.ts","node_modules/@ngrx/store/fesm2022/ngrx-store.mjs","node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","packages/loaders-lib/routes/vanilla-lazy-routes.ts","packages/lottery-app/src/bootstrap/lot-bootstrap.service.ts","packages/lottery-app/src/lottery-bootstrap.guard.ts","packages/lottery-app/src/lottery.routes.ts","packages/lottery-app/src/app.routes.ts","packages/lottery-app/src/main.ts"],"sourcesContent":["import * as i1 from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, ViewChild, ANIMATION_MODULE_TYPE, booleanAttribute, numberAttribute, Optional, ViewChildren, ContentChild, ContentChildren, forwardRef, EventEmitter, signal, Directive, Output, NgModule } from '@angular/core';\nimport { RippleState, MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\n/**\n * Thumb types: range slider has two thumbs (START, END) whereas single point\n * slider only has one thumb (END).\n */\nconst _c0 = [\"knob\"];\nconst _c1 = [\"valueIndicatorContainer\"];\nfunction MatSliderVisualThumb_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2, 1)(2, \"div\", 5)(3, \"span\", 6);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r0.valueIndicatorText);\n }\n}\nconst _c2 = [\"trackActive\"];\nconst _c3 = [\"*\"];\nfunction MatSlider_Conditional_6_Conditional_2_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\");\n }\n if (rf & 2) {\n const tickMark_r1 = ctx.$implicit;\n const ɵ$index_14_r2 = ctx.$index;\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(tickMark_r1 === 0 ? \"mdc-slider__tick-mark--active\" : \"mdc-slider__tick-mark--inactive\");\n i0.ɵɵstyleProp(\"transform\", ctx_r2._calcTickMarkTransform(ɵ$index_14_r2));\n }\n}\nfunction MatSlider_Conditional_6_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, MatSlider_Conditional_6_Conditional_2_For_1_Template, 1, 4, \"div\", 8, i0.ɵɵrepeaterTrackByIndex);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵrepeater(ctx_r2._tickMarks);\n }\n}\nfunction MatSlider_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6, 1);\n i0.ɵɵtemplate(2, MatSlider_Conditional_6_Conditional_2_Template, 2, 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r2._cachedWidth ? 2 : -1);\n }\n}\nfunction MatSlider_Conditional_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"mat-slider-visual-thumb\", 7);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"discrete\", ctx_r2.discrete)(\"thumbPosition\", 1)(\"valueIndicatorText\", ctx_r2.startValueIndicatorText);\n }\n}\nvar _MatThumb = /*#__PURE__*/function (_MatThumb) {\n _MatThumb[_MatThumb[\"START\"] = 1] = \"START\";\n _MatThumb[_MatThumb[\"END\"] = 2] = \"END\";\n return _MatThumb;\n}(_MatThumb || {});\n/** Tick mark enum, for discrete sliders. */\nvar _MatTickMark = /*#__PURE__*/function (_MatTickMark) {\n _MatTickMark[_MatTickMark[\"ACTIVE\"] = 0] = \"ACTIVE\";\n _MatTickMark[_MatTickMark[\"INACTIVE\"] = 1] = \"INACTIVE\";\n return _MatTickMark;\n}(_MatTickMark || {});\n/**\n * Injection token that can be used for a `MatSlider` to provide itself as a\n * parent to the `MatSliderThumb` and `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER = /*#__PURE__*/new InjectionToken('_MatSlider');\n/**\n * Injection token that can be used to query for a `MatSliderThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB = /*#__PURE__*/new InjectionToken('_MatSliderThumb');\n/**\n * Injection token that can be used to query for a `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB = /*#__PURE__*/new InjectionToken('_MatSliderRangeThumb');\n/**\n * Injection token that can be used to query for a `MatSliderVisualThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_VISUAL_THUMB = /*#__PURE__*/new InjectionToken('_MatSliderVisualThumb');\n/**\n * A simple change event emitted by the MatSlider component.\n * @deprecated Use event bindings directly on the MatSliderThumbs for `change` and `input` events. See https://v17.material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatSliderChange {}\n\n/**\n * The visual slider thumb.\n *\n * Handles the slider thumb ripple states (hover, focus, and active),\n * and displaying the value tooltip on discrete sliders.\n * @docs-private\n */\nlet MatSliderVisualThumb = /*#__PURE__*/(() => {\n class MatSliderVisualThumb {\n constructor(_cdr, _ngZone, _elementRef, _slider) {\n this._cdr = _cdr;\n this._ngZone = _ngZone;\n this._slider = _slider;\n /** Whether the slider thumb is currently being hovered. */\n this._isHovered = false;\n /** Whether the slider thumb is currently being pressed. */\n this._isActive = false;\n /** Whether the value indicator tooltip is visible. */\n this._isValueIndicatorVisible = false;\n this._platform = inject(Platform);\n this._onPointerMove = event => {\n if (this._sliderInput._isFocused) {\n return;\n }\n const rect = this._hostElement.getBoundingClientRect();\n const isHovered = this._slider._isCursorOnSliderThumb(event, rect);\n this._isHovered = isHovered;\n if (isHovered) {\n this._showHoverRipple();\n } else {\n this._hideRipple(this._hoverRippleRef);\n }\n };\n this._onMouseLeave = () => {\n this._isHovered = false;\n this._hideRipple(this._hoverRippleRef);\n };\n this._onFocus = () => {\n // We don't want to show the hover ripple on top of the focus ripple.\n // Happen when the users cursor is over a thumb and then the user tabs to it.\n this._hideRipple(this._hoverRippleRef);\n this._showFocusRipple();\n this._hostElement.classList.add('mdc-slider__thumb--focused');\n };\n this._onBlur = () => {\n // Happens when the user tabs away while still dragging a thumb.\n if (!this._isActive) {\n this._hideRipple(this._focusRippleRef);\n }\n // Happens when the user tabs away from a thumb but their cursor is still over it.\n if (this._isHovered) {\n this._showHoverRipple();\n }\n this._hostElement.classList.remove('mdc-slider__thumb--focused');\n };\n this._onDragStart = event => {\n if (event.button !== 0) {\n return;\n }\n this._isActive = true;\n this._showActiveRipple();\n };\n this._onDragEnd = () => {\n this._isActive = false;\n this._hideRipple(this._activeRippleRef);\n // Happens when the user starts dragging a thumb, tabs away, and then stops dragging.\n if (!this._sliderInput._isFocused) {\n this._hideRipple(this._focusRippleRef);\n }\n // On Safari we need to immediately re-show the hover ripple because\n // sliders do not retain focus from pointer events on that platform.\n if (this._platform.SAFARI) {\n this._showHoverRipple();\n }\n };\n this._hostElement = _elementRef.nativeElement;\n }\n ngAfterViewInit() {\n const sliderInput = this._slider._getInput(this.thumbPosition);\n // No-op if the slider isn't configured properly. `MatSlider` will\n // throw an error instructing the user how to set up the slider.\n if (!sliderInput) {\n return;\n }\n this._ripple.radius = 24;\n this._sliderInput = sliderInput;\n this._sliderInputEl = this._sliderInput._hostElement;\n // These listeners don't update any data bindings so we bind them outside\n // of the NgZone to prevent Angular from needlessly running change detection.\n this._ngZone.runOutsideAngular(() => {\n const input = this._sliderInputEl;\n input.addEventListener('pointermove', this._onPointerMove);\n input.addEventListener('pointerdown', this._onDragStart);\n input.addEventListener('pointerup', this._onDragEnd);\n input.addEventListener('pointerleave', this._onMouseLeave);\n input.addEventListener('focus', this._onFocus);\n input.addEventListener('blur', this._onBlur);\n });\n }\n ngOnDestroy() {\n const input = this._sliderInputEl;\n if (input) {\n input.removeEventListener('pointermove', this._onPointerMove);\n input.removeEventListener('pointerdown', this._onDragStart);\n input.removeEventListener('pointerup', this._onDragEnd);\n input.removeEventListener('pointerleave', this._onMouseLeave);\n input.removeEventListener('focus', this._onFocus);\n input.removeEventListener('blur', this._onBlur);\n }\n }\n /** Handles displaying the hover ripple. */\n _showHoverRipple() {\n if (!this._isShowingRipple(this._hoverRippleRef)) {\n this._hoverRippleRef = this._showRipple({\n enterDuration: 0,\n exitDuration: 0\n });\n this._hoverRippleRef?.element.classList.add('mat-mdc-slider-hover-ripple');\n }\n }\n /** Handles displaying the focus ripple. */\n _showFocusRipple() {\n // Show the focus ripple event if noop animations are enabled.\n if (!this._isShowingRipple(this._focusRippleRef)) {\n this._focusRippleRef = this._showRipple({\n enterDuration: 0,\n exitDuration: 0\n }, true);\n this._focusRippleRef?.element.classList.add('mat-mdc-slider-focus-ripple');\n }\n }\n /** Handles displaying the active ripple. */\n _showActiveRipple() {\n if (!this._isShowingRipple(this._activeRippleRef)) {\n this._activeRippleRef = this._showRipple({\n enterDuration: 225,\n exitDuration: 400\n });\n this._activeRippleRef?.element.classList.add('mat-mdc-slider-active-ripple');\n }\n }\n /** Whether the given rippleRef is currently fading in or visible. */\n _isShowingRipple(rippleRef) {\n return rippleRef?.state === RippleState.FADING_IN || rippleRef?.state === RippleState.VISIBLE;\n }\n /** Manually launches the slider thumb ripple using the specified ripple animation config. */\n _showRipple(animation, ignoreGlobalRippleConfig) {\n if (this._slider.disabled) {\n return;\n }\n this._showValueIndicator();\n if (this._slider._isRange) {\n const sibling = this._slider._getThumb(this.thumbPosition === _MatThumb.START ? _MatThumb.END : _MatThumb.START);\n sibling._showValueIndicator();\n }\n if (this._slider._globalRippleOptions?.disabled && !ignoreGlobalRippleConfig) {\n return;\n }\n return this._ripple.launch({\n animation: this._slider._noopAnimations ? {\n enterDuration: 0,\n exitDuration: 0\n } : animation,\n centered: true,\n persistent: true\n });\n }\n /**\n * Fades out the given ripple.\n * Also hides the value indicator if no ripple is showing.\n */\n _hideRipple(rippleRef) {\n rippleRef?.fadeOut();\n if (this._isShowingAnyRipple()) {\n return;\n }\n if (!this._slider._isRange) {\n this._hideValueIndicator();\n }\n const sibling = this._getSibling();\n if (!sibling._isShowingAnyRipple()) {\n this._hideValueIndicator();\n sibling._hideValueIndicator();\n }\n }\n /** Shows the value indicator ui. */\n _showValueIndicator() {\n this._hostElement.classList.add('mdc-slider__thumb--with-indicator');\n }\n /** Hides the value indicator ui. */\n _hideValueIndicator() {\n this._hostElement.classList.remove('mdc-slider__thumb--with-indicator');\n }\n _getSibling() {\n return this._slider._getThumb(this.thumbPosition === _MatThumb.START ? _MatThumb.END : _MatThumb.START);\n }\n /** Gets the value indicator container's native HTML element. */\n _getValueIndicatorContainer() {\n return this._valueIndicatorContainer?.nativeElement;\n }\n /** Gets the native HTML element of the slider thumb knob. */\n _getKnob() {\n return this._knob.nativeElement;\n }\n _isShowingAnyRipple() {\n return this._isShowingRipple(this._hoverRippleRef) || this._isShowingRipple(this._focusRippleRef) || this._isShowingRipple(this._activeRippleRef);\n }\n static {\n this.ɵfac = function MatSliderVisualThumb_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSliderVisualThumb)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_SLIDER));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSliderVisualThumb,\n selectors: [[\"mat-slider-visual-thumb\"]],\n viewQuery: function MatSliderVisualThumb_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatRipple, 5);\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._ripple = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._knob = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._valueIndicatorContainer = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-slider__thumb\", \"mat-mdc-slider-visual-thumb\"],\n inputs: {\n discrete: \"discrete\",\n thumbPosition: \"thumbPosition\",\n valueIndicatorText: \"valueIndicatorText\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SLIDER_VISUAL_THUMB,\n useExisting: MatSliderVisualThumb\n }]), i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 2,\n consts: [[\"knob\", \"\"], [\"valueIndicatorContainer\", \"\"], [1, \"mdc-slider__value-indicator-container\"], [1, \"mdc-slider__thumb-knob\"], [\"matRipple\", \"\", 1, \"mat-mdc-focus-indicator\", 3, \"matRippleDisabled\"], [1, \"mdc-slider__value-indicator\"], [1, \"mdc-slider__value-indicator-text\"]],\n template: function MatSliderVisualThumb_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatSliderVisualThumb_Conditional_0_Template, 5, 1, \"div\", 2);\n i0.ɵɵelement(1, \"div\", 3, 0)(3, \"div\", 4);\n }\n if (rf & 2) {\n i0.ɵɵconditional(ctx.discrete ? 0 : -1);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matRippleDisabled\", true);\n }\n },\n dependencies: [MatRipple],\n styles: [\".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatSliderVisualThumb;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// TODO(wagnermaciel): maybe handle the following edge case:\n// 1. start dragging discrete slider\n// 2. tab to disable checkbox\n// 3. without ending drag, disable the slider\n/**\n * Allows users to select from a range of values by moving the slider thumb. It is similar in\n * behavior to the native `<input type=\"range\">` element.\n */\nlet MatSlider = /*#__PURE__*/(() => {\n class MatSlider {\n /** Whether the slider is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(v) {\n this._disabled = v;\n const endInput = this._getInput(_MatThumb.END);\n const startInput = this._getInput(_MatThumb.START);\n if (endInput) {\n endInput.disabled = this._disabled;\n }\n if (startInput) {\n startInput.disabled = this._disabled;\n }\n }\n /** Whether the slider displays a numeric value label upon pressing the thumb. */\n get discrete() {\n return this._discrete;\n }\n set discrete(v) {\n this._discrete = v;\n this._updateValueIndicatorUIs();\n }\n /** The minimum value that the slider can have. */\n get min() {\n return this._min;\n }\n set min(v) {\n const min = isNaN(v) ? this._min : v;\n if (this._min !== min) {\n this._updateMin(min);\n }\n }\n _updateMin(min) {\n const prevMin = this._min;\n this._min = min;\n this._isRange ? this._updateMinRange({\n old: prevMin,\n new: min\n }) : this._updateMinNonRange(min);\n this._onMinMaxOrStepChange();\n }\n _updateMinRange(min) {\n const endInput = this._getInput(_MatThumb.END);\n const startInput = this._getInput(_MatThumb.START);\n const oldEndValue = endInput.value;\n const oldStartValue = startInput.value;\n startInput.min = min.new;\n endInput.min = Math.max(min.new, startInput.value);\n startInput.max = Math.min(endInput.max, endInput.value);\n startInput._updateWidthInactive();\n endInput._updateWidthInactive();\n min.new < min.old ? this._onTranslateXChangeBySideEffect(endInput, startInput) : this._onTranslateXChangeBySideEffect(startInput, endInput);\n if (oldEndValue !== endInput.value) {\n this._onValueChange(endInput);\n }\n if (oldStartValue !== startInput.value) {\n this._onValueChange(startInput);\n }\n }\n _updateMinNonRange(min) {\n const input = this._getInput(_MatThumb.END);\n if (input) {\n const oldValue = input.value;\n input.min = min;\n input._updateThumbUIByValue();\n this._updateTrackUI(input);\n if (oldValue !== input.value) {\n this._onValueChange(input);\n }\n }\n }\n /** The maximum value that the slider can have. */\n get max() {\n return this._max;\n }\n set max(v) {\n const max = isNaN(v) ? this._max : v;\n if (this._max !== max) {\n this._updateMax(max);\n }\n }\n _updateMax(max) {\n const prevMax = this._max;\n this._max = max;\n this._isRange ? this._updateMaxRange({\n old: prevMax,\n new: max\n }) : this._updateMaxNonRange(max);\n this._onMinMaxOrStepChange();\n }\n _updateMaxRange(max) {\n const endInput = this._getInput(_MatThumb.END);\n const startInput = this._getInput(_MatThumb.START);\n const oldEndValue = endInput.value;\n const oldStartValue = startInput.value;\n endInput.max = max.new;\n startInput.max = Math.min(max.new, endInput.value);\n endInput.min = startInput.value;\n endInput._updateWidthInactive();\n startInput._updateWidthInactive();\n max.new > max.old ? this._onTranslateXChangeBySideEffect(startInput, endInput) : this._onTranslateXChangeBySideEffect(endInput, startInput);\n if (oldEndValue !== endInput.value) {\n this._onValueChange(endInput);\n }\n if (oldStartValue !== startInput.value) {\n this._onValueChange(startInput);\n }\n }\n _updateMaxNonRange(max) {\n const input = this._getInput(_MatThumb.END);\n if (input) {\n const oldValue = input.value;\n input.max = max;\n input._updateThumbUIByValue();\n this._updateTrackUI(input);\n if (oldValue !== input.value) {\n this._onValueChange(input);\n }\n }\n }\n /** The values at which the thumb will snap. */\n get step() {\n return this._step;\n }\n set step(v) {\n const step = isNaN(v) ? this._step : v;\n if (this._step !== step) {\n this._updateStep(step);\n }\n }\n _updateStep(step) {\n this._step = step;\n this._isRange ? this._updateStepRange() : this._updateStepNonRange();\n this._onMinMaxOrStepChange();\n }\n _updateStepRange() {\n const endInput = this._getInput(_MatThumb.END);\n const startInput = this._getInput(_MatThumb.START);\n const oldEndValue = endInput.value;\n const oldStartValue = startInput.value;\n const prevStartValue = startInput.value;\n endInput.min = this._min;\n startInput.max = this._max;\n endInput.step = this._step;\n startInput.step = this._step;\n if (this._platform.SAFARI) {\n endInput.value = endInput.value;\n startInput.value = startInput.value;\n }\n endInput.min = Math.max(this._min, startInput.value);\n startInput.max = Math.min(this._max, endInput.value);\n startInput._updateWidthInactive();\n endInput._updateWidthInactive();\n endInput.value < prevStartValue ? this._onTranslateXChangeBySideEffect(startInput, endInput) : this._onTranslateXChangeBySideEffect(endInput, startInput);\n if (oldEndValue !== endInput.value) {\n this._onValueChange(endInput);\n }\n if (oldStartValue !== startInput.value) {\n this._onValueChange(startInput);\n }\n }\n _updateStepNonRange() {\n const input = this._getInput(_MatThumb.END);\n if (input) {\n const oldValue = input.value;\n input.step = this._step;\n if (this._platform.SAFARI) {\n input.value = input.value;\n }\n input._updateThumbUIByValue();\n if (oldValue !== input.value) {\n this._onValueChange(input);\n }\n }\n }\n constructor(_ngZone, _cdr, _elementRef, _dir, _globalRippleOptions, animationMode) {\n this._ngZone = _ngZone;\n this._cdr = _cdr;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._globalRippleOptions = _globalRippleOptions;\n this._disabled = false;\n this._discrete = false;\n /** Whether the slider displays tick marks along the slider track. */\n this.showTickMarks = false;\n this._min = 0;\n /** Whether ripples are disabled in the slider. */\n this.disableRipple = false;\n this._max = 100;\n this._step = 1;\n /**\n * Function that will be used to format the value before it is displayed\n * in the thumb label. Can be used to format very large number in order\n * for them to fit into the slider thumb.\n */\n this.displayWith = value => `${value}`;\n this._rippleRadius = 24;\n // The value indicator tooltip text for the visual slider thumb(s).\n /** @docs-private */\n this.startValueIndicatorText = '';\n /** @docs-private */\n this.endValueIndicatorText = '';\n this._isRange = false;\n /** Whether the slider is rtl. */\n this._isRtl = false;\n this._hasViewInitialized = false;\n /**\n * The width of the tick mark track.\n * The tick mark track width is different from full track width\n */\n this._tickMarkTrackWidth = 0;\n this._hasAnimation = false;\n this._resizeTimer = null;\n this._platform = inject(Platform);\n /** The radius of the native slider's knob. AFAIK there is no way to avoid hardcoding this. */\n this._knobRadius = 8;\n /** Whether or not the slider thumbs overlap. */\n this._thumbsOverlap = false;\n this._noopAnimations = animationMode === 'NoopAnimations';\n this._dirChangeSubscription = this._dir.change.subscribe(() => this._onDirChange());\n this._isRtl = this._dir.value === 'rtl';\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._updateDimensions();\n }\n const eInput = this._getInput(_MatThumb.END);\n const sInput = this._getInput(_MatThumb.START);\n this._isRange = !!eInput && !!sInput;\n this._cdr.detectChanges();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _validateInputs(this._isRange, this._getInput(_MatThumb.END), this._getInput(_MatThumb.START));\n }\n const thumb = this._getThumb(_MatThumb.END);\n this._rippleRadius = thumb._ripple.radius;\n this._inputPadding = this._rippleRadius - this._knobRadius;\n this._isRange ? this._initUIRange(eInput, sInput) : this._initUINonRange(eInput);\n this._updateTrackUI(eInput);\n this._updateTickMarkUI();\n this._updateTickMarkTrackUI();\n this._observeHostResize();\n this._cdr.detectChanges();\n }\n _initUINonRange(eInput) {\n eInput.initProps();\n eInput.initUI();\n this._updateValueIndicatorUI(eInput);\n this._hasViewInitialized = true;\n eInput._updateThumbUIByValue();\n }\n _initUIRange(eInput, sInput) {\n eInput.initProps();\n eInput.initUI();\n sInput.initProps();\n sInput.initUI();\n eInput._updateMinMax();\n sInput._updateMinMax();\n eInput._updateStaticStyles();\n sInput._updateStaticStyles();\n this._updateValueIndicatorUIs();\n this._hasViewInitialized = true;\n eInput._updateThumbUIByValue();\n sInput._updateThumbUIByValue();\n }\n ngOnDestroy() {\n this._dirChangeSubscription.unsubscribe();\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n }\n /** Handles updating the slider ui after a dir change. */\n _onDirChange() {\n this._isRtl = this._dir.value === 'rtl';\n this._isRange ? this._onDirChangeRange() : this._onDirChangeNonRange();\n this._updateTickMarkUI();\n }\n _onDirChangeRange() {\n const endInput = this._getInput(_MatThumb.END);\n const startInput = this._getInput(_MatThumb.START);\n endInput._setIsLeftThumb();\n startInput._setIsLeftThumb();\n endInput.translateX = endInput._calcTranslateXByValue();\n startInput.translateX = startInput._calcTranslateXByValue();\n endInput._updateStaticStyles();\n startInput._updateStaticStyles();\n endInput._updateWidthInactive();\n startInput._updateWidthInactive();\n endInput._updateThumbUIByValue();\n startInput._updateThumbUIByValue();\n }\n _onDirChangeNonRange() {\n const input = this._getInput(_MatThumb.END);\n input._updateThumbUIByValue();\n }\n /** Starts observing and updating the slider if the host changes its size. */\n _observeHostResize() {\n if (typeof ResizeObserver === 'undefined' || !ResizeObserver) {\n return;\n }\n this._ngZone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver(() => {\n if (this._isActive()) {\n return;\n }\n if (this._resizeTimer) {\n clearTimeout(this._resizeTimer);\n }\n this._onResize();\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n });\n }\n /** Whether any of the thumbs are currently active. */\n _isActive() {\n return this._getThumb(_MatThumb.START)._isActive || this._getThumb(_MatThumb.END)._isActive;\n }\n _getValue(thumbPosition = _MatThumb.END) {\n const input = this._getInput(thumbPosition);\n if (!input) {\n return this.min;\n }\n return input.value;\n }\n _skipUpdate() {\n return !!(this._getInput(_MatThumb.START)?._skipUIUpdate || this._getInput(_MatThumb.END)?._skipUIUpdate);\n }\n /** Stores the slider dimensions. */\n _updateDimensions() {\n this._cachedWidth = this._elementRef.nativeElement.offsetWidth;\n this._cachedLeft = this._elementRef.nativeElement.getBoundingClientRect().left;\n }\n /** Sets the styles for the active portion of the track. */\n _setTrackActiveStyles(styles) {\n const trackStyle = this._trackActive.nativeElement.style;\n trackStyle.left = styles.left;\n trackStyle.right = styles.right;\n trackStyle.transformOrigin = styles.transformOrigin;\n trackStyle.transform = styles.transform;\n }\n /** Returns the translateX positioning for a tick mark based on it's index. */\n _calcTickMarkTransform(index) {\n // TODO(wagnermaciel): See if we can avoid doing this and just using flex to position these.\n const translateX = index * (this._tickMarkTrackWidth / (this._tickMarks.length - 1));\n return `translateX(${translateX}px`;\n }\n // Handlers for updating the slider ui.\n _onTranslateXChange(source) {\n if (!this._hasViewInitialized) {\n return;\n }\n this._updateThumbUI(source);\n this._updateTrackUI(source);\n this._updateOverlappingThumbUI(source);\n }\n _onTranslateXChangeBySideEffect(input1, input2) {\n if (!this._hasViewInitialized) {\n return;\n }\n input1._updateThumbUIByValue();\n input2._updateThumbUIByValue();\n }\n _onValueChange(source) {\n if (!this._hasViewInitialized) {\n return;\n }\n this._updateValueIndicatorUI(source);\n this._updateTickMarkUI();\n this._cdr.detectChanges();\n }\n _onMinMaxOrStepChange() {\n if (!this._hasViewInitialized) {\n return;\n }\n this._updateTickMarkUI();\n this._updateTickMarkTrackUI();\n this._cdr.markForCheck();\n }\n _onResize() {\n if (!this._hasViewInitialized) {\n return;\n }\n this._updateDimensions();\n if (this._isRange) {\n const eInput = this._getInput(_MatThumb.END);\n const sInput = this._getInput(_MatThumb.START);\n eInput._updateThumbUIByValue();\n sInput._updateThumbUIByValue();\n eInput._updateStaticStyles();\n sInput._updateStaticStyles();\n eInput._updateMinMax();\n sInput._updateMinMax();\n eInput._updateWidthInactive();\n sInput._updateWidthInactive();\n } else {\n const eInput = this._getInput(_MatThumb.END);\n if (eInput) {\n eInput._updateThumbUIByValue();\n }\n }\n this._updateTickMarkUI();\n this._updateTickMarkTrackUI();\n this._cdr.detectChanges();\n }\n /** Returns true if the slider knobs are overlapping one another. */\n _areThumbsOverlapping() {\n const startInput = this._getInput(_MatThumb.START);\n const endInput = this._getInput(_MatThumb.END);\n if (!startInput || !endInput) {\n return false;\n }\n return endInput.translateX - startInput.translateX < 20;\n }\n /**\n * Updates the class names of overlapping slider thumbs so\n * that the current active thumb is styled to be on \"top\".\n */\n _updateOverlappingThumbClassNames(source) {\n const sibling = source.getSibling();\n const sourceThumb = this._getThumb(source.thumbPosition);\n const siblingThumb = this._getThumb(sibling.thumbPosition);\n siblingThumb._hostElement.classList.remove('mdc-slider__thumb--top');\n sourceThumb._hostElement.classList.toggle('mdc-slider__thumb--top', this._thumbsOverlap);\n }\n /** Updates the UI of slider thumbs when they begin or stop overlapping. */\n _updateOverlappingThumbUI(source) {\n if (!this._isRange || this._skipUpdate()) {\n return;\n }\n if (this._thumbsOverlap !== this._areThumbsOverlapping()) {\n this._thumbsOverlap = !this._thumbsOverlap;\n this._updateOverlappingThumbClassNames(source);\n }\n }\n // _MatThumb styles update conditions\n //\n // 1. TranslateX, resize, or dir change\n // - Reason: The thumb styles need to be updated according to the new translateX.\n // 2. Min, max, or step\n // - Reason: The value may have silently changed.\n /** Updates the translateX of the given thumb. */\n _updateThumbUI(source) {\n if (this._skipUpdate()) {\n return;\n }\n const thumb = this._getThumb(source.thumbPosition === _MatThumb.END ? _MatThumb.END : _MatThumb.START);\n thumb._hostElement.style.transform = `translateX(${source.translateX}px)`;\n }\n // Value indicator text update conditions\n //\n // 1. Value\n // - Reason: The value displayed needs to be updated.\n // 2. Min, max, or step\n // - Reason: The value may have silently changed.\n /** Updates the value indicator tooltip ui for the given thumb. */\n _updateValueIndicatorUI(source) {\n if (this._skipUpdate()) {\n return;\n }\n const valuetext = this.displayWith(source.value);\n this._hasViewInitialized ? source._valuetext.set(valuetext) : source._hostElement.setAttribute('aria-valuetext', valuetext);\n if (this.discrete) {\n source.thumbPosition === _MatThumb.START ? this.startValueIndicatorText = valuetext : this.endValueIndicatorText = valuetext;\n const visualThumb = this._getThumb(source.thumbPosition);\n valuetext.length < 3 ? visualThumb._hostElement.classList.add('mdc-slider__thumb--short-value') : visualThumb._hostElement.classList.remove('mdc-slider__thumb--short-value');\n }\n }\n /** Updates all value indicator UIs in the slider. */\n _updateValueIndicatorUIs() {\n const eInput = this._getInput(_MatThumb.END);\n const sInput = this._getInput(_MatThumb.START);\n if (eInput) {\n this._updateValueIndicatorUI(eInput);\n }\n if (sInput) {\n this._updateValueIndicatorUI(sInput);\n }\n }\n // Update Tick Mark Track Width\n //\n // 1. Min, max, or step\n // - Reason: The maximum reachable value may have changed.\n // - Side note: The maximum reachable value is different from the maximum value set by the\n // user. For example, a slider with [min: 5, max: 100, step: 10] would have a maximum\n // reachable value of 95.\n // 2. Resize\n // - Reason: The position for the maximum reachable value needs to be recalculated.\n /** Updates the width of the tick mark track. */\n _updateTickMarkTrackUI() {\n if (!this.showTickMarks || this._skipUpdate()) {\n return;\n }\n const step = this._step && this._step > 0 ? this._step : 1;\n const maxValue = Math.floor(this.max / step) * step;\n const percentage = (maxValue - this.min) / (this.max - this.min);\n this._tickMarkTrackWidth = this._cachedWidth * percentage - 6;\n }\n // Track active update conditions\n //\n // 1. TranslateX\n // - Reason: The track active should line up with the new thumb position.\n // 2. Min or max\n // - Reason #1: The 'active' percentage needs to be recalculated.\n // - Reason #2: The value may have silently changed.\n // 3. Step\n // - Reason: The value may have silently changed causing the thumb(s) to shift.\n // 4. Dir change\n // - Reason: The track active will need to be updated according to the new thumb position(s).\n // 5. Resize\n // - Reason: The total width the 'active' tracks translateX is based on has changed.\n /** Updates the scale on the active portion of the track. */\n _updateTrackUI(source) {\n if (this._skipUpdate()) {\n return;\n }\n this._isRange ? this._updateTrackUIRange(source) : this._updateTrackUINonRange(source);\n }\n _updateTrackUIRange(source) {\n const sibling = source.getSibling();\n if (!sibling || !this._cachedWidth) {\n return;\n }\n const activePercentage = Math.abs(sibling.translateX - source.translateX) / this._cachedWidth;\n if (source._isLeftThumb && this._cachedWidth) {\n this._setTrackActiveStyles({\n left: 'auto',\n right: `${this._cachedWidth - sibling.translateX}px`,\n transformOrigin: 'right',\n transform: `scaleX(${activePercentage})`\n });\n } else {\n this._setTrackActiveStyles({\n left: `${sibling.translateX}px`,\n right: 'auto',\n transformOrigin: 'left',\n transform: `scaleX(${activePercentage})`\n });\n }\n }\n _updateTrackUINonRange(source) {\n this._isRtl ? this._setTrackActiveStyles({\n left: 'auto',\n right: '0px',\n transformOrigin: 'right',\n transform: `scaleX(${1 - source.fillPercentage})`\n }) : this._setTrackActiveStyles({\n left: '0px',\n right: 'auto',\n transformOrigin: 'left',\n transform: `scaleX(${source.fillPercentage})`\n });\n }\n // Tick mark update conditions\n //\n // 1. Value\n // - Reason: a tick mark which was once active might now be inactive or vice versa.\n // 2. Min, max, or step\n // - Reason #1: the number of tick marks may have changed.\n // - Reason #2: The value may have silently changed.\n /** Updates the dots along the slider track. */\n _updateTickMarkUI() {\n if (!this.showTickMarks || this.step === undefined || this.min === undefined || this.max === undefined) {\n return;\n }\n const step = this.step > 0 ? this.step : 1;\n this._isRange ? this._updateTickMarkUIRange(step) : this._updateTickMarkUINonRange(step);\n if (this._isRtl) {\n this._tickMarks.reverse();\n }\n }\n _updateTickMarkUINonRange(step) {\n const value = this._getValue();\n let numActive = Math.max(Math.round((value - this.min) / step), 0);\n let numInactive = Math.max(Math.round((this.max - value) / step), 0);\n this._isRtl ? numActive++ : numInactive++;\n this._tickMarks = Array(numActive).fill(_MatTickMark.ACTIVE).concat(Array(numInactive).fill(_MatTickMark.INACTIVE));\n }\n _updateTickMarkUIRange(step) {\n const endValue = this._getValue();\n const startValue = this._getValue(_MatThumb.START);\n const numInactiveBeforeStartThumb = Math.max(Math.round((startValue - this.min) / step), 0);\n const numActive = Math.max(Math.round((endValue - startValue) / step) + 1, 0);\n const numInactiveAfterEndThumb = Math.max(Math.round((this.max - endValue) / step), 0);\n this._tickMarks = Array(numInactiveBeforeStartThumb).fill(_MatTickMark.INACTIVE).concat(Array(numActive).fill(_MatTickMark.ACTIVE), Array(numInactiveAfterEndThumb).fill(_MatTickMark.INACTIVE));\n }\n /** Gets the slider thumb input of the given thumb position. */\n _getInput(thumbPosition) {\n if (thumbPosition === _MatThumb.END && this._input) {\n return this._input;\n }\n if (this._inputs?.length) {\n return thumbPosition === _MatThumb.START ? this._inputs.first : this._inputs.last;\n }\n return;\n }\n /** Gets the slider thumb HTML input element of the given thumb position. */\n _getThumb(thumbPosition) {\n return thumbPosition === _MatThumb.END ? this._thumbs?.last : this._thumbs?.first;\n }\n _setTransition(withAnimation) {\n this._hasAnimation = !this._platform.IOS && withAnimation && !this._noopAnimations;\n this._elementRef.nativeElement.classList.toggle('mat-mdc-slider-with-animation', this._hasAnimation);\n }\n /** Whether the given pointer event occurred within the bounds of the slider pointer's DOM Rect. */\n _isCursorOnSliderThumb(event, rect) {\n const radius = rect.width / 2;\n const centerX = rect.x + radius;\n const centerY = rect.y + radius;\n const dx = event.clientX - centerX;\n const dy = event.clientY - centerY;\n return Math.pow(dx, 2) + Math.pow(dy, 2) < Math.pow(radius, 2);\n }\n static {\n this.ɵfac = function MatSlider_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSlider)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSlider,\n selectors: [[\"mat-slider\"]],\n contentQueries: function MatSlider_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SLIDER_THUMB, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SLIDER_RANGE_THUMB, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._input = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputs = _t);\n }\n },\n viewQuery: function MatSlider_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(MAT_SLIDER_VISUAL_THUMB, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._trackActive = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._thumbs = _t);\n }\n },\n hostAttrs: [1, \"mat-mdc-slider\", \"mdc-slider\"],\n hostVars: 12,\n hostBindings: function MatSlider_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"mat-\" + (ctx.color || \"primary\"));\n i0.ɵɵclassProp(\"mdc-slider--range\", ctx._isRange)(\"mdc-slider--disabled\", ctx.disabled)(\"mdc-slider--discrete\", ctx.discrete)(\"mdc-slider--tick-marks\", ctx.showTickMarks)(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n discrete: [2, \"discrete\", \"discrete\", booleanAttribute],\n showTickMarks: [2, \"showTickMarks\", \"showTickMarks\", booleanAttribute],\n min: [2, \"min\", \"min\", numberAttribute],\n color: \"color\",\n disableRipple: [2, \"disableRipple\", \"disableRipple\", booleanAttribute],\n max: [2, \"max\", \"max\", numberAttribute],\n step: [2, \"step\", \"step\", numberAttribute],\n displayWith: \"displayWith\"\n },\n exportAs: [\"matSlider\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SLIDER,\n useExisting: MatSlider\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c3,\n decls: 9,\n vars: 5,\n consts: [[\"trackActive\", \"\"], [\"tickMarkContainer\", \"\"], [1, \"mdc-slider__track\"], [1, \"mdc-slider__track--inactive\"], [1, \"mdc-slider__track--active\"], [1, \"mdc-slider__track--active_fill\"], [1, \"mdc-slider__tick-marks\"], [3, \"discrete\", \"thumbPosition\", \"valueIndicatorText\"], [3, \"class\", \"transform\"]],\n template: function MatSlider_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 2);\n i0.ɵɵelement(2, \"div\", 3);\n i0.ɵɵelementStart(3, \"div\", 4);\n i0.ɵɵelement(4, \"div\", 5, 0);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, MatSlider_Conditional_6_Template, 3, 1, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, MatSlider_Conditional_7_Template, 1, 3, \"mat-slider-visual-thumb\", 7);\n i0.ɵɵelement(8, \"mat-slider-visual-thumb\", 7);\n }\n if (rf & 2) {\n i0.ɵɵadvance(6);\n i0.ɵɵconditional(ctx.showTickMarks ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._isRange ? 7 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"discrete\", ctx.discrete)(\"thumbPosition\", 2)(\"valueIndicatorText\", ctx.endValueIndicatorText);\n }\n },\n dependencies: [MatSliderVisualThumb],\n styles: [\".mdc-slider__track{position:absolute;top:50%;transform:translateY(-50%);width:100%;pointer-events:none;height:var(--mdc-slider-inactive-track-height)}.mdc-slider__track--active,.mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider__track--active{overflow:hidden;border-radius:var(--mdc-slider-active-track-shape, var(--mat-app-corner-full));height:var(--mdc-slider-active-track-height);top:calc((var(--mdc-slider-inactive-track-height) - var(--mdc-slider-active-track-height))/2)}.mdc-slider__track--active_fill{border-top-style:solid;box-sizing:border-box;height:100%;width:100%;position:relative;transform-origin:left;transition:transform 80ms ease;border-color:var(--mdc-slider-active-track-color, var(--mat-app-primary));border-top-width:var(--mdc-slider-active-track-height)}.mdc-slider--disabled .mdc-slider__track--active_fill{border-color:var(--mdc-slider-disabled-active-track-color, var(--mat-app-on-surface))}[dir=rtl] .mdc-slider__track--active_fill{-webkit-transform-origin:right;transform-origin:right}.mdc-slider__track--inactive{left:0;top:0;opacity:.24;background-color:var(--mdc-slider-inactive-track-color, var(--mat-app-surface-variant));height:var(--mdc-slider-inactive-track-height);border-radius:var(--mdc-slider-inactive-track-shape, var(--mat-app-corner-full))}.mdc-slider--disabled .mdc-slider__track--inactive{background-color:var(--mdc-slider-disabled-inactive-track-color, var(--mat-app-on-surface));opacity:.24}.mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.cdk-high-contrast-active .mdc-slider__track--inactive::before{border-color:CanvasText}.mdc-slider__value-indicator-container{bottom:44px;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%);transform:var(--mat-slider-value-indicator-container-transform)}.mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider__value-indicator{display:flex;align-items:center;border-radius:4px;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom;opacity:1;transition:transform 100ms cubic-bezier(0.4, 0, 1, 1);word-break:normal;background-color:var(--mdc-slider-label-container-color, var(--mat-app-primary));color:var(--mdc-slider-label-label-text-color, var(--mat-app-on-primary));width:var(--mat-slider-value-indicator-width);height:var(--mat-slider-value-indicator-height);padding:var(--mat-slider-value-indicator-padding);opacity:var(--mat-slider-value-indicator-opacity);border-radius:var(--mat-slider-value-indicator-border-radius)}.mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}.mdc-slider__value-indicator::before{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:6px solid;bottom:-5px;content:\\\"\\\";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;display:var(--mat-slider-value-indicator-caret-display);border-top-color:var(--mdc-slider-label-container-color, var(--mat-app-primary))}.mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.cdk-high-contrast-active .mdc-slider__value-indicator::after{border-color:CanvasText}.mdc-slider__value-indicator-text{text-align:center;width:var(--mat-slider-value-indicator-width);transform:var(--mat-slider-value-indicator-text-transform);font-family:var(--mdc-slider-label-label-text-font, var(--mat-app-label-medium-font));font-size:var(--mdc-slider-label-label-text-size, var(--mat-app-label-medium-size));font-weight:var(--mdc-slider-label-label-text-weight, var(--mat-app-label-medium-weight));line-height:var(--mdc-slider-label-label-text-line-height, var(--mat-app-label-medium-line-height));letter-spacing:var(--mdc-slider-label-label-text-tracking, var(--mat-app-label-medium-tracking))}.mdc-slider__thumb{-webkit-user-select:none;user-select:none;display:flex;left:-24px;outline:none;position:absolute;height:48px;width:48px;pointer-events:none}.mdc-slider--discrete .mdc-slider__thumb{transition:transform 80ms ease}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__thumb--top{z-index:1}.mdc-slider__thumb-knob{position:absolute;box-sizing:border-box;left:50%;top:50%;transform:translate(-50%, -50%);border-style:solid;width:var(--mdc-slider-handle-width);height:var(--mdc-slider-handle-height);border-width:calc(var(--mdc-slider-handle-height)/2) calc(var(--mdc-slider-handle-width)/2);box-shadow:var(--mdc-slider-handle-elevation, var(--mat-app-level1));background-color:var(--mdc-slider-handle-color, var(--mat-app-primary));border-color:var(--mdc-slider-handle-color, var(--mat-app-primary));border-radius:var(--mdc-slider-handle-shape, var(--mat-app-corner-full))}.mdc-slider__thumb:hover .mdc-slider__thumb-knob{background-color:var(--mdc-slider-hover-handle-color, var(--mat-app-primary));border-color:var(--mdc-slider-hover-handle-color, var(--mat-app-primary))}.mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--mdc-slider-focus-handle-color, var(--mat-app-primary));border-color:var(--mdc-slider-focus-handle-color, var(--mat-app-primary))}.mdc-slider--disabled .mdc-slider__thumb-knob{background-color:var(--mdc-slider-disabled-handle-color, var(--mat-app-on-surface));border-color:var(--mdc-slider-disabled-handle-color, var(--mat-app-on-surface))}.mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border:solid 1px #fff;box-sizing:content-box;border-color:var(--mdc-slider-with-overlap-handle-outline-color, var(--mat-app-on-primary));border-width:var(--mdc-slider-with-overlap-handle-outline-width)}.mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider__tick-mark--active,.mdc-slider__tick-mark--inactive{width:var(--mdc-slider-with-tick-marks-container-size);height:var(--mdc-slider-with-tick-marks-container-size);border-radius:var(--mdc-slider-with-tick-marks-container-shape, var(--mat-app-corner-full))}.mdc-slider__tick-mark--inactive{opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity);background-color:var(--mdc-slider-with-tick-marks-inactive-container-color, var(--mat-app-on-surface-variant))}.mdc-slider--disabled .mdc-slider__tick-mark--inactive{opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity);background-color:var(--mdc-slider-with-tick-marks-disabled-container-color, var(--mat-app-on-surface))}.mdc-slider__tick-mark--active{opacity:var(--mdc-slider-with-tick-marks-active-container-opacity);background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mat-app-on-primary))}.mdc-slider__input{cursor:pointer;left:2px;margin:0;height:44px;opacity:0;position:absolute;top:2px;width:44px;box-sizing:content-box}.mdc-slider__input.mat-mdc-slider-input-no-pointer-events{pointer-events:none}.mdc-slider__input.mat-slider__right-input{left:auto;right:0}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;cursor:pointer;height:48px;margin:0 8px;position:relative;touch-action:pan-y;width:auto;min-width:112px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-slider.mdc-slider--disabled{cursor:auto;opacity:.38}.mat-mdc-slider .mdc-slider__thumb,.mat-mdc-slider .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider.mdc-slider--discrete .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider .mat-ripple .mat-ripple-element{background-color:var(--mat-slider-ripple-color, var(--mat-app-primary))}.mat-mdc-slider .mat-ripple .mat-mdc-slider-hover-ripple{background-color:var(--mat-slider-hover-state-layer-color)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-focus-ripple,.mat-mdc-slider .mat-ripple .mat-mdc-slider-active-ripple{background-color:var(--mat-slider-focus-state-layer-color)}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}.mat-mdc-slider .mat-mdc-focus-indicator::before{border-radius:50%}.mdc-slider__thumb--focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatSlider;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Ensures that there is not an invalid configuration for the slider thumb inputs. */\nfunction _validateInputs(isRange, endInputElement, startInputElement) {\n const startValid = !isRange || startInputElement?._hostElement.hasAttribute('matSliderStartThumb');\n const endValid = endInputElement?._hostElement.hasAttribute(isRange ? 'matSliderEndThumb' : 'matSliderThumb');\n if (!startValid || !endValid) {\n _throwInvalidInputConfigurationError();\n }\n}\nfunction _throwInvalidInputConfigurationError() {\n throw Error(`Invalid slider thumb input configuration!\n\n Valid configurations are as follows:\n\n <mat-slider>\n <input matSliderThumb>\n </mat-slider>\n\n or\n\n <mat-slider>\n <input matSliderStartThumb>\n <input matSliderEndThumb>\n </mat-slider>\n `);\n}\n\n/**\n * Provider that allows the slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: /*#__PURE__*/forwardRef(() => MatSliderThumb),\n multi: true\n};\n/**\n * Provider that allows the range slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: /*#__PURE__*/forwardRef(() => MatSliderRangeThumb),\n multi: true\n};\n/**\n * Directive that adds slider-specific behaviors to an input element inside `<mat-slider>`.\n * Up to two may be placed inside of a `<mat-slider>`.\n *\n * If one is used, the selector `matSliderThumb` must be used, and the outcome will be a normal\n * slider. If two are used, the selectors `matSliderStartThumb` and `matSliderEndThumb` must be\n * used, and the outcome will be a range slider with two slider thumbs.\n */\nlet MatSliderThumb = /*#__PURE__*/(() => {\n class MatSliderThumb {\n get value() {\n return numberAttribute(this._hostElement.value, 0);\n }\n set value(value) {\n value = isNaN(value) ? 0 : value;\n const stringValue = value + '';\n if (!this._hasSetInitialValue) {\n this._initialValue = stringValue;\n return;\n }\n if (this._isActive) {\n return;\n }\n this._setValue(stringValue);\n }\n /**\n * Handles programmatic value setting. This has been split out to\n * allow the range thumb to override it and add additional necessary logic.\n */\n _setValue(value) {\n this._hostElement.value = value;\n this._updateThumbUIByValue();\n this._slider._onValueChange(this);\n this._cdr.detectChanges();\n this._slider._cdr.markForCheck();\n }\n /**\n * The current translateX in px of the slider visual thumb.\n * @docs-private\n */\n get translateX() {\n if (this._slider.min >= this._slider.max) {\n this._translateX = this._tickMarkOffset;\n return this._translateX;\n }\n if (this._translateX === undefined) {\n this._translateX = this._calcTranslateXByValue();\n }\n return this._translateX;\n }\n set translateX(v) {\n this._translateX = v;\n }\n /** @docs-private */\n get min() {\n return numberAttribute(this._hostElement.min, 0);\n }\n set min(v) {\n this._hostElement.min = v + '';\n this._cdr.detectChanges();\n }\n /** @docs-private */\n get max() {\n return numberAttribute(this._hostElement.max, 0);\n }\n set max(v) {\n this._hostElement.max = v + '';\n this._cdr.detectChanges();\n }\n get step() {\n return numberAttribute(this._hostElement.step, 0);\n }\n set step(v) {\n this._hostElement.step = v + '';\n this._cdr.detectChanges();\n }\n /** @docs-private */\n get disabled() {\n return booleanAttribute(this._hostElement.disabled);\n }\n set disabled(v) {\n this._hostElement.disabled = v;\n this._cdr.detectChanges();\n if (this._slider.disabled !== this.disabled) {\n this._slider.disabled = this.disabled;\n }\n }\n /** The percentage of the slider that coincides with the value. */\n get percentage() {\n if (this._slider.min >= this._slider.max) {\n return this._slider._isRtl ? 1 : 0;\n }\n return (this.value - this._slider.min) / (this._slider.max - this._slider.min);\n }\n /** @docs-private */\n get fillPercentage() {\n if (!this._slider._cachedWidth) {\n return this._slider._isRtl ? 1 : 0;\n }\n if (this._translateX === 0) {\n return 0;\n }\n return this.translateX / this._slider._cachedWidth;\n }\n /** Used to relay updates to _isFocused to the slider visual thumbs. */\n _setIsFocused(v) {\n this._isFocused = v;\n }\n constructor(_ngZone, _elementRef, _cdr, _slider) {\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._cdr = _cdr;\n this._slider = _slider;\n /** Event emitted when the `value` is changed. */\n this.valueChange = new EventEmitter();\n /** Event emitted when the slider thumb starts being dragged. */\n this.dragStart = new EventEmitter();\n /** Event emitted when the slider thumb stops being dragged. */\n this.dragEnd = new EventEmitter();\n /**\n * Indicates whether this thumb is the start or end thumb.\n * @docs-private\n */\n this.thumbPosition = _MatThumb.END;\n /** The aria-valuetext string representation of the input's value. */\n this._valuetext = signal('');\n /** The radius of a native html slider's knob. */\n this._knobRadius = 8;\n /** The distance in px from the start of the slider track to the first tick mark. */\n this._tickMarkOffset = 3;\n /** Whether user's cursor is currently in a mouse down state on the input. */\n this._isActive = false;\n /** Whether the input is currently focused (either by tab or after clicking). */\n this._isFocused = false;\n /**\n * Whether the initial value has been set.\n * This exists because the initial value cannot be immediately set because the min and max\n * must first be relayed from the parent MatSlider component, which can only happen later\n * in the component lifecycle.\n */\n this._hasSetInitialValue = false;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /**\n * Indicates whether UI updates should be skipped.\n *\n * This flag is used to avoid flickering\n * when correcting values on pointer up/down.\n */\n this._skipUIUpdate = false;\n /** Callback called when the slider input has been touched. */\n this._onTouchedFn = () => {};\n /**\n * Whether the NgModel has been initialized.\n *\n * This flag is used to ignore ghost null calls to\n * writeValue which can break slider initialization.\n *\n * See https://github.com/angular/angular/issues/14988.\n */\n this._isControlInitialized = false;\n this._platform = inject(Platform);\n this._hostElement = _elementRef.nativeElement;\n this._ngZone.runOutsideAngular(() => {\n this._hostElement.addEventListener('pointerdown', this._onPointerDown.bind(this));\n this._hostElement.addEventListener('pointermove', this._onPointerMove.bind(this));\n this._hostElement.addEventListener('pointerup', this._onPointerUp.bind(this));\n });\n }\n ngOnDestroy() {\n this._hostElement.removeEventListener('pointerdown', this._onPointerDown);\n this._hostElement.removeEventListener('pointermove', this._onPointerMove);\n this._hostElement.removeEventListener('pointerup', this._onPointerUp);\n this._destroyed.next();\n this._destroyed.complete();\n this.dragStart.complete();\n this.dragEnd.complete();\n }\n /** @docs-private */\n initProps() {\n this._updateWidthInactive();\n // If this or the parent slider is disabled, just make everything disabled.\n if (this.disabled !== this._slider.disabled) {\n // The MatSlider setter for disabled will relay this and disable both inputs.\n this._slider.disabled = true;\n }\n this.step = this._slider.step;\n this.min = this._slider.min;\n this.max = this._slider.max;\n this._initValue();\n }\n /** @docs-private */\n initUI() {\n this._updateThumbUIByValue();\n }\n _initValue() {\n this._hasSetInitialValue = true;\n if (this._initialValue === undefined) {\n this.value = this._getDefaultValue();\n } else {\n this._hostElement.value = this._initialValue;\n this._updateThumbUIByValue();\n this._slider._onValueChange(this);\n this._cdr.detectChanges();\n }\n }\n _getDefaultValue() {\n return this.min;\n }\n _onBlur() {\n this._setIsFocused(false);\n this._onTouchedFn();\n }\n _onFocus() {\n this._slider._setTransition(false);\n this._slider._updateTrackUI(this);\n this._setIsFocused(true);\n }\n _onChange() {\n this.valueChange.emit(this.value);\n // only used to handle the edge case where user\n // mousedown on the slider then uses arrow keys.\n if (this._isActive) {\n this._updateThumbUIByValue({\n withAnimation: true\n });\n }\n }\n _onInput() {\n this._onChangeFn?.(this.value);\n // handles arrowing and updating the value when\n // a step is defined.\n if (this._slider.step || !this._isActive) {\n this._updateThumbUIByValue({\n withAnimation: true\n });\n }\n this._slider._onValueChange(this);\n }\n _onNgControlValueChange() {\n // only used to handle when the value change\n // originates outside of the slider.\n if (!this._isActive || !this._isFocused) {\n this._slider._onValueChange(this);\n this._updateThumbUIByValue();\n }\n this._slider.disabled = this._formControl.disabled;\n }\n _onPointerDown(event) {\n if (this.disabled || event.button !== 0) {\n return;\n }\n // On IOS, dragging only works if the pointer down happens on the\n // slider thumb and the slider does not receive focus from pointer events.\n if (this._platform.IOS) {\n const isCursorOnSliderThumb = this._slider._isCursorOnSliderThumb(event, this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());\n this._isActive = isCursorOnSliderThumb;\n this._updateWidthActive();\n this._slider._updateDimensions();\n return;\n }\n this._isActive = true;\n this._setIsFocused(true);\n this._updateWidthActive();\n this._slider._updateDimensions();\n // Does nothing if a step is defined because we\n // want the value to snap to the values on input.\n if (!this._slider.step) {\n this._updateThumbUIByPointerEvent(event, {\n withAnimation: true\n });\n }\n if (!this.disabled) {\n this._handleValueCorrection(event);\n this.dragStart.emit({\n source: this,\n parent: this._slider,\n value: this.value\n });\n }\n }\n /**\n * Corrects the value of the slider on pointer up/down.\n *\n * Called on pointer down and up because the value is set based\n * on the inactive width instead of the active width.\n */\n _handleValueCorrection(event) {\n // Don't update the UI with the current value! The value on pointerdown\n // and pointerup is calculated in the split second before the input(s)\n // resize. See _updateWidthInactive() and _updateWidthActive() for more\n // details.\n this._skipUIUpdate = true;\n // Note that this function gets triggered before the actual value of the\n // slider is updated. This means if we were to set the value here, it\n // would immediately be overwritten. Using setTimeout ensures the setting\n // of the value happens after the value has been updated by the\n // pointerdown event.\n setTimeout(() => {\n this._skipUIUpdate = false;\n this._fixValue(event);\n }, 0);\n }\n /** Corrects the value of the slider based on the pointer event's position. */\n _fixValue(event) {\n const xPos = event.clientX - this._slider._cachedLeft;\n const width = this._slider._cachedWidth;\n const step = this._slider.step === 0 ? 1 : this._slider.step;\n const numSteps = Math.floor((this._slider.max - this._slider.min) / step);\n const percentage = this._slider._isRtl ? 1 - xPos / width : xPos / width;\n // To ensure the percentage is rounded to the necessary number of decimals.\n const fixedPercentage = Math.round(percentage * numSteps) / numSteps;\n const impreciseValue = fixedPercentage * (this._slider.max - this._slider.min) + this._slider.min;\n const value = Math.round(impreciseValue / step) * step;\n const prevValue = this.value;\n if (value === prevValue) {\n // Because we prevented UI updates, if it turns out that the race\n // condition didn't happen and the value is already correct, we\n // have to apply the ui updates now.\n this._slider._onValueChange(this);\n this._slider.step > 0 ? this._updateThumbUIByValue() : this._updateThumbUIByPointerEvent(event, {\n withAnimation: this._slider._hasAnimation\n });\n return;\n }\n this.value = value;\n this.valueChange.emit(this.value);\n this._onChangeFn?.(this.value);\n this._slider._onValueChange(this);\n this._slider.step > 0 ? this._updateThumbUIByValue() : this._updateThumbUIByPointerEvent(event, {\n withAnimation: this._slider._hasAnimation\n });\n }\n _onPointerMove(event) {\n // Again, does nothing if a step is defined because\n // we want the value to snap to the values on input.\n if (!this._slider.step && this._isActive) {\n this._updateThumbUIByPointerEvent(event);\n }\n }\n _onPointerUp() {\n if (this._isActive) {\n this._isActive = false;\n if (this._platform.SAFARI) {\n this._setIsFocused(false);\n }\n this.dragEnd.emit({\n source: this,\n parent: this._slider,\n value: this.value\n });\n // This setTimeout is to prevent the pointerup from triggering a value\n // change on the input based on the inactive width. It's not clear why\n // but for some reason on IOS this race condition is even more common so\n // the timeout needs to be increased.\n setTimeout(() => this._updateWidthInactive(), this._platform.IOS ? 10 : 0);\n }\n }\n _clamp(v) {\n const min = this._tickMarkOffset;\n const max = this._slider._cachedWidth - this._tickMarkOffset;\n return Math.max(Math.min(v, max), min);\n }\n _calcTranslateXByValue() {\n if (this._slider._isRtl) {\n return (1 - this.percentage) * (this._slider._cachedWidth - this._tickMarkOffset * 2) + this._tickMarkOffset;\n }\n return this.percentage * (this._slider._cachedWidth - this._tickMarkOffset * 2) + this._tickMarkOffset;\n }\n _calcTranslateXByPointerEvent(event) {\n return event.clientX - this._slider._cachedLeft;\n }\n /**\n * Used to set the slider width to the correct\n * dimensions while the user is dragging.\n */\n _updateWidthActive() {}\n /**\n * Sets the slider input to disproportionate dimensions to allow for touch\n * events to be captured on touch devices.\n */\n _updateWidthInactive() {\n this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n this._hostElement.style.width = `calc(100% + ${this._slider._inputPadding - this._tickMarkOffset * 2}px)`;\n this._hostElement.style.left = `-${this._slider._rippleRadius - this._tickMarkOffset}px`;\n }\n _updateThumbUIByValue(options) {\n this.translateX = this._clamp(this._calcTranslateXByValue());\n this._updateThumbUI(options);\n }\n _updateThumbUIByPointerEvent(event, options) {\n this.translateX = this._clamp(this._calcTranslateXByPointerEvent(event));\n this._updateThumbUI(options);\n }\n _updateThumbUI(options) {\n this._slider._setTransition(!!options?.withAnimation);\n this._slider._onTranslateXChange(this);\n }\n /**\n * Sets the input's value.\n * @param value The new value of the input\n * @docs-private\n */\n writeValue(value) {\n if (this._isControlInitialized || value !== null) {\n this.value = value;\n }\n }\n /**\n * Registers a callback to be invoked when the input's value changes from user input.\n * @param fn The callback to register\n * @docs-private\n */\n registerOnChange(fn) {\n this._onChangeFn = fn;\n this._isControlInitialized = true;\n }\n /**\n * Registers a callback to be invoked when the input is blurred by the user.\n * @param fn The callback to register\n * @docs-private\n */\n registerOnTouched(fn) {\n this._onTouchedFn = fn;\n }\n /**\n * Sets the disabled state of the slider.\n * @param isDisabled The new disabled state\n * @docs-private\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n focus() {\n this._hostElement.focus();\n }\n blur() {\n this._hostElement.blur();\n }\n static {\n this.ɵfac = function MatSliderThumb_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSliderThumb)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_SLIDER));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSliderThumb,\n selectors: [[\"input\", \"matSliderThumb\", \"\"]],\n hostAttrs: [\"type\", \"range\", 1, \"mdc-slider__input\"],\n hostVars: 1,\n hostBindings: function MatSliderThumb_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function MatSliderThumb_change_HostBindingHandler() {\n return ctx._onChange();\n })(\"input\", function MatSliderThumb_input_HostBindingHandler() {\n return ctx._onInput();\n })(\"blur\", function MatSliderThumb_blur_HostBindingHandler() {\n return ctx._onBlur();\n })(\"focus\", function MatSliderThumb_focus_HostBindingHandler() {\n return ctx._onFocus();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuetext\", ctx._valuetext());\n }\n },\n inputs: {\n value: [2, \"value\", \"value\", numberAttribute]\n },\n outputs: {\n valueChange: \"valueChange\",\n dragStart: \"dragStart\",\n dragEnd: \"dragEnd\"\n },\n exportAs: [\"matSliderThumb\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SLIDER_THUMB_VALUE_ACCESSOR, {\n provide: MAT_SLIDER_THUMB,\n useExisting: MatSliderThumb\n }]), i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return MatSliderThumb;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSliderRangeThumb = /*#__PURE__*/(() => {\n class MatSliderRangeThumb extends MatSliderThumb {\n /** @docs-private */\n getSibling() {\n if (!this._sibling) {\n this._sibling = this._slider._getInput(this._isEndThumb ? _MatThumb.START : _MatThumb.END);\n }\n return this._sibling;\n }\n /**\n * Returns the minimum translateX position allowed for this slider input's visual thumb.\n * @docs-private\n */\n getMinPos() {\n const sibling = this.getSibling();\n if (!this._isLeftThumb && sibling) {\n return sibling.translateX;\n }\n return this._tickMarkOffset;\n }\n /**\n * Returns the maximum translateX position allowed for this slider input's visual thumb.\n * @docs-private\n */\n getMaxPos() {\n const sibling = this.getSibling();\n if (this._isLeftThumb && sibling) {\n return sibling.translateX;\n }\n return this._slider._cachedWidth - this._tickMarkOffset;\n }\n _setIsLeftThumb() {\n this._isLeftThumb = this._isEndThumb && this._slider._isRtl || !this._isEndThumb && !this._slider._isRtl;\n }\n constructor(_ngZone, _slider, _elementRef, _cdr) {\n super(_ngZone, _elementRef, _cdr, _slider);\n this._cdr = _cdr;\n this._isEndThumb = this._hostElement.hasAttribute('matSliderEndThumb');\n this._setIsLeftThumb();\n this.thumbPosition = this._isEndThumb ? _MatThumb.END : _MatThumb.START;\n }\n _getDefaultValue() {\n return this._isEndThumb && this._slider._isRange ? this.max : this.min;\n }\n _onInput() {\n super._onInput();\n this._updateSibling();\n if (!this._isActive) {\n this._updateWidthInactive();\n }\n }\n _onNgControlValueChange() {\n super._onNgControlValueChange();\n this.getSibling()?._updateMinMax();\n }\n _onPointerDown(event) {\n if (this.disabled || event.button !== 0) {\n return;\n }\n if (this._sibling) {\n this._sibling._updateWidthActive();\n this._sibling._hostElement.classList.add('mat-mdc-slider-input-no-pointer-events');\n }\n super._onPointerDown(event);\n }\n _onPointerUp() {\n super._onPointerUp();\n if (this._sibling) {\n setTimeout(() => {\n this._sibling._updateWidthInactive();\n this._sibling._hostElement.classList.remove('mat-mdc-slider-input-no-pointer-events');\n });\n }\n }\n _onPointerMove(event) {\n super._onPointerMove(event);\n if (!this._slider.step && this._isActive) {\n this._updateSibling();\n }\n }\n _fixValue(event) {\n super._fixValue(event);\n this._sibling?._updateMinMax();\n }\n _clamp(v) {\n return Math.max(Math.min(v, this.getMaxPos()), this.getMinPos());\n }\n _updateMinMax() {\n const sibling = this.getSibling();\n if (!sibling) {\n return;\n }\n if (this._isEndThumb) {\n this.min = Math.max(this._slider.min, sibling.value);\n this.max = this._slider.max;\n } else {\n this.min = this._slider.min;\n this.max = Math.min(this._slider.max, sibling.value);\n }\n }\n _updateWidthActive() {\n const minWidth = this._slider._rippleRadius * 2 - this._slider._inputPadding * 2;\n const maxWidth = this._slider._cachedWidth + this._slider._inputPadding - minWidth - this._tickMarkOffset * 2;\n const percentage = this._slider.min < this._slider.max ? (this.max - this.min) / (this._slider.max - this._slider.min) : 1;\n const width = maxWidth * percentage + minWidth;\n this._hostElement.style.width = `${width}px`;\n this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n }\n _updateWidthInactive() {\n const sibling = this.getSibling();\n if (!sibling) {\n return;\n }\n const maxWidth = this._slider._cachedWidth - this._tickMarkOffset * 2;\n const midValue = this._isEndThumb ? this.value - (this.value - sibling.value) / 2 : this.value + (sibling.value - this.value) / 2;\n const _percentage = this._isEndThumb ? (this.max - midValue) / (this._slider.max - this._slider.min) : (midValue - this.min) / (this._slider.max - this._slider.min);\n const percentage = this._slider.min < this._slider.max ? _percentage : 1;\n // Extend the native input width by the radius of the ripple\n let ripplePadding = this._slider._rippleRadius;\n // If one of the inputs is maximally sized (the value of both thumbs is\n // equal to the min or max), make that input take up all of the width and\n // make the other unselectable.\n if (percentage === 1) {\n ripplePadding = 48;\n } else if (percentage === 0) {\n ripplePadding = 0;\n }\n const width = maxWidth * percentage + ripplePadding;\n this._hostElement.style.width = `${width}px`;\n this._hostElement.style.padding = '0px';\n if (this._isLeftThumb) {\n this._hostElement.style.left = `-${this._slider._rippleRadius - this._tickMarkOffset}px`;\n this._hostElement.style.right = 'auto';\n } else {\n this._hostElement.style.left = 'auto';\n this._hostElement.style.right = `-${this._slider._rippleRadius - this._tickMarkOffset}px`;\n }\n }\n _updateStaticStyles() {\n this._hostElement.classList.toggle('mat-slider__right-input', !this._isLeftThumb);\n }\n _updateSibling() {\n const sibling = this.getSibling();\n if (!sibling) {\n return;\n }\n sibling._updateMinMax();\n if (this._isActive) {\n sibling._updateWidthActive();\n } else {\n sibling._updateWidthInactive();\n }\n }\n /**\n * Sets the input's value.\n * @param value The new value of the input\n * @docs-private\n */\n writeValue(value) {\n if (this._isControlInitialized || value !== null) {\n this.value = value;\n this._updateWidthInactive();\n this._updateSibling();\n }\n }\n _setValue(value) {\n super._setValue(value);\n this._updateWidthInactive();\n this._updateSibling();\n }\n static {\n this.ɵfac = function MatSliderRangeThumb_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSliderRangeThumb)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_SLIDER), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSliderRangeThumb,\n selectors: [[\"input\", \"matSliderStartThumb\", \"\"], [\"input\", \"matSliderEndThumb\", \"\"]],\n exportAs: [\"matSliderRangeThumb\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR, {\n provide: MAT_SLIDER_RANGE_THUMB,\n useExisting: MatSliderRangeThumb\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatSliderRangeThumb;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSliderModule = /*#__PURE__*/(() => {\n class MatSliderModule {\n static {\n this.ɵfac = function MatSliderModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSliderModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSliderModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatRippleModule]\n });\n }\n }\n return MatSliderModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatSlider, MatSliderChange, MatSliderModule, MatSliderRangeThumb, MatSliderThumb, MatSliderVisualThumb };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, booleanAttribute, Directive, Input, EventEmitter, Optional, Inject, SkipSelf, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/collections';\nimport { Subject, Subscription } from 'rxjs';\n\n/** Used to generate unique ID for each accordion. */\nlet nextId$1 = 0;\n/**\n * Injection token that can be used to reference instances of `CdkAccordion`. It serves\n * as alternative token to the actual `CdkAccordion` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_ACCORDION = /*#__PURE__*/new InjectionToken('CdkAccordion');\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\nlet CdkAccordion = /*#__PURE__*/(() => {\n class CdkAccordion {\n constructor() {\n /** Emits when the state of the accordion changes */\n this._stateChanges = new Subject();\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n this._openCloseAllActions = new Subject();\n /** A readonly id value to use for unique selection coordination. */\n this.id = `cdk-accordion-${nextId$1++}`;\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n this.multi = false;\n }\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll() {\n if (this.multi) {\n this._openCloseAllActions.next(true);\n }\n }\n /** Closes all enabled accordion items. */\n closeAll() {\n this._openCloseAllActions.next(false);\n }\n ngOnChanges(changes) {\n this._stateChanges.next(changes);\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n this._openCloseAllActions.complete();\n }\n static {\n this.ɵfac = function CdkAccordion_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordion)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAccordion,\n selectors: [[\"cdk-accordion\"], [\"\", \"cdkAccordion\", \"\"]],\n inputs: {\n multi: [2, \"multi\", \"multi\", booleanAttribute]\n },\n exportAs: [\"cdkAccordion\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CDK_ACCORDION,\n useExisting: CdkAccordion\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return CdkAccordion;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Used to generate unique ID for each accordion item. */\nlet nextId = 0;\n/**\n * A basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\nlet CdkAccordionItem = /*#__PURE__*/(() => {\n class CdkAccordionItem {\n /** Whether the AccordionItem is expanded. */\n get expanded() {\n return this._expanded;\n }\n set expanded(expanded) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n } else {\n this.closed.emit();\n }\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n constructor(accordion, _changeDetectorRef, _expansionDispatcher) {\n this.accordion = accordion;\n this._changeDetectorRef = _changeDetectorRef;\n this._expansionDispatcher = _expansionDispatcher;\n /** Subscription to openAll/closeAll events. */\n this._openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n this.closed = new EventEmitter();\n /** Event emitted every time the AccordionItem is opened. */\n this.opened = new EventEmitter();\n /** Event emitted when the AccordionItem is destroyed. */\n this.destroyed = new EventEmitter();\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n this.expandedChange = new EventEmitter();\n /** The unique AccordionItem id. */\n this.id = `cdk-accordion-child-${nextId++}`;\n this._expanded = false;\n /** Whether the AccordionItem is disabled. */\n this.disabled = false;\n /** Unregister function for _expansionDispatcher. */\n this._removeUniqueSelectionListener = () => {};\n this._removeUniqueSelectionListener = _expansionDispatcher.listen((id, accordionId) => {\n if (this.accordion && !this.accordion.multi && this.accordion.id === accordionId && this.id !== id) {\n this.expanded = false;\n }\n });\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n /** Toggles the expanded state of the accordion item. */\n toggle() {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n /** Sets the expanded state of the accordion item to false. */\n close() {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n /** Sets the expanded state of the accordion item to true. */\n open() {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n _subscribeToOpenCloseAllActions() {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n static {\n this.ɵfac = function CdkAccordionItem_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordionItem)(i0.ɵɵdirectiveInject(CDK_ACCORDION, 12), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.UniqueSelectionDispatcher));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAccordionItem,\n selectors: [[\"cdk-accordion-item\"], [\"\", \"cdkAccordionItem\", \"\"]],\n inputs: {\n expanded: [2, \"expanded\", \"expanded\", booleanAttribute],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute]\n },\n outputs: {\n closed: \"closed\",\n opened: \"opened\",\n destroyed: \"destroyed\",\n expandedChange: \"expandedChange\"\n },\n exportAs: [\"cdkAccordionItem\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n {\n provide: CDK_ACCORDION,\n useValue: undefined\n }]), i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return CdkAccordionItem;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CdkAccordionModule = /*#__PURE__*/(() => {\n class CdkAccordionModule {\n static {\n this.ɵfac = function CdkAccordionModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordionModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkAccordionModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return CdkAccordionModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_ACCORDION, CdkAccordion, CdkAccordionItem, CdkAccordionModule };\n","import { CdkAccordionItem, CdkAccordion, CdkAccordionModule } from '@angular/cdk/accordion';\nimport { TemplatePortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Inject, Optional, EventEmitter, ANIMATION_MODULE_TYPE, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, SkipSelf, Input, Output, ContentChild, ViewChild, numberAttribute, Host, Attribute, QueryList, ContentChildren, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/a11y';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { startWith, filter, take } from 'rxjs/operators';\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\nimport { Subject, Subscription, EMPTY, merge } from 'rxjs';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i1 from '@angular/cdk/collections';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nconst _c0 = [\"body\"];\nconst _c1 = [[[\"mat-expansion-panel-header\"]], \"*\", [[\"mat-action-row\"]]];\nconst _c2 = [\"mat-expansion-panel-header\", \"*\", \"mat-action-row\"];\nfunction MatExpansionPanel_ng_template_5_Template(rf, ctx) {}\nconst _c3 = [[[\"mat-panel-title\"]], [[\"mat-panel-description\"]], \"*\"];\nconst _c4 = [\"mat-panel-title\", \"mat-panel-description\", \"*\"];\nfunction MatExpansionPanelHeader_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 2);\n i0.ɵɵelement(2, \"path\", 3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@indicatorRotate\", ctx_r0._getExpandedState());\n }\n}\nconst MAT_ACCORDION = /*#__PURE__*/new InjectionToken('MAT_ACCORDION');\n\n/** Time and timing curve for expansion panel animations. */\n// Note: Keep this in sync with the Sass variable for the panel header animation.\nconst EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n/**\n * Animations used by the Material expansion panel.\n *\n * A bug in angular animation's `state` when ViewContainers are moved using ViewContainerRef.move()\n * causes the animation state of moved components to become `void` upon exit, and not update again\n * upon reentry into the DOM. This can lead a to situation for the expansion panel where the state\n * of the panel is `expanded` or `collapsed` but the animation state is `void`.\n *\n * To correctly handle animating to the next state, we animate between `void` and `collapsed` which\n * are defined to have the same styles. Since angular animates from the current styles to the\n * destination state's style definition, in situations where we are moving from `void`'s styles to\n * `collapsed` this acts a noop since no style values change.\n *\n * In the case where angular's animation state is out of sync with the expansion panel's state, the\n * expansion panel being `expanded` and angular animations being `void`, the animation from the\n * `expanded`'s effective styles (though in a `void` animation state) to the collapsed state will\n * occur as expected.\n *\n * Angular Bug: https://github.com/angular/angular/issues/18847\n *\n * @docs-private\n */\nconst matExpansionAnimations = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: /*#__PURE__*/trigger('indicatorRotate', [/*#__PURE__*/state('collapsed, void', /*#__PURE__*/style({\n transform: 'rotate(0deg)'\n })), /*#__PURE__*/state('expanded', /*#__PURE__*/style({\n transform: 'rotate(180deg)'\n })), /*#__PURE__*/transition('expanded <=> collapsed, void => collapsed', /*#__PURE__*/animate(EXPANSION_PANEL_ANIMATION_TIMING))]),\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: /*#__PURE__*/trigger('bodyExpansion', [/*#__PURE__*/state('collapsed, void', /*#__PURE__*/style({\n height: '0px',\n visibility: 'hidden'\n })),\n /*#__PURE__*/\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\n // that have a `visibility` of their own (see #27436).\n state('expanded', /*#__PURE__*/style({\n height: '*',\n visibility: ''\n })), /*#__PURE__*/transition('expanded <=> collapsed, void => collapsed', /*#__PURE__*/animate(EXPANSION_PANEL_ANIMATION_TIMING))])\n};\n\n/**\n * Token used to provide a `MatExpansionPanel` to `MatExpansionPanelContent`.\n * Used to avoid circular imports between `MatExpansionPanel` and `MatExpansionPanelContent`.\n */\nconst MAT_EXPANSION_PANEL = /*#__PURE__*/new InjectionToken('MAT_EXPANSION_PANEL');\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\nlet MatExpansionPanelContent = /*#__PURE__*/(() => {\n class MatExpansionPanelContent {\n constructor(_template, _expansionPanel) {\n this._template = _template;\n this._expansionPanel = _expansionPanel;\n }\n static {\n this.ɵfac = function MatExpansionPanelContent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelContent)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(MAT_EXPANSION_PANEL, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelContent,\n selectors: [[\"ng-template\", \"matExpansionPanelContent\", \"\"]],\n standalone: true\n });\n }\n }\n return MatExpansionPanelContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Counter for generating unique element ids. */\nlet uniqueId = 0;\n/**\n * Injection token that can be used to configure the default\n * options for the expansion panel component.\n */\nconst MAT_EXPANSION_PANEL_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\n/**\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\nlet MatExpansionPanel = /*#__PURE__*/(() => {\n class MatExpansionPanel extends CdkAccordionItem {\n /** Whether the toggle indicator should be hidden. */\n get hideToggle() {\n return this._hideToggle || this.accordion && this.accordion.hideToggle;\n }\n set hideToggle(value) {\n this._hideToggle = value;\n }\n /** The position of the expansion indicator. */\n get togglePosition() {\n return this._togglePosition || this.accordion && this.accordion.togglePosition;\n }\n set togglePosition(value) {\n this._togglePosition = value;\n }\n constructor(accordion, _changeDetectorRef, _uniqueSelectionDispatcher, _viewContainerRef, _document, _animationMode, defaultOptions) {\n super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);\n this._viewContainerRef = _viewContainerRef;\n this._animationMode = _animationMode;\n this._hideToggle = false;\n /** An event emitted after the body's expansion animation happens. */\n this.afterExpand = new EventEmitter();\n /** An event emitted after the body's collapse animation happens. */\n this.afterCollapse = new EventEmitter();\n /** Stream that emits for changes in `@Input` properties. */\n this._inputChanges = new Subject();\n /** ID for the associated header element. Used for a11y labelling. */\n this._headerId = `mat-expansion-panel-header-${uniqueId++}`;\n this.accordion = accordion;\n this._document = _document;\n this._animationsDisabled = _animationMode === 'NoopAnimations';\n if (defaultOptions) {\n this.hideToggle = defaultOptions.hideToggle;\n }\n }\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing() {\n if (this.accordion) {\n return this.expanded && this.accordion.displayMode === 'default';\n }\n return false;\n }\n /** Gets the expanded state string. */\n _getExpandedState() {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n /** Toggles the expanded state of the expansion panel. */\n toggle() {\n this.expanded = !this.expanded;\n }\n /** Sets the expanded state of the expansion panel to false. */\n close() {\n this.expanded = false;\n }\n /** Sets the expanded state of the expansion panel to true. */\n open() {\n this.expanded = true;\n }\n ngAfterContentInit() {\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\n // Render the content as soon as the panel becomes open.\n this.opened.pipe(startWith(null), filter(() => this.expanded && !this._portal), take(1)).subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n }\n ngOnChanges(changes) {\n this._inputChanges.next(changes);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._inputChanges.complete();\n }\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n _containsFocus() {\n if (this._body) {\n const focusedElement = this._document.activeElement;\n const bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n return false;\n }\n /** Called when the expansion animation has started. */\n _animationStarted(event) {\n if (!isInitialAnimation(event) && !this._animationsDisabled && this._body) {\n // Prevent the user from tabbing into the content while it's animating.\n // TODO(crisbeto): maybe use `inert` to prevent focus from entering while closed as well\n // instead of `visibility`? Will allow us to clean up some code but needs more testing.\n this._body?.nativeElement.setAttribute('inert', '');\n }\n }\n /** Called when the expansion animation has finished. */\n _animationDone(event) {\n if (!isInitialAnimation(event)) {\n if (event.toState === 'expanded') {\n this.afterExpand.emit();\n } else if (event.toState === 'collapsed') {\n this.afterCollapse.emit();\n }\n // Re-enable tabbing once the animation is finished.\n if (!this._animationsDisabled && this._body) {\n this._body.nativeElement.removeAttribute('inert');\n }\n }\n }\n static {\n this.ɵfac = function MatExpansionPanel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanel)(i0.ɵɵdirectiveInject(MAT_ACCORDION, 12), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.UniqueSelectionDispatcher), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatExpansionPanel,\n selectors: [[\"mat-expansion-panel\"]],\n contentQueries: function MatExpansionPanel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatExpansionPanelContent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lazyContent = _t.first);\n }\n },\n viewQuery: function MatExpansionPanel_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._body = _t.first);\n }\n },\n hostAttrs: [1, \"mat-expansion-panel\"],\n hostVars: 6,\n hostBindings: function MatExpansionPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-expanded\", ctx.expanded)(\"_mat-animation-noopable\", ctx._animationsDisabled)(\"mat-expansion-panel-spacing\", ctx._hasSpacing());\n }\n },\n inputs: {\n hideToggle: [2, \"hideToggle\", \"hideToggle\", booleanAttribute],\n togglePosition: \"togglePosition\"\n },\n outputs: {\n afterExpand: \"afterExpand\",\n afterCollapse: \"afterCollapse\"\n },\n exportAs: [\"matExpansionPanel\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {\n provide: MAT_ACCORDION,\n useValue: undefined\n }, {\n provide: MAT_EXPANSION_PANEL,\n useExisting: MatExpansionPanel\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[\"body\", \"\"], [\"role\", \"region\", 1, \"mat-expansion-panel-content\", 3, \"id\"], [1, \"mat-expansion-panel-body\"], [3, \"cdkPortalOutlet\"]],\n template: function MatExpansionPanel_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 1, 0);\n i0.ɵɵlistener(\"@bodyExpansion.start\", function MatExpansionPanel_Template_div_animation_bodyExpansion_start_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._animationStarted($event));\n })(\"@bodyExpansion.done\", function MatExpansionPanel_Template_div_animation_bodyExpansion_done_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._animationDone($event));\n });\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵprojection(4, 1);\n i0.ɵɵtemplate(5, MatExpansionPanel_ng_template_5_Template, 0, 0, \"ng-template\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(6, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@bodyExpansion\", ctx._getExpandedState())(\"id\", ctx.id);\n i0.ɵɵattribute(\"aria-labelledby\", ctx._headerId);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"cdkPortalOutlet\", ctx._portal);\n }\n },\n dependencies: [CdkPortalOutlet],\n styles: [\".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color, var(--mat-app-surface));color:var(--mat-expansion-container-text-color, var(--mat-app-on-surface));border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font, var(--mat-app-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-app-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-app-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-app-body-large-tracking))}.mat-expansion-panel-content[style*=\\\"visibility: hidden\\\"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-app-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}\"],\n encapsulation: 2,\n data: {\n animation: [matExpansionAnimations.bodyExpansion]\n },\n changeDetection: 0\n });\n }\n }\n return MatExpansionPanel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Checks whether an animation is the initial setup animation. */\nfunction isInitialAnimation(event) {\n return event.fromState === 'void';\n}\n/**\n * Actions of a `<mat-expansion-panel>`.\n */\nlet MatExpansionPanelActionRow = /*#__PURE__*/(() => {\n class MatExpansionPanelActionRow {\n static {\n this.ɵfac = function MatExpansionPanelActionRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelActionRow)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelActionRow,\n selectors: [[\"mat-action-row\"]],\n hostAttrs: [1, \"mat-action-row\"],\n standalone: true\n });\n }\n }\n return MatExpansionPanelActionRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Header element of a `<mat-expansion-panel>`.\n */\nlet MatExpansionPanelHeader = /*#__PURE__*/(() => {\n class MatExpansionPanelHeader {\n constructor(panel, _element, _focusMonitor, _changeDetectorRef, defaultOptions, _animationMode, tabIndex) {\n this.panel = panel;\n this._element = _element;\n this._focusMonitor = _focusMonitor;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n this._parentChangeSubscription = Subscription.EMPTY;\n /** Tab index of the header. */\n this.tabIndex = 0;\n const accordionHideToggleChange = panel.accordion ? panel.accordion._stateChanges.pipe(filter(changes => !!(changes['hideToggle'] || changes['togglePosition']))) : EMPTY;\n this.tabIndex = parseInt(tabIndex || '') || 0;\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(panel.opened, panel.closed, accordionHideToggleChange, panel._inputChanges.pipe(filter(changes => {\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\n }))).subscribe(() => this._changeDetectorRef.markForCheck());\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed.pipe(filter(() => panel._containsFocus())).subscribe(() => _focusMonitor.focusVia(_element, 'program'));\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get disabled() {\n return this.panel.disabled;\n }\n /** Toggles the expanded state of the panel. */\n _toggle() {\n if (!this.disabled) {\n this.panel.toggle();\n }\n }\n /** Gets whether the panel is expanded. */\n _isExpanded() {\n return this.panel.expanded;\n }\n /** Gets the expanded state string of the panel. */\n _getExpandedState() {\n return this.panel._getExpandedState();\n }\n /** Gets the panel id. */\n _getPanelId() {\n return this.panel.id;\n }\n /** Gets the toggle position for the header. */\n _getTogglePosition() {\n return this.panel.togglePosition;\n }\n /** Gets whether the expand indicator should be shown. */\n _showToggle() {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n /**\n * Gets the current height of the header. Null if no custom height has been\n * specified, and if the default height from the stylesheet should be used.\n */\n _getHeaderHeight() {\n const isExpanded = this._isExpanded();\n if (isExpanded && this.expandedHeight) {\n return this.expandedHeight;\n } else if (!isExpanded && this.collapsedHeight) {\n return this.collapsedHeight;\n }\n return null;\n }\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this._toggle();\n }\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n return;\n }\n }\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n focus(origin, options) {\n if (origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._element).subscribe(origin => {\n if (origin && this.panel.accordion) {\n this.panel.accordion._handleHeaderFocus(this);\n }\n });\n }\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n }\n static {\n this.ɵfac = function MatExpansionPanelHeader_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelHeader)(i0.ɵɵdirectiveInject(MatExpansionPanel, 1), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.FocusMonitor), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵinjectAttribute('tabindex'));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatExpansionPanelHeader,\n selectors: [[\"mat-expansion-panel-header\"]],\n hostAttrs: [\"role\", \"button\", 1, \"mat-expansion-panel-header\", \"mat-focus-indicator\"],\n hostVars: 15,\n hostBindings: function MatExpansionPanelHeader_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatExpansionPanelHeader_click_HostBindingHandler() {\n return ctx._toggle();\n })(\"keydown\", function MatExpansionPanelHeader_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.panel._headerId)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-controls\", ctx._getPanelId())(\"aria-expanded\", ctx._isExpanded())(\"aria-disabled\", ctx.panel.disabled);\n i0.ɵɵstyleProp(\"height\", ctx._getHeaderHeight());\n i0.ɵɵclassProp(\"mat-expanded\", ctx._isExpanded())(\"mat-expansion-toggle-indicator-after\", ctx._getTogglePosition() === \"after\")(\"mat-expansion-toggle-indicator-before\", ctx._getTogglePosition() === \"before\")(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n },\n inputs: {\n expandedHeight: \"expandedHeight\",\n collapsedHeight: \"collapsedHeight\",\n tabIndex: [2, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)]\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c4,\n decls: 5,\n vars: 3,\n consts: [[1, \"mat-content\"], [1, \"mat-expansion-indicator\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 -960 960 960\", \"aria-hidden\", \"true\", \"focusable\", \"false\"], [\"d\", \"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"]],\n template: function MatExpansionPanelHeader_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c3);\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵprojection(3, 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, MatExpansionPanelHeader_Conditional_4_Template, 3, 1, \"span\", 1);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-content-hide-toggle\", !ctx._showToggle());\n i0.ɵɵadvance(4);\n i0.ɵɵconditional(ctx._showToggle() ? 4 : -1);\n }\n },\n styles: [\".mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font, var(--mat-app-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-app-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-app-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-app-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-app-title-medium-tracking))}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-app-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-app-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-app-on-surface-variant))}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:\\\"\\\";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-app-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, inline-block)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-app-on-surface-variant));display:var(--mat-expansion-header-indicator-display, none)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}\"],\n encapsulation: 2,\n data: {\n animation: [matExpansionAnimations.indicatorRotate]\n },\n changeDetection: 0\n });\n }\n }\n return MatExpansionPanelHeader;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Description element of a `<mat-expansion-panel-header>`.\n */\nlet MatExpansionPanelDescription = /*#__PURE__*/(() => {\n class MatExpansionPanelDescription {\n static {\n this.ɵfac = function MatExpansionPanelDescription_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelDescription)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelDescription,\n selectors: [[\"mat-panel-description\"]],\n hostAttrs: [1, \"mat-expansion-panel-header-description\"],\n standalone: true\n });\n }\n }\n return MatExpansionPanelDescription;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Title element of a `<mat-expansion-panel-header>`.\n */\nlet MatExpansionPanelTitle = /*#__PURE__*/(() => {\n class MatExpansionPanelTitle {\n static {\n this.ɵfac = function MatExpansionPanelTitle_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelTitle)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelTitle,\n selectors: [[\"mat-panel-title\"]],\n hostAttrs: [1, \"mat-expansion-panel-header-title\"],\n standalone: true\n });\n }\n }\n return MatExpansionPanelTitle;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Directive for a Material Design Accordion.\n */\nlet MatAccordion = /*#__PURE__*/(() => {\n class MatAccordion extends CdkAccordion {\n constructor() {\n super(...arguments);\n /** Headers belonging to this accordion. */\n this._ownHeaders = new QueryList();\n /** Whether the expansion indicator should be hidden. */\n this.hideToggle = false;\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n this.displayMode = 'default';\n /** The position of the expansion indicator. */\n this.togglePosition = 'after';\n }\n ngAfterContentInit() {\n this._headers.changes.pipe(startWith(this._headers)).subscribe(headers => {\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\n this._ownHeaders.notifyOnChanges();\n });\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\n }\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event) {\n this._keyManager.onKeydown(event);\n }\n _handleHeaderFocus(header) {\n this._keyManager.updateActiveItem(header);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._keyManager?.destroy();\n this._ownHeaders.destroy();\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatAccordion_BaseFactory;\n return function MatAccordion_Factory(__ngFactoryType__) {\n return (ɵMatAccordion_BaseFactory || (ɵMatAccordion_BaseFactory = i0.ɵɵgetInheritedFactory(MatAccordion)))(__ngFactoryType__ || MatAccordion);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAccordion,\n selectors: [[\"mat-accordion\"]],\n contentQueries: function MatAccordion_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatExpansionPanelHeader, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headers = _t);\n }\n },\n hostAttrs: [1, \"mat-accordion\"],\n hostVars: 2,\n hostBindings: function MatAccordion_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-accordion-multi\", ctx.multi);\n }\n },\n inputs: {\n hideToggle: [2, \"hideToggle\", \"hideToggle\", booleanAttribute],\n displayMode: \"displayMode\",\n togglePosition: \"togglePosition\"\n },\n exportAs: [\"matAccordion\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ACCORDION,\n useExisting: MatAccordion\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatAccordion;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatExpansionModule = /*#__PURE__*/(() => {\n class MatExpansionModule {\n static {\n this.ɵfac = function MatExpansionModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatExpansionModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CdkAccordionModule, PortalModule]\n });\n }\n }\n return MatExpansionModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { EXPANSION_PANEL_ANIMATION_TIMING, MAT_ACCORDION, MAT_EXPANSION_PANEL, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, MatAccordion, MatExpansionModule, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelContent, MatExpansionPanelDescription, MatExpansionPanelHeader, MatExpansionPanelTitle, matExpansionAnimations };\n","import * as i0 from '@angular/core';\nimport { SecurityContext, Injectable, Optional, Inject, SkipSelf, ErrorHandler, InjectionToken, inject, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, Input, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { DOCUMENT } from '@angular/common';\nimport { of, throwError, forkJoin, Subscription } from 'rxjs';\nimport { tap, map, catchError, finalize, share, take } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpClient } from '@angular/common/http';\nimport * as i2 from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nconst _c0 = [\"*\"];\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (typeof window !== 'undefined') {\n const ttWindow = window;\n if (ttWindow.trustedTypes !== undefined) {\n policy = ttWindow.trustedTypes.createPolicy('angular#components', {\n createHTML: s => s\n });\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n return getPolicy()?.createHTML(html) || html;\n}\n\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * @docs-private\n */\nfunction getMatIconNameNotFoundError(iconName) {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n}\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `<mat-icon>` without including @angular/common/http.\n * @docs-private\n */\nfunction getMatIconNoHttpProviderError() {\n return Error('Could not find HttpClient for use with Angular Material icons. ' + 'Please add provideHttpClient() to your providers.');\n}\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * @param url URL that was attempted to be sanitized.\n * @docs-private\n */\nfunction getMatIconFailedToSanitizeUrlError(url) {\n return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL ` + `via Angular's DomSanitizer. Attempted URL was \"${url}\".`);\n}\n/**\n * Returns an exception to be thrown when a HTML string couldn't be sanitized.\n * @param literal HTML that was attempted to be sanitized.\n * @docs-private\n */\nfunction getMatIconFailedToSanitizeLiteralError(literal) {\n return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by ` + `Angular's DomSanitizer. Attempted literal was \"${literal}\".`);\n}\n/**\n * Configuration for an icon, including the URL and possibly the cached SVG element.\n * @docs-private\n */\nclass SvgIconConfig {\n constructor(url, svgText, options) {\n this.url = url;\n this.svgText = svgText;\n this.options = options;\n }\n}\n/**\n * Service to register and display icons used by the `<mat-icon>` component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\nlet MatIconRegistry = /*#__PURE__*/(() => {\n class MatIconRegistry {\n constructor(_httpClient, _sanitizer, document, _errorHandler) {\n this._httpClient = _httpClient;\n this._sanitizer = _sanitizer;\n this._errorHandler = _errorHandler;\n /**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\n this._svgIconConfigs = new Map();\n /**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\n this._iconSetConfigs = new Map();\n /** Cache for icons loaded by direct URLs. */\n this._cachedIconsByUrl = new Map();\n /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n this._inProgressUrlFetches = new Map();\n /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n this._fontCssClassesByAlias = new Map();\n /** Registered icon resolver functions. */\n this._resolvers = [];\n /**\n * The CSS classes to apply when an `<mat-icon>` component has no icon name, url, or font\n * specified. The default 'material-icons' value assumes that the material icon font has been\n * loaded as described at https://google.github.io/material-design-icons/#icon-font-for-the-web\n */\n this._defaultFontSetClass = ['material-icons', 'mat-ligature-font'];\n this._document = document;\n }\n /**\n * Registers an icon by URL in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIcon(iconName, url, options) {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n /**\n * Registers an icon using an HTML string in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteral(iconName, literal, options) {\n return this.addSvgIconLiteralInNamespace('', iconName, literal, options);\n }\n /**\n * Registers an icon by URL in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIconInNamespace(namespace, iconName, url, options) {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, null, options));\n }\n /**\n * Registers an icon resolver function with the registry. The function will be invoked with the\n * name and namespace of an icon when the registry tries to resolve the URL from which to fetch\n * the icon. The resolver is expected to return a `SafeResourceUrl` that points to the icon,\n * an object with the icon URL and icon options, or `null` if the icon is not supported. Resolvers\n * will be invoked in the order in which they have been registered.\n * @param resolver Resolver function to be registered.\n */\n addSvgIconResolver(resolver) {\n this._resolvers.push(resolver);\n return this;\n }\n /**\n * Registers an icon using an HTML string in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteralInNamespace(namespace, iconName, literal, options) {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n // TODO: add an ngDevMode check\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedLiteral, options));\n }\n /**\n * Registers an icon set by URL in the default namespace.\n * @param url\n */\n addSvgIconSet(url, options) {\n return this.addSvgIconSetInNamespace('', url, options);\n }\n /**\n * Registers an icon set using an HTML string in the default namespace.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteral(literal, options) {\n return this.addSvgIconSetLiteralInNamespace('', literal, options);\n }\n /**\n * Registers an icon set by URL in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param url\n */\n addSvgIconSetInNamespace(namespace, url, options) {\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url, null, options));\n }\n /**\n * Registers an icon set using an HTML string in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteralInNamespace(namespace, literal, options) {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig('', trustedLiteral, options));\n }\n /**\n * Defines an alias for CSS class names to be used for icon fonts. Creating an matIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the `<mat-icon>` element.\n *\n * If the registered font is a ligature font, then don't forget to also include the special\n * class `mat-ligature-font` to allow the usage via attribute. So register like this:\n *\n * ```ts\n * iconRegistry.registerFontClassAlias('f1', 'font1 mat-ligature-font');\n * ```\n *\n * And use like this:\n *\n * ```html\n * <mat-icon fontSet=\"f1\" fontIcon=\"home\"></mat-icon>\n * ```\n *\n * @param alias Alias for the font.\n * @param classNames Class names override to be used instead of the alias.\n */\n registerFontClassAlias(alias, classNames = alias) {\n this._fontCssClassesByAlias.set(alias, classNames);\n return this;\n }\n /**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n */\n classNameForFontAlias(alias) {\n return this._fontCssClassesByAlias.get(alias) || alias;\n }\n /**\n * Sets the CSS classes to be used for icon fonts when an `<mat-icon>` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n setDefaultFontSetClass(...classNames) {\n this._defaultFontSetClass = classNames;\n return this;\n }\n /**\n * Returns the CSS classes to be used for icon fonts when an `<mat-icon>` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n getDefaultFontSetClass() {\n return this._defaultFontSetClass;\n }\n /**\n * Returns an Observable that produces the icon (as an `<svg>` DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n *\n * @param safeUrl URL from which to fetch the SVG icon.\n */\n getSvgIconFromUrl(safeUrl) {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n const cachedIcon = this._cachedIconsByUrl.get(url);\n if (cachedIcon) {\n return of(cloneSvg(cachedIcon));\n }\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, null)).pipe(tap(svg => this._cachedIconsByUrl.set(url, svg)), map(svg => cloneSvg(svg)));\n }\n /**\n * Returns an Observable that produces the icon (as an `<svg>` DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an error.\n *\n * @param name Name of the icon to be retrieved.\n * @param namespace Namespace in which to look for the icon.\n */\n getNamedSvgIcon(name, namespace = '') {\n const key = iconKey(namespace, name);\n let config = this._svgIconConfigs.get(key);\n // Return (copy of) cached icon if possible.\n if (config) {\n return this._getSvgFromConfig(config);\n }\n // Otherwise try to resolve the config from one of the resolver functions.\n config = this._getIconConfigFromResolvers(namespace, name);\n if (config) {\n this._svgIconConfigs.set(key, config);\n return this._getSvgFromConfig(config);\n }\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this._iconSetConfigs.get(namespace);\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n return throwError(getMatIconNameNotFoundError(key));\n }\n ngOnDestroy() {\n this._resolvers = [];\n this._svgIconConfigs.clear();\n this._iconSetConfigs.clear();\n this._cachedIconsByUrl.clear();\n }\n /**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n */\n _getSvgFromConfig(config) {\n if (config.svgText) {\n // We already have the SVG element for this icon, return a copy.\n return of(cloneSvg(this._svgElementFromConfig(config)));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this._loadSvgIconFromConfig(config).pipe(map(svg => cloneSvg(svg)));\n }\n }\n /**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new `<svg>` element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * an error if no icon with the specified name can be found.\n */\n _getSvgFromIconSetConfigs(name, iconSetConfigs) {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return of(namedIcon);\n }\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests = iconSetConfigs.filter(iconSetConfig => !iconSetConfig.svgText).map(iconSetConfig => {\n return this._loadSvgIconSetFromConfig(iconSetConfig).pipe(catchError(err => {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n const errorMessage = `Loading icon set URL: ${url} failed: ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n return of(null);\n }));\n });\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(map(() => {\n const foundIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n // TODO: add an ngDevMode check\n if (!foundIcon) {\n throw getMatIconNameNotFoundError(name);\n }\n return foundIcon;\n }));\n }\n /**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n _extractIconWithNameFromAnySet(iconName, iconSetConfigs) {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n // Parsing the icon set's text into an SVG element can be expensive. We can avoid some of\n // the parsing by doing a quick check using `indexOf` to see if there's any chance for the\n // icon to be in the set. This won't be 100% accurate, but it should help us avoid at least\n // some of the parsing.\n if (config.svgText && config.svgText.toString().indexOf(iconName) > -1) {\n const svg = this._svgElementFromConfig(config);\n const foundIcon = this._extractSvgIconFromSet(svg, iconName, config.options);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n /**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n _loadSvgIconFromConfig(config) {\n return this._fetchIcon(config).pipe(tap(svgText => config.svgText = svgText), map(() => this._svgElementFromConfig(config)));\n }\n /**\n * Loads the content of the icon set URL specified in the\n * SvgIconConfig and attaches it to the config.\n */\n _loadSvgIconSetFromConfig(config) {\n if (config.svgText) {\n return of(null);\n }\n return this._fetchIcon(config).pipe(tap(svgText => config.svgText = svgText));\n }\n /**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n _extractSvgIconFromSet(iconSet, iconName, options) {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n if (!iconSource) {\n return null;\n }\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true);\n iconElement.removeAttribute('id');\n // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as\n // the content of a new <svg> node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this._setSvgAttributes(iconElement, options);\n }\n // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note\n // that the same could be achieved by referring to it via <use href=\"#id\">, however the <use>\n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this._setSvgAttributes(this._toSvgElement(iconElement), options);\n }\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this._svgElementFromString(trustedHTMLFromString('<svg></svg>'));\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n return this._setSvgAttributes(svg, options);\n }\n /**\n * Creates a DOM element from the given SVG string.\n */\n _svgElementFromString(str) {\n const div = this._document.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg');\n // TODO: add an ngDevMode check\n if (!svg) {\n throw Error('<svg> tag not found');\n }\n return svg;\n }\n /**\n * Converts an element into an SVG node by cloning all of its children.\n */\n _toSvgElement(element) {\n const svg = this._svgElementFromString(trustedHTMLFromString('<svg></svg>'));\n const attributes = element.attributes;\n // Copy over all the attributes from the `symbol` to the new SVG, except the id.\n for (let i = 0; i < attributes.length; i++) {\n const {\n name,\n value\n } = attributes[i];\n if (name !== 'id') {\n svg.setAttribute(name, value);\n }\n }\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this._document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n return svg;\n }\n /**\n * Sets the default attributes for an SVG element to be used as an icon.\n */\n _setSvgAttributes(svg, options) {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n if (options && options.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n return svg;\n }\n /**\n * Returns an Observable which produces the string contents of the given icon. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n */\n _fetchIcon(iconConfig) {\n const {\n url: safeUrl,\n options\n } = iconConfig;\n const withCredentials = options?.withCredentials ?? false;\n if (!this._httpClient) {\n throw getMatIconNoHttpProviderError();\n }\n // TODO: add an ngDevMode check\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n // TODO: add an ngDevMode check\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this._inProgressUrlFetches.get(url);\n if (inProgressFetch) {\n return inProgressFetch;\n }\n const req = this._httpClient.get(url, {\n responseType: 'text',\n withCredentials\n }).pipe(map(svg => {\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus\n // trusted HTML.\n return trustedHTMLFromString(svg);\n }), finalize(() => this._inProgressUrlFetches.delete(url)), share());\n this._inProgressUrlFetches.set(url, req);\n return req;\n }\n /**\n * Registers an icon config by name in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param iconName Name under which to register the config.\n * @param config Config to be registered.\n */\n _addSvgIconConfig(namespace, iconName, config) {\n this._svgIconConfigs.set(iconKey(namespace, iconName), config);\n return this;\n }\n /**\n * Registers an icon set config in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param config Config to be registered.\n */\n _addSvgIconSetConfig(namespace, config) {\n const configNamespace = this._iconSetConfigs.get(namespace);\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n return this;\n }\n /** Parses a config's text into an SVG element. */\n _svgElementFromConfig(config) {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n return config.svgElement;\n }\n /** Tries to create an icon config through the registered resolver functions. */\n _getIconConfigFromResolvers(namespace, name) {\n for (let i = 0; i < this._resolvers.length; i++) {\n const result = this._resolvers[i](name, namespace);\n if (result) {\n return isSafeUrlWithOptions(result) ? new SvgIconConfig(result.url, null, result.options) : new SvgIconConfig(result, null);\n }\n }\n return undefined;\n }\n static {\n this.ɵfac = function MatIconRegistry_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconRegistry)(i0.ɵɵinject(i1.HttpClient, 8), i0.ɵɵinject(i2.DomSanitizer), i0.ɵɵinject(DOCUMENT, 8), i0.ɵɵinject(i0.ErrorHandler));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatIconRegistry,\n factory: MatIconRegistry.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return MatIconRegistry;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** @docs-private */\nfunction ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, httpClient, sanitizer, errorHandler, document) {\n return parentRegistry || new MatIconRegistry(httpClient, sanitizer, document, errorHandler);\n}\n/** @docs-private */\nconst ICON_REGISTRY_PROVIDER = {\n // If there is already an MatIconRegistry available, use that. Otherwise, provide a new one.\n provide: MatIconRegistry,\n deps: [[/*#__PURE__*/new Optional(), /*#__PURE__*/new SkipSelf(), MatIconRegistry], [/*#__PURE__*/new Optional(), HttpClient], DomSanitizer, ErrorHandler, [/*#__PURE__*/new Optional(), DOCUMENT]],\n useFactory: ICON_REGISTRY_PROVIDER_FACTORY\n};\n/** Clones an SVGElement while preserving type information. */\nfunction cloneSvg(svg) {\n return svg.cloneNode(true);\n}\n/** Returns the cache key to use for an icon namespace and name. */\nfunction iconKey(namespace, name) {\n return namespace + ':' + name;\n}\nfunction isSafeUrlWithOptions(value) {\n return !!(value.url && value.options);\n}\n\n/** Injection token to be used to override the default options for `mat-icon`. */\nconst MAT_ICON_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_ICON_DEFAULT_OPTIONS');\n/**\n * Injection token used to provide the current location to `MatIcon`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nconst MAT_ICON_LOCATION = /*#__PURE__*/new InjectionToken('mat-icon-location', {\n providedIn: 'root',\n factory: MAT_ICON_LOCATION_FACTORY\n});\n/** @docs-private */\nfunction MAT_ICON_LOCATION_FACTORY() {\n const _document = inject(DOCUMENT);\n const _location = _document ? _document.location : null;\n return {\n // Note that this needs to be a function, rather than a property, because Angular\n // will only resolve it once, but we want the current path on each call.\n getPathname: () => _location ? _location.pathname + _location.search : ''\n };\n}\n/** SVG attributes that accept a FuncIRI (e.g. `url(<something>)`). */\nconst funcIriAttributes = ['clip-path', 'color-profile', 'src', 'cursor', 'fill', 'filter', 'marker', 'marker-start', 'marker-mid', 'marker-end', 'mask', 'stroke'];\n/** Selector that can be used to find all elements that are using a `FuncIRI`. */\nconst funcIriAttributeSelector = /*#__PURE__*/ /*#__PURE__*/funcIriAttributes.map(attr => `[${attr}]`).join(', ');\n/** Regex that can be used to extract the id out of a FuncIRI. */\nconst funcIriPattern = /^url\\(['\"]?#(.*?)['\"]?\\)$/;\n/**\n * Component to display an icon. It can be used in the following ways:\n *\n * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the\n * addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of\n * MatIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format\n * \"[namespace]:[name]\", if not the value will be the name of an icon in the default namespace.\n * Examples:\n * `<mat-icon svgIcon=\"left-arrow\"></mat-icon>\n * <mat-icon svgIcon=\"animals:cat\"></mat-icon>`\n *\n * - Use a font ligature as an icon by putting the ligature text in the `fontIcon` attribute or the\n * content of the `<mat-icon>` component. If you register a custom font class, don't forget to also\n * include the special class `mat-ligature-font`. It is recommended to use the attribute alternative\n * to prevent the ligature text to be selectable and to appear in search engine results.\n * By default, the Material icons font is used as described at\n * http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an\n * alternate font by setting the fontSet input to either the CSS class to apply to use the\n * desired font, or to an alias previously registered with MatIconRegistry.registerFontClassAlias.\n * Examples:\n * `<mat-icon fontIcon=\"home\"></mat-icon>\n * <mat-icon>home</mat-icon>\n * <mat-icon fontSet=\"myfont\" fontIcon=\"sun\"></mat-icon>\n * <mat-icon fontSet=\"myfont\">sun</mat-icon>`\n *\n * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the\n * font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a\n * CSS class which causes the glyph to be displayed via a :before selector, as in\n * https://fortawesome.github.io/Font-Awesome/examples/\n * Example:\n * `<mat-icon fontSet=\"fa\" fontIcon=\"alarm\"></mat-icon>`\n */\nlet MatIcon = /*#__PURE__*/(() => {\n class MatIcon {\n /**\n * Theme color of the icon. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n get color() {\n return this._color || this._defaultColor;\n }\n set color(value) {\n this._color = value;\n }\n /** Name of the icon in the SVG icon set. */\n get svgIcon() {\n return this._svgIcon;\n }\n set svgIcon(value) {\n if (value !== this._svgIcon) {\n if (value) {\n this._updateSvgIcon(value);\n } else if (this._svgIcon) {\n this._clearSvgElement();\n }\n this._svgIcon = value;\n }\n }\n /** Font set that the icon is a part of. */\n get fontSet() {\n return this._fontSet;\n }\n set fontSet(value) {\n const newValue = this._cleanupFontValue(value);\n if (newValue !== this._fontSet) {\n this._fontSet = newValue;\n this._updateFontIconClasses();\n }\n }\n /** Name of an icon within a font set. */\n get fontIcon() {\n return this._fontIcon;\n }\n set fontIcon(value) {\n const newValue = this._cleanupFontValue(value);\n if (newValue !== this._fontIcon) {\n this._fontIcon = newValue;\n this._updateFontIconClasses();\n }\n }\n constructor(_elementRef, _iconRegistry, ariaHidden, _location, _errorHandler, defaults) {\n this._elementRef = _elementRef;\n this._iconRegistry = _iconRegistry;\n this._location = _location;\n this._errorHandler = _errorHandler;\n /**\n * Whether the icon should be inlined, automatically sizing the icon to match the font size of\n * the element the icon is contained in.\n */\n this.inline = false;\n this._previousFontSetClass = [];\n /** Subscription to the current in-progress SVG icon request. */\n this._currentIconFetch = Subscription.EMPTY;\n if (defaults) {\n if (defaults.color) {\n this.color = this._defaultColor = defaults.color;\n }\n if (defaults.fontSet) {\n this.fontSet = defaults.fontSet;\n }\n }\n // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is\n // the right thing to do for the majority of icon use-cases.\n if (!ariaHidden) {\n _elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n /**\n * Splits an svgIcon binding value into its icon set and icon name components.\n * Returns a 2-element array of [(icon set), (icon name)].\n * The separator for the two fields is ':'. If there is no separator, an empty\n * string is returned for the icon set and the entire value is returned for\n * the icon name. If the argument is falsy, returns an array of two empty strings.\n * Throws an error if the name contains two or more ':' separators.\n * Examples:\n * `'social:cake' -> ['social', 'cake']\n * 'penguin' -> ['', 'penguin']\n * null -> ['', '']\n * 'a:b:c' -> (throws Error)`\n */\n _splitIconName(iconName) {\n if (!iconName) {\n return ['', ''];\n }\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]];\n // Use default namespace.\n case 2:\n return parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n // TODO: add an ngDevMode check\n }\n }\n ngOnInit() {\n // Update font classes because ngOnChanges won't be called if none of the inputs are present,\n // e.g. <mat-icon>arrow</mat-icon> In this case we need to add a CSS class for the default font.\n this._updateFontIconClasses();\n }\n ngAfterViewChecked() {\n const cachedElements = this._elementsWithExternalReferences;\n if (cachedElements && cachedElements.size) {\n const newPath = this._location.getPathname();\n // We need to check whether the URL has changed on each change detection since\n // the browser doesn't have an API that will let us react on link clicks and\n // we can't depend on the Angular router. The references need to be updated,\n // because while most browsers don't care whether the URL is correct after\n // the first render, Safari will break if the user navigates to a different\n // page and the SVG isn't re-rendered.\n if (newPath !== this._previousPath) {\n this._previousPath = newPath;\n this._prependPathToReferences(newPath);\n }\n }\n }\n ngOnDestroy() {\n this._currentIconFetch.unsubscribe();\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n }\n _usingFontIcon() {\n return !this.svgIcon;\n }\n _setSvgElement(svg) {\n this._clearSvgElement();\n // Note: we do this fix here, rather than the icon registry, because the\n // references have to point to the URL at the time that the icon was created.\n const path = this._location.getPathname();\n this._previousPath = path;\n this._cacheChildrenWithExternalReferences(svg);\n this._prependPathToReferences(path);\n this._elementRef.nativeElement.appendChild(svg);\n }\n _clearSvgElement() {\n const layoutElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n _updateFontIconClasses() {\n if (!this._usingFontIcon()) {\n return;\n }\n const elem = this._elementRef.nativeElement;\n const fontSetClasses = (this.fontSet ? this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/) : this._iconRegistry.getDefaultFontSetClass()).filter(className => className.length > 0);\n this._previousFontSetClass.forEach(className => elem.classList.remove(className));\n fontSetClasses.forEach(className => elem.classList.add(className));\n this._previousFontSetClass = fontSetClasses;\n if (this.fontIcon !== this._previousFontIconClass && !fontSetClasses.includes('mat-ligature-font')) {\n if (this._previousFontIconClass) {\n elem.classList.remove(this._previousFontIconClass);\n }\n if (this.fontIcon) {\n elem.classList.add(this.fontIcon);\n }\n this._previousFontIconClass = this.fontIcon;\n }\n }\n /**\n * Cleans up a value to be used as a fontIcon or fontSet.\n * Since the value ends up being assigned as a CSS class, we\n * have to trim the value and omit space-separated values.\n */\n _cleanupFontValue(value) {\n return typeof value === 'string' ? value.trim().split(' ')[0] : value;\n }\n /**\n * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`\n * reference. This is required because WebKit browsers require references to be prefixed with\n * the current path, if the page has a `base` tag.\n */\n _prependPathToReferences(path) {\n const elements = this._elementsWithExternalReferences;\n if (elements) {\n elements.forEach((attrs, element) => {\n attrs.forEach(attr => {\n element.setAttribute(attr.name, `url('${path}#${attr.value}')`);\n });\n });\n }\n }\n /**\n * Caches the children of an SVG element that have `url()`\n * references that we need to prefix with the current path.\n */\n _cacheChildrenWithExternalReferences(element) {\n const elementsWithFuncIri = element.querySelectorAll(funcIriAttributeSelector);\n const elements = this._elementsWithExternalReferences = this._elementsWithExternalReferences || new Map();\n for (let i = 0; i < elementsWithFuncIri.length; i++) {\n funcIriAttributes.forEach(attr => {\n const elementWithReference = elementsWithFuncIri[i];\n const value = elementWithReference.getAttribute(attr);\n const match = value ? value.match(funcIriPattern) : null;\n if (match) {\n let attributes = elements.get(elementWithReference);\n if (!attributes) {\n attributes = [];\n elements.set(elementWithReference, attributes);\n }\n attributes.push({\n name: attr,\n value: match[1]\n });\n }\n });\n }\n }\n /** Sets a new SVG icon with a particular name. */\n _updateSvgIcon(rawName) {\n this._svgNamespace = null;\n this._svgName = null;\n this._currentIconFetch.unsubscribe();\n if (rawName) {\n const [namespace, iconName] = this._splitIconName(rawName);\n if (namespace) {\n this._svgNamespace = namespace;\n }\n if (iconName) {\n this._svgName = iconName;\n }\n this._currentIconFetch = this._iconRegistry.getNamedSvgIcon(iconName, namespace).pipe(take(1)).subscribe(svg => this._setSvgElement(svg), err => {\n const errorMessage = `Error retrieving icon ${namespace}:${iconName}! ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n });\n }\n }\n static {\n this.ɵfac = function MatIcon_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIcon)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MatIconRegistry), i0.ɵɵinjectAttribute('aria-hidden'), i0.ɵɵdirectiveInject(MAT_ICON_LOCATION), i0.ɵɵdirectiveInject(i0.ErrorHandler), i0.ɵɵdirectiveInject(MAT_ICON_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIcon,\n selectors: [[\"mat-icon\"]],\n hostAttrs: [\"role\", \"img\", 1, \"mat-icon\", \"notranslate\"],\n hostVars: 10,\n hostBindings: function MatIcon_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"data-mat-icon-type\", ctx._usingFontIcon() ? \"font\" : \"svg\")(\"data-mat-icon-name\", ctx._svgName || ctx.fontIcon)(\"data-mat-icon-namespace\", ctx._svgNamespace || ctx.fontSet)(\"fontIcon\", ctx._usingFontIcon() ? ctx.fontIcon : null);\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-icon-inline\", ctx.inline)(\"mat-icon-no-color\", ctx.color !== \"primary\" && ctx.color !== \"accent\" && ctx.color !== \"warn\");\n }\n },\n inputs: {\n color: \"color\",\n inline: [2, \"inline\", \"inline\", booleanAttribute],\n svgIcon: \"svgIcon\",\n fontSet: \"fontSet\",\n fontIcon: \"fontIcon\"\n },\n exportAs: [\"matIcon\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [\"mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatIcon;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatIconModule = /*#__PURE__*/(() => {\n class MatIconModule {\n static {\n this.ɵfac = function MatIconModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatIconModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n }\n }\n return MatIconModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ICON_REGISTRY_PROVIDER, ICON_REGISTRY_PROVIDER_FACTORY, MAT_ICON_DEFAULT_OPTIONS, MAT_ICON_LOCATION, MAT_ICON_LOCATION_FACTORY, MatIcon, MatIconModule, MatIconRegistry, getMatIconFailedToSanitizeLiteralError, getMatIconFailedToSanitizeUrlError, getMatIconNameNotFoundError, getMatIconNoHttpProviderError };\n","import * as i0 from '@angular/core';\nimport { inject, NgZone, Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, shareReplay, takeUntil } from 'rxjs/operators';\n\n/**\n * Handler that logs \"ResizeObserver loop limit exceeded\" errors.\n * These errors are not shown in the Chrome console, so we log them to ensure developers are aware.\n * @param e The error\n */\nconst loopLimitExceededErrorHandler = e => {\n if (e instanceof ErrorEvent && e.message === 'ResizeObserver loop limit exceeded') {\n console.error(`${e.message}. This could indicate a performance issue with your app. See https://github.com/WICG/resize-observer/blob/master/explainer.md#error-handling`);\n }\n};\n/**\n * A shared ResizeObserver to be used for a particular box type (content-box, border-box, or\n * device-pixel-content-box)\n */\nclass SingleBoxSharedResizeObserver {\n constructor(/** The box type to observe for resizes. */\n _box) {\n this._box = _box;\n /** Stream that emits when the shared observer is destroyed. */\n this._destroyed = new Subject();\n /** Stream of all events from the ResizeObserver. */\n this._resizeSubject = new Subject();\n /** A map of elements to streams of their resize events. */\n this._elementObservables = new Map();\n if (typeof ResizeObserver !== 'undefined') {\n this._resizeObserver = new ResizeObserver(entries => this._resizeSubject.next(entries));\n }\n }\n /**\n * Gets a stream of resize events for the given element.\n * @param target The element to observe.\n * @return The stream of resize events for the element.\n */\n observe(target) {\n if (!this._elementObservables.has(target)) {\n this._elementObservables.set(target, new Observable(observer => {\n const subscription = this._resizeSubject.subscribe(observer);\n this._resizeObserver?.observe(target, {\n box: this._box\n });\n return () => {\n this._resizeObserver?.unobserve(target);\n subscription.unsubscribe();\n this._elementObservables.delete(target);\n };\n }).pipe(filter(entries => entries.some(entry => entry.target === target)),\n // Share a replay of the last event so that subsequent calls to observe the same element\n // receive initial sizing info like the first one. Also enable ref counting so the\n // element will be automatically unobserved when there are no more subscriptions.\n shareReplay({\n bufferSize: 1,\n refCount: true\n }), takeUntil(this._destroyed)));\n }\n return this._elementObservables.get(target);\n }\n /** Destroys this instance. */\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._resizeSubject.complete();\n this._elementObservables.clear();\n }\n}\n/**\n * Allows observing resize events on multiple elements using a shared set of ResizeObserver.\n * Sharing a ResizeObserver instance is recommended for better performance (see\n * https://github.com/WICG/resize-observer/issues/59).\n *\n * Rather than share a single `ResizeObserver`, this class creates one `ResizeObserver` per type\n * of observed box ('content-box', 'border-box', and 'device-pixel-content-box'). This avoids\n * later calls to `observe` with a different box type from influencing the events dispatched to\n * earlier calls.\n */\nlet SharedResizeObserver = /*#__PURE__*/(() => {\n class SharedResizeObserver {\n constructor() {\n /** Map of box type to shared resize observer. */\n this._observers = new Map();\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('error', loopLimitExceededErrorHandler);\n });\n }\n }\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n window.removeEventListener('error', loopLimitExceededErrorHandler);\n }\n }\n /**\n * Gets a stream of resize events for the given target element and box type.\n * @param target The element to observe for resizes.\n * @param options Options to pass to the `ResizeObserver`\n * @return The stream of resize events for the element.\n */\n observe(target, options) {\n const box = options?.box || 'content-box';\n if (!this._observers.has(box)) {\n this._observers.set(box, new SingleBoxSharedResizeObserver(box));\n }\n return this._observers.get(box).observe(target);\n }\n static {\n this.ɵfac = function SharedResizeObserver_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SharedResizeObserver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedResizeObserver,\n factory: SharedResizeObserver.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return SharedResizeObserver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SharedResizeObserver };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, Attribute, Input, inject, NgZone, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, contentChild, Injector, computed, afterRender, ANIMATION_MODULE_TYPE, Optional, Inject, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i2 from '@angular/cdk/platform';\nimport { DOCUMENT, NgTemplateOutlet, CommonModule } from '@angular/common';\nimport { Subscription, Subject, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** The floating label for a `mat-form-field`. */\nconst _c0 = [\"notch\"];\nconst _c1 = [\"matFormFieldNotchedOutline\", \"\"];\nconst _c2 = [\"*\"];\nconst _c3 = [\"textField\"];\nconst _c4 = [\"iconPrefixContainer\"];\nconst _c5 = [\"textPrefixContainer\"];\nconst _c6 = [\"iconSuffixContainer\"];\nconst _c7 = [\"textSuffixContainer\"];\nconst _c8 = [\"*\", [[\"mat-label\"]], [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"]], [[\"\", \"matTextPrefix\", \"\"]], [[\"\", \"matTextSuffix\", \"\"]], [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"]], [[\"mat-error\"], [\"\", \"matError\", \"\"]], [[\"mat-hint\", 3, \"align\", \"end\"]], [[\"mat-hint\", \"align\", \"end\"]]];\nconst _c9 = [\"*\", \"mat-label\", \"[matPrefix], [matIconPrefix]\", \"[matTextPrefix]\", \"[matTextSuffix]\", \"[matSuffix], [matIconSuffix]\", \"mat-error, [matError]\", \"mat-hint:not([align='end'])\", \"mat-hint[align='end']\"];\nfunction MatFormField_ng_template_0_Conditional_0_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 21);\n }\n}\nfunction MatFormField_ng_template_0_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 20);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MatFormField_ng_template_0_Conditional_0_Conditional_2_Template, 1, 0, \"span\", 21);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"floating\", ctx_r1._shouldLabelFloat())(\"monitorResize\", ctx_r1._hasOutline())(\"id\", ctx_r1._labelId);\n i0.ɵɵattribute(\"for\", ctx_r1._control.disableAutomaticLabeling ? null : ctx_r1._control.id);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx_r1.hideRequiredMarker && ctx_r1._control.required ? 2 : -1);\n }\n}\nfunction MatFormField_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Conditional_0_Template, 3, 5, \"label\", 20);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵconditional(ctx_r1._hasFloatingLabel() ? 0 : -1);\n }\n}\nfunction MatFormField_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n}\nfunction MatFormField_Conditional_6_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_6_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_6_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 13);\n }\n if (rf & 2) {\n i0.ɵɵnextContext(2);\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵtemplate(1, MatFormField_Conditional_6_Conditional_1_Template, 1, 1, null, 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matFormFieldNotchedOutlineOpen\", ctx_r1._shouldLabelFloat());\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r1._forceDisplayInfixLabel() ? 1 : -1);\n }\n}\nfunction MatFormField_Conditional_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10, 2);\n i0.ɵɵprojection(2, 2);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11, 3);\n i0.ɵɵprojection(2, 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_10_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_10_ng_template_0_Template, 0, 0, \"ng-template\", 13);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14, 4);\n i0.ɵɵprojection(2, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 15, 5);\n i0.ɵɵprojection(2, 5);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 16);\n }\n}\nfunction MatFormField_Case_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 18);\n i0.ɵɵprojection(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n }\n}\nfunction MatFormField_Case_17_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-hint\", 22);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"id\", ctx_r1._hintLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.hintLabel);\n }\n}\nfunction MatFormField_Case_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, MatFormField_Case_17_Conditional_1_Template, 2, 2, \"mat-hint\", 22);\n i0.ɵɵprojection(2, 7);\n i0.ɵɵelement(3, \"div\", 23);\n i0.ɵɵprojection(4, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.hintLabel ? 1 : -1);\n }\n}\nlet MatLabel = /*#__PURE__*/(() => {\n class MatLabel {\n static {\n this.ɵfac = function MatLabel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLabel,\n selectors: [[\"mat-label\"]],\n standalone: true\n });\n }\n }\n return MatLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$2 = 0;\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_ERROR = /*#__PURE__*/new InjectionToken('MatError');\n/** Single error message to be shown underneath the form-field. */\nlet MatError = /*#__PURE__*/(() => {\n class MatError {\n constructor(ariaLive, elementRef) {\n this.id = `mat-mdc-error-${nextUniqueId$2++}`;\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n static {\n this.ɵfac = function MatError_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatError)(i0.ɵɵinjectAttribute('aria-live'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatError,\n selectors: [[\"mat-error\"], [\"\", \"matError\", \"\"]],\n hostAttrs: [\"aria-atomic\", \"true\", 1, \"mat-mdc-form-field-error\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 1,\n hostBindings: function MatError_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ERROR,\n useExisting: MatError\n }])]\n });\n }\n }\n return MatError;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$1 = 0;\n/** Hint text to be shown underneath the form field control. */\nlet MatHint = /*#__PURE__*/(() => {\n class MatHint {\n constructor() {\n /** Whether to align the hint label at the start or end of the line. */\n this.align = 'start';\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n this.id = `mat-mdc-hint-${nextUniqueId$1++}`;\n }\n static {\n this.ɵfac = function MatHint_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatHint)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHint,\n selectors: [[\"mat-hint\"]],\n hostAttrs: [1, \"mat-mdc-form-field-hint\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 4,\n hostBindings: function MatHint_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-mdc-form-field-hint-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\",\n id: \"id\"\n },\n standalone: true\n });\n }\n }\n return MatHint;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_PREFIX = /*#__PURE__*/new InjectionToken('MatPrefix');\n/** Prefix to be placed in front of the form field. */\nlet MatPrefix = /*#__PURE__*/(() => {\n class MatPrefix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatPrefix_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatPrefix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPrefix,\n selectors: [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"], [\"\", \"matTextPrefix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextPrefix\", \"_isTextSelector\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_PREFIX,\n useExisting: MatPrefix\n }])]\n });\n }\n }\n return MatPrefix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SUFFIX = /*#__PURE__*/new InjectionToken('MatSuffix');\n/** Suffix to be placed at the end of the form field. */\nlet MatSuffix = /*#__PURE__*/(() => {\n class MatSuffix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatSuffix_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSuffix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSuffix,\n selectors: [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"], [\"\", \"matTextSuffix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextSuffix\", \"_isTextSelector\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SUFFIX,\n useExisting: MatSuffix\n }])]\n });\n }\n }\n return MatSuffix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** An injion token for the parent form-field. */\nconst FLOATING_LABEL_PARENT = /*#__PURE__*/new InjectionToken('FloatingLabelParent');\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\nlet MatFormFieldFloatingLabel = /*#__PURE__*/(() => {\n class MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n get floating() {\n return this._floating;\n }\n set floating(value) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n /** Whether to monitor for resize events on the floating label. */\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n this._floating = false;\n this._monitorResize = false;\n /** The shared ResizeObserver. */\n this._resizeObserver = inject(SharedResizeObserver);\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n /** The parent form-field. */\n this._parent = inject(FLOATING_LABEL_PARENT);\n /** The current resize event subscription. */\n this._resizeSubscription = new Subscription();\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** Gets the width of the label. Used for the outline notch. */\n getWidth() {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n /** Gets the HTML element for the floating label. */\n get element() {\n return this._elementRef.nativeElement;\n }\n /** Handles resize events from the ResizeObserver. */\n _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n /** Subscribes to resize events. */\n _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver.observe(this._elementRef.nativeElement, {\n box: 'border-box'\n }).subscribe(() => this._handleResize());\n });\n }\n static {\n this.ɵfac = function MatFormFieldFloatingLabel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldFloatingLabel)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldFloatingLabel,\n selectors: [[\"label\", \"matFormFieldFloatingLabel\", \"\"]],\n hostAttrs: [1, \"mdc-floating-label\", \"mat-mdc-floating-label\"],\n hostVars: 2,\n hostBindings: function MatFormFieldFloatingLabel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-floating-label--float-above\", ctx.floating);\n }\n },\n inputs: {\n floating: \"floating\",\n monitorResize: \"monitorResize\"\n },\n standalone: true\n });\n }\n }\n return MatFormFieldFloatingLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element) {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n const clone = htmlEl.cloneNode(true);\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\n}\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\nlet MatFormFieldLineRipple = /*#__PURE__*/(() => {\n class MatFormFieldLineRipple {\n constructor(_elementRef, ngZone) {\n this._elementRef = _elementRef;\n this._handleTransitionEnd = event => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('transitionend', this._handleTransitionEnd);\n });\n }\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._handleTransitionEnd);\n }\n static {\n this.ɵfac = function MatFormFieldLineRipple_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldLineRipple)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldLineRipple,\n selectors: [[\"div\", \"matFormFieldLineRipple\", \"\"]],\n hostAttrs: [1, \"mdc-line-ripple\"],\n standalone: true\n });\n }\n }\n return MatFormFieldLineRipple;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\nlet MatFormFieldNotchedOutline = /*#__PURE__*/(() => {\n class MatFormFieldNotchedOutline {\n constructor(_elementRef, _ngZone) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Whether the notch should be opened. */\n this.open = false;\n }\n ngAfterViewInit() {\n const label = this._elementRef.nativeElement.querySelector('.mdc-floating-label');\n if (label) {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--upgraded');\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => label.style.transitionDuration = '');\n });\n }\n } else {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--no-label');\n }\n }\n _setNotchWidth(labelWidth) {\n if (!this.open || !labelWidth) {\n this._notch.nativeElement.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n this._notch.nativeElement.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER}px)`;\n }\n }\n static {\n this.ɵfac = function MatFormFieldNotchedOutline_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldNotchedOutline)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormFieldNotchedOutline,\n selectors: [[\"div\", \"matFormFieldNotchedOutline\", \"\"]],\n viewQuery: function MatFormFieldNotchedOutline_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notch = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-notched-outline\"],\n hostVars: 2,\n hostBindings: function MatFormFieldNotchedOutline_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-notched-outline--notched\", ctx.open);\n }\n },\n inputs: {\n open: [0, \"matFormFieldNotchedOutlineOpen\", \"open\"]\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c1,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 0,\n consts: [[\"notch\", \"\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__leading\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__notch\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__trailing\"]],\n template: function MatFormFieldNotchedOutline_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 1);\n i0.ɵɵelementStart(1, \"div\", 2, 0);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"div\", 3);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFormFieldNotchedOutline;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the MatFormField.\n * @docs-private\n */\nconst matFormFieldAnimations = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: /*#__PURE__*/trigger('transitionMessages', [\n /*#__PURE__*/\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', /*#__PURE__*/style({\n opacity: 1,\n transform: 'translateY(0%)'\n })), /*#__PURE__*/transition('void => enter', [/*#__PURE__*/style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }), /*#__PURE__*/animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nlet MatFormFieldControl = /*#__PURE__*/(() => {\n class MatFormFieldControl {\n static {\n this.ɵfac = function MatFormFieldControl_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldControl)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldControl\n });\n }\n }\n return MatFormFieldControl;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** @docs-private */\nfunction getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/** @docs-private */\nfunction getMatFormFieldDuplicatedHintError(align) {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/** @docs-private */\nfunction getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n\n/**\n * Injection token that can be used to inject an instances of `MatFormField`. It serves\n * as alternative token to the actual `MatFormField` class which would cause unnecessary\n * retention of the `MatFormField` class and its component metadata.\n */\nconst MAT_FORM_FIELD = /*#__PURE__*/new InjectionToken('MatFormField');\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nconst MAT_FORM_FIELD_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_FORM_FIELD_DEFAULT_OPTIONS');\nlet nextUniqueId = 0;\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE = 'fill';\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL = 'auto';\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING = 'fixed';\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n/** Container for form controls that applies Material Design styling and behavior. */\nlet MatFormField = /*#__PURE__*/(() => {\n class MatFormField {\n /** Whether the required marker should be hidden. */\n get hideRequiredMarker() {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /** Whether the label should always float or float as the user types. */\n get floatLabel() {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** The form field appearance style. */\n get appearance() {\n return this._appearance;\n }\n set appearance(value) {\n const oldValue = this._appearance;\n const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (newAppearance !== 'fill' && newAppearance !== 'outline') {\n throw new Error(`MatFormField: Invalid appearance \"${newAppearance}\", valid values are \"fill\" or \"outline\".`);\n }\n }\n this._appearance = newAppearance;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdate = true;\n }\n }\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n get subscriptSizing() {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n /** Text for the form field hint. */\n get hintLabel() {\n return this._hintLabel;\n }\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /** Gets the current form field control */\n get _control() {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n constructor(_elementRef, _changeDetectorRef,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 19.0.0 remove this param\n */\n _unusedNgZone, _dir, _platform, _defaults, _animationMode,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 17.0.0 remove this param\n */\n _unusedDocument) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._platform = _platform;\n this._defaults = _defaults;\n this._animationMode = _animationMode;\n this._labelChild = contentChild(MatLabel);\n this._hideRequiredMarker = false;\n /**\n * Theme color of the form field. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n this.color = 'primary';\n this._appearance = DEFAULT_APPEARANCE;\n this._subscriptSizing = null;\n this._hintLabel = '';\n this._hasIconPrefix = false;\n this._hasTextPrefix = false;\n this._hasIconSuffix = false;\n this._hasTextSuffix = false;\n // Unique id for the internal form field label.\n this._labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n // Unique id for the hint label.\n this._hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n /** State of the mat-hint and mat-error animations. */\n this._subscriptAnimationState = '';\n this._destroyed = new Subject();\n this._isFocused = null;\n this._needsOutlineLabelOffsetUpdate = false;\n this._previousControl = null;\n this._injector = inject(Injector);\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n this.getLabelId = computed(() => this._hasFloatingLabel() ? this._labelId : null);\n this._hasFloatingLabel = computed(() => !!this._labelChild());\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n ngAfterViewInit() {\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n if (this._control !== this._previousControl) {\n this._initializeControl(this._previousControl);\n this._previousControl = this._control;\n }\n }\n ngOnDestroy() {\n this._stateChanges?.unsubscribe();\n this._valueChanges?.unsubscribe();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin() {\n return this._textField || this._elementRef;\n }\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel() {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n /** Initializes the registered form field control. */\n _initializeControl(previousControl) {\n const control = this._control;\n const classPrefix = 'mat-mdc-form-field-type-';\n if (previousControl) {\n this._elementRef.nativeElement.classList.remove(classPrefix + previousControl.controlType);\n }\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(classPrefix + control.controlType);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._stateChanges?.unsubscribe();\n this._stateChanges = control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n this._valueChanges?.unsubscribe();\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n this._valueChanges = control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n /** Initializes the prefix and suffix containers. */\n _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n /** Throws an error if the form field's control is missing. */\n _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._lineRipple?.activate();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._lineRipple?.deactivate();\n }\n this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', this._control.focused);\n }\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update.\n */\n _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n // TODO(mmalerba): Use ResizeObserver to better support dynamically changing prefix content.\n this._prefixChildren.changes.subscribe(() => this._needsOutlineLabelOffsetUpdate = true);\n // TODO(mmalerba): Split this into separate `afterRender` calls using the `EarlyRead` and\n // `Write` phases.\n afterRender(() => {\n if (this._needsOutlineLabelOffsetUpdate) {\n this._needsOutlineLabelOffsetUpdate = false;\n this._updateOutlineLabelOffset();\n }\n }, {\n injector: this._injector\n });\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => this._needsOutlineLabelOffsetUpdate = true);\n }\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n _hasOutline() {\n return this.appearance === 'outline';\n }\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n _shouldLabelFloat() {\n if (!this._hasFloatingLabel()) {\n return false;\n }\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop) {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages() {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n /** Handle label resize events. */\n _handleLabelResized() {\n this._refreshOutlineNotchWidth();\n }\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) {\n this._notchedOutline?._setNotchWidth(0);\n } else {\n this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth());\n }\n }\n /** Does any extra processing that is required when handling the hints. */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint;\n let endHint;\n this._hintChildren.forEach(hint => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n _syncDescribedByIds() {\n if (this._control) {\n let ids = [];\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === 'string') {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n _updateOutlineLabelOffset() {\n if (!this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdate = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconSuffixContainer = this._iconSuffixContainer?.nativeElement;\n const textSuffixContainer = this._textSuffixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n const iconSuffixContainerWidth = iconSuffixContainer?.getBoundingClientRect().width ?? 0;\n const textSuffixContainerWidth = textSuffixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const negate = this._dir.value === 'rtl' ? '-1' : '1';\n const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`;\n const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`;\n const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`;\n // Update the translateX of the floating label to account for the prefix container,\n // but allow the CSS to override this setting via a CSS variable when the label is\n // floating.\n floatingLabel.style.transform = `var(\n --mat-mdc-form-field-label-transform,\n ${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset})\n )`;\n // Prevent the label from overlapping the suffix when in resting position.\n const prefixAndSuffixWidth = iconPrefixContainerWidth + textPrefixContainerWidth + iconSuffixContainerWidth + textSuffixContainerWidth;\n this._elementRef.nativeElement.style.setProperty('--mat-form-field-notch-max-width', `calc(100% - ${prefixAndSuffixWidth}px)`);\n }\n /** Checks whether the form field is attached to the DOM. */\n _isAttachedToDom() {\n const element = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement.contains(element);\n }\n static {\n this.ɵfac = function MatFormField_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormField)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Directionality), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(MAT_FORM_FIELD_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormField,\n selectors: [[\"mat-form-field\"]],\n contentQueries: function MatFormField_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuerySignal(dirIndex, ctx._labelChild, MatLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_PREFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SUFFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_ERROR, 5);\n i0.ɵɵcontentQuery(dirIndex, MatHint, 5);\n }\n if (rf & 2) {\n i0.ɵɵqueryAdvance();\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._formFieldControl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._prefixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._suffixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._errorChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._hintChildren = _t);\n }\n },\n viewQuery: function MatFormField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n i0.ɵɵviewQuery(MatFormFieldFloatingLabel, 5);\n i0.ɵɵviewQuery(MatFormFieldNotchedOutline, 5);\n i0.ɵɵviewQuery(MatFormFieldLineRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textField = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconSuffixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textSuffixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._floatingLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notchedOutline = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lineRipple = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-form-field\"],\n hostVars: 42,\n hostBindings: function MatFormField_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-form-field-label-always-float\", ctx._shouldAlwaysFloat())(\"mat-mdc-form-field-has-icon-prefix\", ctx._hasIconPrefix)(\"mat-mdc-form-field-has-icon-suffix\", ctx._hasIconSuffix)(\"mat-form-field-invalid\", ctx._control.errorState)(\"mat-form-field-disabled\", ctx._control.disabled)(\"mat-form-field-autofilled\", ctx._control.autofilled)(\"mat-form-field-no-animations\", ctx._animationMode === \"NoopAnimations\")(\"mat-form-field-appearance-fill\", ctx.appearance == \"fill\")(\"mat-form-field-appearance-outline\", ctx.appearance == \"outline\")(\"mat-form-field-hide-placeholder\", ctx._hasFloatingLabel() && !ctx._shouldLabelFloat())(\"mat-focused\", ctx._control.focused)(\"mat-primary\", ctx.color !== \"accent\" && ctx.color !== \"warn\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"ng-untouched\", ctx._shouldForward(\"untouched\"))(\"ng-touched\", ctx._shouldForward(\"touched\"))(\"ng-pristine\", ctx._shouldForward(\"pristine\"))(\"ng-dirty\", ctx._shouldForward(\"dirty\"))(\"ng-valid\", ctx._shouldForward(\"valid\"))(\"ng-invalid\", ctx._shouldForward(\"invalid\"))(\"ng-pending\", ctx._shouldForward(\"pending\"));\n }\n },\n inputs: {\n hideRequiredMarker: \"hideRequiredMarker\",\n color: \"color\",\n floatLabel: \"floatLabel\",\n appearance: \"appearance\",\n subscriptSizing: \"subscriptSizing\",\n hintLabel: \"hintLabel\"\n },\n exportAs: [\"matFormField\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_FORM_FIELD,\n useExisting: MatFormField\n }, {\n provide: FLOATING_LABEL_PARENT,\n useExisting: MatFormField\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c9,\n decls: 18,\n vars: 21,\n consts: [[\"labelTemplate\", \"\"], [\"textField\", \"\"], [\"iconPrefixContainer\", \"\"], [\"textPrefixContainer\", \"\"], [\"textSuffixContainer\", \"\"], [\"iconSuffixContainer\", \"\"], [1, \"mat-mdc-text-field-wrapper\", \"mdc-text-field\", 3, \"click\"], [1, \"mat-mdc-form-field-focus-overlay\"], [1, \"mat-mdc-form-field-flex\"], [\"matFormFieldNotchedOutline\", \"\", 3, \"matFormFieldNotchedOutlineOpen\"], [1, \"mat-mdc-form-field-icon-prefix\"], [1, \"mat-mdc-form-field-text-prefix\"], [1, \"mat-mdc-form-field-infix\"], [3, \"ngTemplateOutlet\"], [1, \"mat-mdc-form-field-text-suffix\"], [1, \"mat-mdc-form-field-icon-suffix\"], [\"matFormFieldLineRipple\", \"\"], [1, \"mat-mdc-form-field-subscript-wrapper\", \"mat-mdc-form-field-bottom-align\"], [1, \"mat-mdc-form-field-error-wrapper\"], [1, \"mat-mdc-form-field-hint-wrapper\"], [\"matFormFieldFloatingLabel\", \"\", 3, \"floating\", \"monitorResize\", \"id\"], [\"aria-hidden\", \"true\", 1, \"mat-mdc-form-field-required-marker\", \"mdc-floating-label--required\"], [3, \"id\"], [1, \"mat-mdc-form-field-hint-spacer\"]],\n template: function MatFormField_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c8);\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 6, 1);\n i0.ɵɵlistener(\"click\", function MatFormField_Template_div_click_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._control.onContainerClick($event));\n });\n i0.ɵɵtemplate(4, MatFormField_Conditional_4_Template, 1, 0, \"div\", 7);\n i0.ɵɵelementStart(5, \"div\", 8);\n i0.ɵɵtemplate(6, MatFormField_Conditional_6_Template, 2, 2, \"div\", 9)(7, MatFormField_Conditional_7_Template, 3, 0, \"div\", 10)(8, MatFormField_Conditional_8_Template, 3, 0, \"div\", 11);\n i0.ɵɵelementStart(9, \"div\", 12);\n i0.ɵɵtemplate(10, MatFormField_Conditional_10_Template, 1, 1, null, 13);\n i0.ɵɵprojection(11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, MatFormField_Conditional_12_Template, 3, 0, \"div\", 14)(13, MatFormField_Conditional_13_Template, 3, 0, \"div\", 15);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(14, MatFormField_Conditional_14_Template, 1, 0, \"div\", 16);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(15, \"div\", 17);\n i0.ɵɵtemplate(16, MatFormField_Case_16_Template, 2, 1, \"div\", 18)(17, MatFormField_Case_17_Template, 5, 2, \"div\", 19);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_16_0;\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mdc-text-field--filled\", !ctx._hasOutline())(\"mdc-text-field--outlined\", ctx._hasOutline())(\"mdc-text-field--no-label\", !ctx._hasFloatingLabel())(\"mdc-text-field--disabled\", ctx._control.disabled)(\"mdc-text-field--invalid\", ctx._control.errorState);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx._hasOutline() && !ctx._control.disabled ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._hasOutline() ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasIconPrefix ? 7 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasTextPrefix ? 8 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx._hasOutline() || ctx._forceDisplayInfixLabel() ? 10 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._hasTextSuffix ? 12 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasIconSuffix ? 13 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx._hasOutline() ? 14 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-mdc-form-field-subscript-dynamic-size\", ctx.subscriptSizing === \"dynamic\");\n i0.ɵɵadvance();\n i0.ɵɵconditional((tmp_16_0 = ctx._getDisplayedMessages()) === \"error\" ? 16 : tmp_16_0 === \"hint\" ? 17 : -1);\n }\n },\n dependencies: [MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, NgTemplateOutlet, MatFormFieldLineRipple, MatHint],\n styles: [\".mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--disabled .cdk-high-contrast-active .mdc-text-field__input{background-color:Window}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-app-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.cdk-high-contrast-active .mdc-text-field--disabled .mdc-floating-label{z-index:1}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-app-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:\\\"*\\\"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-app-outline));border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-app-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-app-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:\\\"\\\"}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-app-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-app-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-app-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-app-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:\\\"\\\";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-app-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-app-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-app-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-app-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-app-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-app-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-app-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:\\\"\\\";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-app-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-app-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-app-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-app-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-app-body-large-weight))}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-app-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-app-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-app-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}\"],\n encapsulation: 2,\n data: {\n animation: [matFormFieldAnimations.transitionMessages]\n },\n changeDetection: 0\n });\n }\n }\n return MatFormField;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatFormFieldModule = /*#__PURE__*/(() => {\n class MatFormFieldModule {\n static {\n this.ɵfac = function MatFormFieldModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatFormFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, ObserversModule, MatCommonModule]\n });\n }\n }\n return MatFormFieldModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_ERROR, MAT_FORM_FIELD, MAT_FORM_FIELD_DEFAULT_OPTIONS, MAT_PREFIX, MAT_SUFFIX, MatError, MatFormField, MatFormFieldControl, MatFormFieldModule, MatHint, MatLabel, MatPrefix, MatSuffix, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError, matFormFieldAnimations };\n","import * as i1 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, booleanAttribute, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { coerceElement, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { EMPTY, Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n/** Options to pass to the animationstart listener. */\nconst listenerOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * An injectable service that can be used to monitor the autofill state of an input.\n * Based on the following blog post:\n * https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n */\nlet AutofillMonitor = /*#__PURE__*/(() => {\n class AutofillMonitor {\n constructor(_platform, _ngZone) {\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._monitoredElements = new Map();\n }\n monitor(elementOrRef) {\n if (!this._platform.isBrowser) {\n return EMPTY;\n }\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n return info.subject;\n }\n const result = new Subject();\n const cssClass = 'cdk-text-field-autofilled';\n const listener = event => {\n // Animation events fire on initial element render, we check for the presence of the autofill\n // CSS class to make sure this is a real change in state, not just the initial render before\n // we fire off events.\n if (event.animationName === 'cdk-text-field-autofill-start' && !element.classList.contains(cssClass)) {\n element.classList.add(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: true\n }));\n } else if (event.animationName === 'cdk-text-field-autofill-end' && element.classList.contains(cssClass)) {\n element.classList.remove(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: false\n }));\n }\n };\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('animationstart', listener, listenerOptions);\n element.classList.add('cdk-text-field-autofill-monitored');\n });\n this._monitoredElements.set(element, {\n subject: result,\n unlisten: () => {\n element.removeEventListener('animationstart', listener, listenerOptions);\n }\n });\n return result;\n }\n stopMonitoring(elementOrRef) {\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n info.unlisten();\n info.subject.complete();\n element.classList.remove('cdk-text-field-autofill-monitored');\n element.classList.remove('cdk-text-field-autofilled');\n this._monitoredElements.delete(element);\n }\n }\n ngOnDestroy() {\n this._monitoredElements.forEach((_info, element) => this.stopMonitoring(element));\n }\n static {\n this.ɵfac = function AutofillMonitor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutofillMonitor)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutofillMonitor,\n factory: AutofillMonitor.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return AutofillMonitor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** A directive that can be used to monitor the autofill state of an input. */\nlet CdkAutofill = /*#__PURE__*/(() => {\n class CdkAutofill {\n constructor(_elementRef, _autofillMonitor) {\n this._elementRef = _elementRef;\n this._autofillMonitor = _autofillMonitor;\n /** Emits when the autofill state of the element changes. */\n this.cdkAutofill = new EventEmitter();\n }\n ngOnInit() {\n this._autofillMonitor.monitor(this._elementRef).subscribe(event => this.cdkAutofill.emit(event));\n }\n ngOnDestroy() {\n this._autofillMonitor.stopMonitoring(this._elementRef);\n }\n static {\n this.ɵfac = function CdkAutofill_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAutofill)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(AutofillMonitor));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAutofill,\n selectors: [[\"\", \"cdkAutofill\", \"\"]],\n outputs: {\n cdkAutofill: \"cdkAutofill\"\n },\n standalone: true\n });\n }\n }\n return CdkAutofill;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Directive to automatically resize a textarea to fit its content. */\nlet CdkTextareaAutosize = /*#__PURE__*/(() => {\n class CdkTextareaAutosize {\n /** Minimum amount of rows in the textarea. */\n get minRows() {\n return this._minRows;\n }\n set minRows(value) {\n this._minRows = coerceNumberProperty(value);\n this._setMinHeight();\n }\n /** Maximum amount of rows in the textarea. */\n get maxRows() {\n return this._maxRows;\n }\n set maxRows(value) {\n this._maxRows = coerceNumberProperty(value);\n this._setMaxHeight();\n }\n /** Whether autosizing is enabled or not */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n // Only act if the actual value changed. This specifically helps to not run\n // resizeToFitContent too early (i.e. before ngAfterViewInit)\n if (this._enabled !== value) {\n (this._enabled = value) ? this.resizeToFitContent(true) : this.reset();\n }\n }\n get placeholder() {\n return this._textareaElement.placeholder;\n }\n set placeholder(value) {\n this._cachedPlaceholderHeight = undefined;\n if (value) {\n this._textareaElement.setAttribute('placeholder', value);\n } else {\n this._textareaElement.removeAttribute('placeholder');\n }\n this._cacheTextareaPlaceholderHeight();\n }\n constructor(_elementRef, _platform, _ngZone, /** @breaking-change 11.0.0 make document required */\n document) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._destroyed = new Subject();\n this._enabled = true;\n /**\n * Value of minRows as of last resize. If the minRows has decreased, the\n * height of the textarea needs to be recomputed to reflect the new minimum. The maxHeight\n * does not have the same problem because it does not affect the textarea's scrollHeight.\n */\n this._previousMinRows = -1;\n this._isViewInited = false;\n /** Handles `focus` and `blur` events. */\n this._handleFocusEvent = event => {\n this._hasFocus = event.type === 'focus';\n };\n this._document = document;\n this._textareaElement = this._elementRef.nativeElement;\n }\n /** Sets the minimum height of the textarea as determined by minRows. */\n _setMinHeight() {\n const minHeight = this.minRows && this._cachedLineHeight ? `${this.minRows * this._cachedLineHeight}px` : null;\n if (minHeight) {\n this._textareaElement.style.minHeight = minHeight;\n }\n }\n /** Sets the maximum height of the textarea as determined by maxRows. */\n _setMaxHeight() {\n const maxHeight = this.maxRows && this._cachedLineHeight ? `${this.maxRows * this._cachedLineHeight}px` : null;\n if (maxHeight) {\n this._textareaElement.style.maxHeight = maxHeight;\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n // Remember the height which we started with in case autosizing is disabled\n this._initialHeight = this._textareaElement.style.height;\n this.resizeToFitContent();\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n fromEvent(window, 'resize').pipe(auditTime(16), takeUntil(this._destroyed)).subscribe(() => this.resizeToFitContent(true));\n this._textareaElement.addEventListener('focus', this._handleFocusEvent);\n this._textareaElement.addEventListener('blur', this._handleFocusEvent);\n });\n this._isViewInited = true;\n this.resizeToFitContent(true);\n }\n }\n ngOnDestroy() {\n this._textareaElement.removeEventListener('focus', this._handleFocusEvent);\n this._textareaElement.removeEventListener('blur', this._handleFocusEvent);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Cache the height of a single-row textarea if it has not already been cached.\n *\n * We need to know how large a single \"row\" of a textarea is in order to apply minRows and\n * maxRows. For the initial version, we will assume that the height of a single line in the\n * textarea does not ever change.\n */\n _cacheTextareaLineHeight() {\n if (this._cachedLineHeight) {\n return;\n }\n // Use a clone element because we have to override some styles.\n let textareaClone = this._textareaElement.cloneNode(false);\n textareaClone.rows = 1;\n // Use `position: absolute` so that this doesn't cause a browser layout and use\n // `visibility: hidden` so that nothing is rendered. Clear any other styles that\n // would affect the height.\n textareaClone.style.position = 'absolute';\n textareaClone.style.visibility = 'hidden';\n textareaClone.style.border = 'none';\n textareaClone.style.padding = '0';\n textareaClone.style.height = '';\n textareaClone.style.minHeight = '';\n textareaClone.style.maxHeight = '';\n // In Firefox it happens that textarea elements are always bigger than the specified amount\n // of rows. This is because Firefox tries to add extra space for the horizontal scrollbar.\n // As a workaround that removes the extra space for the scrollbar, we can just set overflow\n // to hidden. This ensures that there is no invalid calculation of the line height.\n // See Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=33654\n textareaClone.style.overflow = 'hidden';\n this._textareaElement.parentNode.appendChild(textareaClone);\n this._cachedLineHeight = textareaClone.clientHeight;\n textareaClone.remove();\n // Min and max heights have to be re-calculated if the cached line height changes\n this._setMinHeight();\n this._setMaxHeight();\n }\n _measureScrollHeight() {\n const element = this._textareaElement;\n const previousMargin = element.style.marginBottom || '';\n const isFirefox = this._platform.FIREFOX;\n const needsMarginFiller = isFirefox && this._hasFocus;\n const measuringClass = isFirefox ? 'cdk-textarea-autosize-measuring-firefox' : 'cdk-textarea-autosize-measuring';\n // In some cases the page might move around while we're measuring the `textarea` on Firefox. We\n // work around it by assigning a temporary margin with the same height as the `textarea` so that\n // it occupies the same amount of space. See #23233.\n if (needsMarginFiller) {\n element.style.marginBottom = `${element.clientHeight}px`;\n }\n // Reset the textarea height to auto in order to shrink back to its default size.\n // Also temporarily force overflow:hidden, so scroll bars do not interfere with calculations.\n element.classList.add(measuringClass);\n // The measuring class includes a 2px padding to workaround an issue with Chrome,\n // so we account for that extra space here by subtracting 4 (2px top + 2px bottom).\n const scrollHeight = element.scrollHeight - 4;\n element.classList.remove(measuringClass);\n if (needsMarginFiller) {\n element.style.marginBottom = previousMargin;\n }\n return scrollHeight;\n }\n _cacheTextareaPlaceholderHeight() {\n if (!this._isViewInited || this._cachedPlaceholderHeight != undefined) {\n return;\n }\n if (!this.placeholder) {\n this._cachedPlaceholderHeight = 0;\n return;\n }\n const value = this._textareaElement.value;\n this._textareaElement.value = this._textareaElement.placeholder;\n this._cachedPlaceholderHeight = this._measureScrollHeight();\n this._textareaElement.value = value;\n }\n ngDoCheck() {\n if (this._platform.isBrowser) {\n this.resizeToFitContent();\n }\n }\n /**\n * Resize the textarea to fit its content.\n * @param force Whether to force a height recalculation. By default the height will be\n * recalculated only if the value changed since the last call.\n */\n resizeToFitContent(force = false) {\n // If autosizing is disabled, just skip everything else\n if (!this._enabled) {\n return;\n }\n this._cacheTextareaLineHeight();\n this._cacheTextareaPlaceholderHeight();\n // If we haven't determined the line-height yet, we know we're still hidden and there's no point\n // in checking the height of the textarea.\n if (!this._cachedLineHeight) {\n return;\n }\n const textarea = this._elementRef.nativeElement;\n const value = textarea.value;\n // Only resize if the value or minRows have changed since these calculations can be expensive.\n if (!force && this._minRows === this._previousMinRows && value === this._previousValue) {\n return;\n }\n const scrollHeight = this._measureScrollHeight();\n const height = Math.max(scrollHeight, this._cachedPlaceholderHeight || 0);\n // Use the scrollHeight to know how large the textarea *would* be if fit its entire value.\n textarea.style.height = `${height}px`;\n this._ngZone.runOutsideAngular(() => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => this._scrollToCaretPosition(textarea));\n } else {\n setTimeout(() => this._scrollToCaretPosition(textarea));\n }\n });\n this._previousValue = value;\n this._previousMinRows = this._minRows;\n }\n /**\n * Resets the textarea to its original size\n */\n reset() {\n // Do not try to change the textarea, if the initialHeight has not been determined yet\n // This might potentially remove styles when reset() is called before ngAfterViewInit\n if (this._initialHeight !== undefined) {\n this._textareaElement.style.height = this._initialHeight;\n }\n }\n _noopInputHandler() {\n // no-op handler that ensures we're running change detection on input events.\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n /**\n * Scrolls a textarea to the caret position. On Firefox resizing the textarea will\n * prevent it from scrolling to the caret position. We need to re-set the selection\n * in order for it to scroll to the proper position.\n */\n _scrollToCaretPosition(textarea) {\n const {\n selectionStart,\n selectionEnd\n } = textarea;\n // IE will throw an \"Unspecified error\" if we try to set the selection range after the\n // element has been removed from the DOM. Assert that the directive hasn't been destroyed\n // between the time we requested the animation frame and when it was executed.\n // Also note that we have to assert that the textarea is focused before we set the\n // selection range. Setting the selection range on a non-focused textarea will cause\n // it to receive focus on IE and Edge.\n if (!this._destroyed.isStopped && this._hasFocus) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n static {\n this.ɵfac = function CdkTextareaAutosize_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkTextareaAutosize)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkTextareaAutosize,\n selectors: [[\"textarea\", \"cdkTextareaAutosize\", \"\"]],\n hostAttrs: [\"rows\", \"1\", 1, \"cdk-textarea-autosize\"],\n hostBindings: function CdkTextareaAutosize_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function CdkTextareaAutosize_input_HostBindingHandler() {\n return ctx._noopInputHandler();\n });\n }\n },\n inputs: {\n minRows: [0, \"cdkAutosizeMinRows\", \"minRows\"],\n maxRows: [0, \"cdkAutosizeMaxRows\", \"maxRows\"],\n enabled: [2, \"cdkTextareaAutosize\", \"enabled\", booleanAttribute],\n placeholder: \"placeholder\"\n },\n exportAs: [\"cdkTextareaAutosize\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return CdkTextareaAutosize;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TextFieldModule = /*#__PURE__*/(() => {\n class TextFieldModule {\n static {\n this.ɵfac = function TextFieldModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TextFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TextFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return TextFieldModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutofillMonitor, CdkAutofill, CdkTextareaAutosize, TextFieldModule };\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/text-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Self, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport * as i3 from '@angular/material/core';\nimport { _ErrorStateTracker, MatCommonModule } from '@angular/material/core';\nimport * as i5 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nexport { MatError, MatFormField, MatHint, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n\n/** @docs-private */\nfunction getMatInputUnsupportedTypeError(type) {\n return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nconst MAT_INPUT_VALUE_ACCESSOR = /*#__PURE__*/new InjectionToken('MAT_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit'];\nlet nextUniqueId = 0;\nlet MatInput = /*#__PURE__*/(() => {\n class MatInput {\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Input type of the element. */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value || 'text';\n this._validateType();\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n this._elementRef.nativeElement.type = this._type;\n }\n this._ensureWheelDefaultBehavior();\n }\n /** An object used to control when error messages are shown. */\n get errorStateMatcher() {\n return this._errorStateTracker.matcher;\n }\n set errorStateMatcher(value) {\n this._errorStateTracker.matcher = value;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._inputValueAccessor.value;\n }\n set value(value) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n /** Whether the element is readonly. */\n get readonly() {\n return this._readonly;\n }\n set readonly(value) {\n this._readonly = coerceBooleanProperty(value);\n }\n /** Whether the input is in an error state. */\n get errorState() {\n return this._errorStateTracker.errorState;\n }\n set errorState(value) {\n this._errorStateTracker.errorState = value;\n }\n constructor(_elementRef, _platform, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, _autofillMonitor, _ngZone,\n // TODO: Remove this once the legacy appearance has been removed. We only need\n // to inject the form field for determining whether the placeholder has been promoted.\n _formField) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this.ngControl = ngControl;\n this._autofillMonitor = _autofillMonitor;\n this._ngZone = _ngZone;\n this._formField = _formField;\n this._uid = `mat-input-${nextUniqueId++}`;\n this._webkitBlinkWheelListenerAttached = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.focused = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-input';\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.autofilled = false;\n this._disabled = false;\n this._type = 'text';\n this._readonly = false;\n this._neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter(t => getSupportedInputTypes().has(t));\n this._iOSKeyupListener = event => {\n const el = event.target;\n // Note: We specifically check for 0, rather than `!el.selectionStart`, because the two\n // indicate different things. If the value is 0, it means that the caret is at the start\n // of the input, whereas a value of `null` means that the input doesn't support\n // manipulating the selection range. Inputs that don't support setting the selection range\n // will throw an error so we want to avoid calling `setSelectionRange` on them. See:\n // https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n if (!el.value && el.selectionStart === 0 && el.selectionEnd === 0) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n };\n this._webkitBlinkWheelListener = () => {\n // This is a noop function and is used to enable mouse wheel input\n // on number inputs\n // on blink and webkit browsers.\n };\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n this._previousNativeValue = this.value;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n _ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', this._iOSKeyupListener);\n });\n }\n this._errorStateTracker = new _ErrorStateTracker(defaultErrorStateMatcher, ngControl, parentFormGroup, parentForm, this.stateChanges);\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n this._isInFormField = !!_formField;\n if (this._isNativeSelect) {\n this.controlType = element.multiple ? 'mat-native-select-multiple' : 'mat-native-select';\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(event => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n ngOnChanges() {\n this.stateChanges.next();\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n if (this._platform.IOS) {\n this._elementRef.nativeElement.removeEventListener('keyup', this._iOSKeyupListener);\n }\n if (this._webkitBlinkWheelListenerAttached) {\n this._elementRef.nativeElement.removeEventListener('wheel', this._webkitBlinkWheelListener);\n }\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n // Since the input isn't a `ControlValueAccessor`, we don't have a good way of knowing when\n // the disabled state has changed. We can't use the `ngControl.statusChanges`, because it\n // won't fire if the input is disabled with `emitEvents = false`, despite the input becoming\n // disabled.\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n this.disabled = this.ngControl.disabled;\n this.stateChanges.next();\n }\n }\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n // We need to dirty-check and set the placeholder attribute ourselves, because whether it's\n // present or not depends on a query which is prone to \"changed after checked\" errors.\n this._dirtyCheckPlaceholder();\n }\n /** Focuses the input. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Refreshes the error state of the input. */\n updateErrorState() {\n this._errorStateTracker.updateErrorState();\n }\n /** Callback for the cases where the focused state of the input changes. */\n _focusChanged(isFocused) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n _onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n /** Does some manual dirty checking on the native input `value` property. */\n _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n /** Does some manual dirty checking on the native input `placeholder` attribute. */\n _dirtyCheckPlaceholder() {\n const placeholder = this._getPlaceholder();\n if (placeholder !== this._previousPlaceholder) {\n const element = this._elementRef.nativeElement;\n this._previousPlaceholder = placeholder;\n placeholder ? element.setAttribute('placeholder', placeholder) : element.removeAttribute('placeholder');\n }\n }\n /** Gets the current placeholder of the form field. */\n _getPlaceholder() {\n return this.placeholder || null;\n }\n /** Make sure the input is a supported type. */\n _validateType() {\n if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatInputUnsupportedTypeError(this._type);\n }\n }\n /** Checks whether the input type is one of the types that are never empty. */\n _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n /** Checks whether the input is invalid based on the native validation. */\n _isBadInput() {\n // The `validity` property won't be present on platform-server.\n let validity = this._elementRef.nativeElement.validity;\n return validity && validity.badInput;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement;\n const firstOption = selectElement.options[0];\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label);\n } else {\n return this.focused || !this.empty;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n /** Whether the form control is a native select that is displayed inline. */\n _isInlineSelect() {\n const element = this._elementRef.nativeElement;\n return this._isNativeSelect && (element.multiple || element.size > 1);\n }\n /**\n * In blink and webkit browsers a focused number input does not increment or decrement its value\n * on mouse wheel interaction unless a wheel event listener is attached to it or one of its ancestors or a passive wheel listener is attached somewhere in the DOM.\n * For example: Hitting a tooltip once enables the mouse wheel input for all number inputs as long as it exists.\n * In order to get reliable and intuitive behavior we apply a wheel event on our own\n * thus making sure increment and decrement by mouse wheel works every time.\n * @docs-private\n */\n _ensureWheelDefaultBehavior() {\n if (!this._webkitBlinkWheelListenerAttached && this._type === 'number' && (this._platform.BLINK || this._platform.WEBKIT)) {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('wheel', this._webkitBlinkWheelListener);\n });\n this._webkitBlinkWheelListenerAttached = true;\n }\n if (this._webkitBlinkWheelListenerAttached && this._type !== 'number') {\n this._elementRef.nativeElement.removeEventListener('wheel', this._webkitBlinkWheelListener);\n this._webkitBlinkWheelListenerAttached = true;\n }\n }\n static {\n this.ɵfac = function MatInput_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i2.NgControl, 10), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(MAT_INPUT_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(i4.AutofillMonitor), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatInput,\n selectors: [[\"input\", \"matInput\", \"\"], [\"textarea\", \"matInput\", \"\"], [\"select\", \"matNativeControl\", \"\"], [\"input\", \"matNativeControl\", \"\"], [\"textarea\", \"matNativeControl\", \"\"]],\n hostAttrs: [1, \"mat-mdc-input-element\"],\n hostVars: 18,\n hostBindings: function MatInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatInput_focus_HostBindingHandler() {\n return ctx._focusChanged(true);\n })(\"blur\", function MatInput_blur_HostBindingHandler() {\n return ctx._focusChanged(false);\n })(\"input\", function MatInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id)(\"disabled\", ctx.disabled)(\"required\", ctx.required);\n i0.ɵɵattribute(\"name\", ctx.name || null)(\"readonly\", ctx.readonly && !ctx._isNativeSelect || null)(\"aria-invalid\", ctx.empty && ctx.required ? null : ctx.errorState)(\"aria-required\", ctx.required)(\"id\", ctx.id);\n i0.ɵɵclassProp(\"mat-input-server\", ctx._isServer)(\"mat-mdc-form-field-textarea-control\", ctx._isInFormField && ctx._isTextarea)(\"mat-mdc-form-field-input-control\", ctx._isInFormField)(\"mdc-text-field__input\", ctx._isInFormField)(\"mat-mdc-native-select-inline\", ctx._isInlineSelect());\n }\n },\n inputs: {\n disabled: \"disabled\",\n id: \"id\",\n placeholder: \"placeholder\",\n name: \"name\",\n required: \"required\",\n type: \"type\",\n errorStateMatcher: \"errorStateMatcher\",\n userAriaDescribedBy: [0, \"aria-describedby\", \"userAriaDescribedBy\"],\n value: \"value\",\n readonly: \"readonly\"\n },\n exportAs: [\"matInput\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatInput;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatInputModule = /*#__PURE__*/(() => {\n class MatInputModule {\n static {\n this.ɵfac = function MatInputModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatInputModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatInputModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatFormFieldModule, MatFormFieldModule, TextFieldModule, MatCommonModule]\n });\n }\n }\n return MatInputModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputModule, getMatInputUnsupportedTypeError };\n","import * as i1 from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, booleanAttribute, Directive, Input, numberAttribute, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, NgModule } from '@angular/core';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatRippleLoader, MatCommonModule, MatRippleModule } from '@angular/material/core';\n\n/** Injection token that can be used to provide the default options the button component. */\nconst _c0 = [\"mat-button\", \"\"];\nconst _c1 = [[[\"\", 8, \"material-icons\", 3, \"iconPositionEnd\", \"\"], [\"mat-icon\", 3, \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", 3, \"iconPositionEnd\", \"\"]], \"*\", [[\"\", \"iconPositionEnd\", \"\", 8, \"material-icons\"], [\"mat-icon\", \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", \"iconPositionEnd\", \"\"]]];\nconst _c2 = [\".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])\", \"*\", \".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]\"];\nconst _c3 = \".mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}\";\nconst _c4 = \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\";\nconst _c5 = [\"mat-fab\", \"\"];\nconst _c6 = [\"mat-mini-fab\", \"\"];\nconst _c7 = \".mat-mdc-fab-base{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-app-corner-large));color:var(--mat-fab-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color)}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color);background-color:var(--mat-fab-disabled-state-container-color)}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-app-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color)}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-mini-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color);background-color:var(--mat-fab-small-disabled-state-container-color)}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-app-level3));height:var(--mdc-extended-fab-container-height);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-app-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-app-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\";\nconst _c8 = [\"mat-icon-button\", \"\"];\nconst _c9 = [\"*\"];\nconst _c10 = \".mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 48px);height:var(--mdc-icon-button-state-layer-size, 48px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 48px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size);color:var(--mdc-icon-button-icon-color, var(--mat-app-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color)}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\";\nconst MAT_BUTTON_CONFIG = /*#__PURE__*/new InjectionToken('MAT_BUTTON_CONFIG');\n/** Shared host configuration for all buttons */\nconst MAT_BUTTON_HOST = {\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': '_getAriaDisabled()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true',\n '[class]': 'color ? \"mat-\" + color : \"\"'\n};\n/** List of classes to add to buttons instances based on host attribute selector. */\nconst HOST_SELECTOR_MDC_CLASS_PAIR = [{\n attribute: 'mat-button',\n mdcClasses: ['mdc-button', 'mat-mdc-button']\n}, {\n attribute: 'mat-flat-button',\n mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n}, {\n attribute: 'mat-raised-button',\n mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button']\n}, {\n attribute: 'mat-stroked-button',\n mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button']\n}, {\n attribute: 'mat-fab',\n mdcClasses: ['mdc-fab', 'mat-mdc-fab-base', 'mat-mdc-fab']\n}, {\n attribute: 'mat-mini-fab',\n mdcClasses: ['mdc-fab', 'mat-mdc-fab-base', 'mdc-fab--mini', 'mat-mdc-mini-fab']\n}, {\n attribute: 'mat-icon-button',\n mdcClasses: ['mdc-icon-button', 'mat-mdc-icon-button']\n}];\n/** Base class for all buttons. */\nlet MatButtonBase = /*#__PURE__*/(() => {\n class MatButtonBase {\n /**\n * Reference to the MatRipple instance of the button.\n * @deprecated Considered an implementation detail. To be removed.\n * @breaking-change 17.0.0\n */\n get ripple() {\n return this._rippleLoader?.getRipple(this._elementRef.nativeElement);\n }\n set ripple(v) {\n this._rippleLoader?.attachRipple(this._elementRef.nativeElement, v);\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = value;\n this._updateRippleDisabled();\n }\n /** Whether the button is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this._updateRippleDisabled();\n }\n constructor(_elementRef, _platform, _ngZone, _animationMode) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._focusMonitor = inject(FocusMonitor);\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n this._rippleLoader = inject(MatRippleLoader);\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n this._isFab = false;\n this._disableRipple = false;\n this._disabled = false;\n const config = inject(MAT_BUTTON_CONFIG, {\n optional: true\n });\n const element = _elementRef.nativeElement;\n const classList = element.classList;\n this.disabledInteractive = config?.disabledInteractive ?? false;\n this.color = config?.color ?? null;\n this._rippleLoader?.configureRipple(element, {\n className: 'mat-mdc-button-ripple'\n });\n // For each of the variant selectors that is present in the button's host\n // attributes, add the correct corresponding MDC classes.\n for (const {\n attribute,\n mdcClasses\n } of HOST_SELECTOR_MDC_CLASS_PAIR) {\n if (element.hasAttribute(attribute)) {\n classList.add(...mdcClasses);\n }\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n /** Focuses the button. */\n focus(origin = 'program', options) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n _getAriaDisabled() {\n if (this.ariaDisabled != null) {\n return this.ariaDisabled;\n }\n return this.disabled && this.disabledInteractive ? true : null;\n }\n _getDisabledAttribute() {\n return this.disabledInteractive || !this.disabled ? null : true;\n }\n _updateRippleDisabled() {\n this._rippleLoader?.setDisabled(this._elementRef.nativeElement, this.disableRipple || this.disabled);\n }\n static {\n this.ɵfac = function MatButtonBase_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatButtonBase,\n inputs: {\n color: \"color\",\n disableRipple: [2, \"disableRipple\", \"disableRipple\", booleanAttribute],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n ariaDisabled: [2, \"aria-disabled\", \"ariaDisabled\", booleanAttribute],\n disabledInteractive: [2, \"disabledInteractive\", \"disabledInteractive\", booleanAttribute]\n },\n features: [i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return MatButtonBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Shared host configuration for buttons using the `<a>` tag. */\nconst MAT_ANCHOR_HOST = {\n '[attr.disabled]': '_getDisabledAttribute()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `mat-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n '[attr.tabindex]': 'disabled && !disabledInteractive ? -1 : tabIndex',\n '[attr.aria-disabled]': '_getDisabledAttribute()',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true',\n '[class]': 'color ? \"mat-\" + color : \"\"'\n};\n/**\n * Anchor button base.\n */\nlet MatAnchorBase = /*#__PURE__*/(() => {\n class MatAnchorBase extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._haltDisabledEvents = event => {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n }\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n _getAriaDisabled() {\n return this.ariaDisabled == null ? this.disabled : this.ariaDisabled;\n }\n static {\n this.ɵfac = function MatAnchorBase_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAnchorBase,\n inputs: {\n tabIndex: [2, \"tabIndex\", \"tabIndex\", value => {\n return value == null ? undefined : numberAttribute(value);\n }]\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatAnchorBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Material Design button component. Users interact with a button to perform an action.\n * See https://material.io/components/buttons\n *\n * The `MatButton` class applies to native button elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatButton` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nlet MatButton = /*#__PURE__*/(() => {\n class MatButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatButton,\n selectors: [[\"button\", \"mat-button\", \"\"], [\"button\", \"mat-raised-button\", \"\"], [\"button\", \"mat-flat-button\", \"\"], [\"button\", \"mat-stroked-button\", \"\"]],\n hostVars: 14,\n hostBindings: function MatButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design button component for anchor elements. Anchor elements are used to provide\n * links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons\n *\n * The `MatAnchor` class applies to native anchor elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatAnchor` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nlet MatAnchor = /*#__PURE__*/(() => {\n class MatAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatAnchor,\n selectors: [[\"a\", \"mat-button\", \"\"], [\"a\", \"mat-raised-button\", \"\"], [\"a\", \"mat-flat-button\", \"\"], [\"a\", \"mat-stroked-button\", \"\"]],\n hostVars: 15,\n hostBindings: function MatAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c3, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token to be used to override the default options for FAB. */\nconst MAT_FAB_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-mdc-fab-default-options', {\n providedIn: 'root',\n factory: MAT_FAB_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_FAB_DEFAULT_OPTIONS_FACTORY() {\n return {\n // The FAB by default has its color set to accent.\n color: 'accent'\n };\n}\n// Default FAB configuration.\nconst defaults = /*#__PURE__*/MAT_FAB_DEFAULT_OPTIONS_FACTORY();\n/**\n * Material Design floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabButton` class has two appearances: normal and extended.\n */\nlet MatFabButton = /*#__PURE__*/(() => {\n class MatFabButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabButton,\n selectors: [[\"button\", \"mat-fab\", \"\"]],\n hostVars: 18,\n hostBindings: function MatFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n extended: [2, \"extended\", \"extended\", booleanAttribute]\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mat-mdc-fab-base{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-app-corner-large));color:var(--mat-fab-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color)}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color);background-color:var(--mat-fab-disabled-state-container-color)}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-app-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color)}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-mini-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color);background-color:var(--mat-fab-small-disabled-state-container-color)}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-app-level3));height:var(--mdc-extended-fab-container-height);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-app-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-app-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFabButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design mini floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n */\nlet MatMiniFabButton = /*#__PURE__*/(() => {\n class MatMiniFabButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMiniFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabButton,\n selectors: [[\"button\", \"mat-mini-fab\", \"\"]],\n hostVars: 14,\n hostBindings: function MatMiniFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMiniFabButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabAnchor` class has two appearances: normal and extended.\n */\nlet MatFabAnchor = /*#__PURE__*/(() => {\n class MatFabAnchor extends MatAnchor {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabAnchor,\n selectors: [[\"a\", \"mat-fab\", \"\"]],\n hostVars: 19,\n hostBindings: function MatFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n extended: [2, \"extended\", \"extended\", booleanAttribute]\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFabAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n */\nlet MatMiniFabAnchor = /*#__PURE__*/(() => {\n class MatMiniFabAnchor extends MatAnchor {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMiniFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabAnchor,\n selectors: [[\"a\", \"mat-mini-fab\", \"\"]],\n hostVars: 15,\n hostBindings: function MatMiniFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMiniFabAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nlet MatIconButton = /*#__PURE__*/(() => {\n class MatIconButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {\n centered: true\n });\n }\n static {\n this.ɵfac = function MatIconButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconButton,\n selectors: [[\"button\", \"mat-icon-button\", \"\"]],\n hostVars: 14,\n hostBindings: function MatIconButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c8,\n ngContentSelectors: _c9,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-mdc-button-persistent-ripple\", \"mdc-icon-button__ripple\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n },\n styles: [\".mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 48px);height:var(--mdc-icon-button-state-layer-size, 48px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 48px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size);color:var(--mdc-icon-button-icon-color, var(--mat-app-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color)}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\", _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatIconButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nlet MatIconAnchor = /*#__PURE__*/(() => {\n class MatIconAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatIconAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconAnchor,\n selectors: [[\"a\", \"mat-icon-button\", \"\"]],\n hostVars: 15,\n hostBindings: function MatIconAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c8,\n ngContentSelectors: _c9,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-mdc-button-persistent-ripple\", \"mdc-icon-button__ripple\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n },\n styles: [_c10, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatIconAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatButtonModule = /*#__PURE__*/(() => {\n class MatButtonModule {\n static {\n this.ɵfac = function MatButtonModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatButtonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatButtonModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatRippleModule, MatCommonModule]\n });\n }\n }\n return MatButtonModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_BUTTON_CONFIG, MAT_FAB_DEFAULT_OPTIONS, MAT_FAB_DEFAULT_OPTIONS_FACTORY, MatAnchor, MatButton, MatButtonModule, MatFabAnchor, MatFabButton, MatIconAnchor, MatIconButton, MatMiniFabAnchor, MatMiniFabButton };\n","import { CdkMonitorFocus, CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/overlay';\nimport { Overlay, FlexibleConnectedPositionStrategy, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal, CdkPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { NgClass, DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, EventEmitter, Injector, afterNextRender, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, Optional, SkipSelf, InjectionToken, Inject, ViewChild, forwardRef, ChangeDetectorRef, booleanAttribute, Directive, signal, Attribute, ContentChild, Self, TemplateRef, NgModule } from '@angular/core';\nimport { MatButton, MatIconButton, MatButtonModule } from '@angular/material/button';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i1 from '@angular/material/core';\nimport { DateAdapter, MAT_DATE_FORMATS, _ErrorStateTracker, MatCommonModule } from '@angular/material/core';\nimport { Subject, Subscription, merge, of } from 'rxjs';\nimport { ESCAPE, hasModifierKey, SPACE, ENTER, PAGE_DOWN, PAGE_UP, END, HOME, DOWN_ARROW, UP_ARROW, RIGHT_ARROW, LEFT_ARROW, BACKSPACE } from '@angular/cdk/keycodes';\nimport * as i2 from '@angular/cdk/bidi';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { normalizePassiveListenerOptions, Platform, _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { startWith, take, filter } from 'rxjs/operators';\nimport { coerceStringArray } from '@angular/cdk/coercion';\nimport { trigger, transition, animate, keyframes, style, state } from '@angular/animations';\nimport * as i2$1 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators, NgControl } from '@angular/forms';\nimport { MAT_FORM_FIELD, MatFormFieldControl } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\n\n/** @docs-private */\nconst _c0 = [\"mat-calendar-body\", \"\"];\nfunction _forTrack0($index, $item) {\n return this._trackRow($item);\n}\nconst _forTrack1 = ($index, $item) => $item.id;\nfunction MatCalendarBody_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 0)(1, \"td\", 3);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"padding-top\", ctx_r0._cellPadding)(\"padding-bottom\", ctx_r0._cellPadding);\n i0.ɵɵattribute(\"colspan\", ctx_r0.numCols);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.label, \" \");\n }\n}\nfunction MatCalendarBody_For_2_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleProp(\"padding-top\", ctx_r0._cellPadding)(\"padding-bottom\", ctx_r0._cellPadding);\n i0.ɵɵattribute(\"colspan\", ctx_r0._firstRowOffset);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0._firstRowOffset >= ctx_r0.labelMinRequiredCells ? ctx_r0.label : \"\", \" \");\n }\n}\nfunction MatCalendarBody_For_2_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\", 6)(1, \"button\", 7);\n i0.ɵɵlistener(\"click\", function MatCalendarBody_For_2_For_3_Template_button_click_1_listener($event) {\n const item_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0._cellClicked(item_r3, $event));\n })(\"focus\", function MatCalendarBody_For_2_For_3_Template_button_focus_1_listener($event) {\n const item_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0._emitActiveDateChange(item_r3, $event));\n });\n i0.ɵɵelementStart(2, \"span\", 8);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"span\", 9);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r3 = ctx.$implicit;\n const ɵ$index_14_r4 = ctx.$index;\n const ɵ$index_7_r5 = i0.ɵɵnextContext().$index;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", ctx_r0._cellWidth)(\"padding-top\", ctx_r0._cellPadding)(\"padding-bottom\", ctx_r0._cellPadding);\n i0.ɵɵattribute(\"data-mat-row\", ɵ$index_7_r5)(\"data-mat-col\", ɵ$index_14_r4);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-calendar-body-disabled\", !item_r3.enabled)(\"mat-calendar-body-active\", ctx_r0._isActiveCell(ɵ$index_7_r5, ɵ$index_14_r4))(\"mat-calendar-body-range-start\", ctx_r0._isRangeStart(item_r3.compareValue))(\"mat-calendar-body-range-end\", ctx_r0._isRangeEnd(item_r3.compareValue))(\"mat-calendar-body-in-range\", ctx_r0._isInRange(item_r3.compareValue))(\"mat-calendar-body-comparison-bridge-start\", ctx_r0._isComparisonBridgeStart(item_r3.compareValue, ɵ$index_7_r5, ɵ$index_14_r4))(\"mat-calendar-body-comparison-bridge-end\", ctx_r0._isComparisonBridgeEnd(item_r3.compareValue, ɵ$index_7_r5, ɵ$index_14_r4))(\"mat-calendar-body-comparison-start\", ctx_r0._isComparisonStart(item_r3.compareValue))(\"mat-calendar-body-comparison-end\", ctx_r0._isComparisonEnd(item_r3.compareValue))(\"mat-calendar-body-in-comparison-range\", ctx_r0._isInComparisonRange(item_r3.compareValue))(\"mat-calendar-body-preview-start\", ctx_r0._isPreviewStart(item_r3.compareValue))(\"mat-calendar-body-preview-end\", ctx_r0._isPreviewEnd(item_r3.compareValue))(\"mat-calendar-body-in-preview\", ctx_r0._isInPreview(item_r3.compareValue));\n i0.ɵɵproperty(\"ngClass\", item_r3.cssClasses)(\"tabindex\", ctx_r0._isActiveCell(ɵ$index_7_r5, ɵ$index_14_r4) ? 0 : -1);\n i0.ɵɵattribute(\"aria-label\", item_r3.ariaLabel)(\"aria-disabled\", !item_r3.enabled || null)(\"aria-pressed\", ctx_r0._isSelected(item_r3.compareValue))(\"aria-current\", ctx_r0.todayValue === item_r3.compareValue ? \"date\" : null)(\"aria-describedby\", ctx_r0._getDescribedby(item_r3.compareValue));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-calendar-body-selected\", ctx_r0._isSelected(item_r3.compareValue))(\"mat-calendar-body-comparison-identical\", ctx_r0._isComparisonIdentical(item_r3.compareValue))(\"mat-calendar-body-today\", ctx_r0.todayValue === item_r3.compareValue);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", item_r3.displayValue, \" \");\n }\n}\nfunction MatCalendarBody_For_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 1);\n i0.ɵɵtemplate(1, MatCalendarBody_For_2_Conditional_1_Template, 2, 6, \"td\", 4);\n i0.ɵɵrepeaterCreate(2, MatCalendarBody_For_2_For_3_Template, 5, 48, \"td\", 5, _forTrack1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const row_r6 = ctx.$implicit;\n const ɵ$index_7_r5 = ctx.$index;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(ɵ$index_7_r5 === 0 && ctx_r0._firstRowOffset ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(row_r6);\n }\n}\nfunction MatMonthView_For_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 2)(1, \"span\", 6);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const day_r1 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(day_r1.long);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(day_r1.narrow);\n }\n}\nconst _c1 = [\"*\"];\nfunction MatCalendar_ng_template_0_Template(rf, ctx) {}\nfunction MatCalendar_Case_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-month-view\", 4);\n i0.ɵɵtwoWayListener(\"activeDateChange\", function MatCalendar_Case_2_Template_mat_month_view_activeDateChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.activeDate, $event) || (ctx_r1.activeDate = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"_userSelection\", function MatCalendar_Case_2_Template_mat_month_view__userSelection_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._dateSelected($event));\n })(\"dragStarted\", function MatCalendar_Case_2_Template_mat_month_view_dragStarted_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._dragStarted($event));\n })(\"dragEnded\", function MatCalendar_Case_2_Template_mat_month_view_dragEnded_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._dragEnded($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayProperty(\"activeDate\", ctx_r1.activeDate);\n i0.ɵɵproperty(\"selected\", ctx_r1.selected)(\"dateFilter\", ctx_r1.dateFilter)(\"maxDate\", ctx_r1.maxDate)(\"minDate\", ctx_r1.minDate)(\"dateClass\", ctx_r1.dateClass)(\"comparisonStart\", ctx_r1.comparisonStart)(\"comparisonEnd\", ctx_r1.comparisonEnd)(\"startDateAccessibleName\", ctx_r1.startDateAccessibleName)(\"endDateAccessibleName\", ctx_r1.endDateAccessibleName)(\"activeDrag\", ctx_r1._activeDrag);\n }\n}\nfunction MatCalendar_Case_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-year-view\", 5);\n i0.ɵɵtwoWayListener(\"activeDateChange\", function MatCalendar_Case_3_Template_mat_year_view_activeDateChange_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.activeDate, $event) || (ctx_r1.activeDate = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"monthSelected\", function MatCalendar_Case_3_Template_mat_year_view_monthSelected_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._monthSelectedInYearView($event));\n })(\"selectedChange\", function MatCalendar_Case_3_Template_mat_year_view_selectedChange_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._goToDateInView($event, \"month\"));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayProperty(\"activeDate\", ctx_r1.activeDate);\n i0.ɵɵproperty(\"selected\", ctx_r1.selected)(\"dateFilter\", ctx_r1.dateFilter)(\"maxDate\", ctx_r1.maxDate)(\"minDate\", ctx_r1.minDate)(\"dateClass\", ctx_r1.dateClass);\n }\n}\nfunction MatCalendar_Case_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-multi-year-view\", 6);\n i0.ɵɵtwoWayListener(\"activeDateChange\", function MatCalendar_Case_4_Template_mat_multi_year_view_activeDateChange_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.activeDate, $event) || (ctx_r1.activeDate = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"yearSelected\", function MatCalendar_Case_4_Template_mat_multi_year_view_yearSelected_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._yearSelectedInMultiYearView($event));\n })(\"selectedChange\", function MatCalendar_Case_4_Template_mat_multi_year_view_selectedChange_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._goToDateInView($event, \"year\"));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayProperty(\"activeDate\", ctx_r1.activeDate);\n i0.ɵɵproperty(\"selected\", ctx_r1.selected)(\"dateFilter\", ctx_r1.dateFilter)(\"maxDate\", ctx_r1.maxDate)(\"minDate\", ctx_r1.minDate)(\"dateClass\", ctx_r1.dateClass);\n }\n}\nfunction MatDatepickerContent_ng_template_2_Template(rf, ctx) {}\nconst _c2 = [\"button\"];\nconst _c3 = [[[\"\", \"matDatepickerToggleIcon\", \"\"]]];\nconst _c4 = [\"[matDatepickerToggleIcon]\"];\nfunction MatDatepickerToggle_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 2);\n i0.ɵɵelement(1, \"path\", 3);\n i0.ɵɵelementEnd();\n }\n}\nconst _c5 = [[[\"input\", \"matStartDate\", \"\"]], [[\"input\", \"matEndDate\", \"\"]]];\nconst _c6 = [\"input[matStartDate]\", \"input[matEndDate]\"];\nfunction MatDatepickerActions_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n}\nfunction createMissingDateImplError(provider) {\n return Error(`MatDatepicker: No provider found for ${provider}. You must add one of the following ` + `to your app config: provideNativeDateAdapter, provideDateFnsAdapter, ` + `provideLuxonDateAdapter, provideMomentDateAdapter, or provide a custom implementation.`);\n}\n\n/** Datepicker data that requires internationalization. */\nlet MatDatepickerIntl = /*#__PURE__*/(() => {\n class MatDatepickerIntl {\n constructor() {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n this.changes = new Subject();\n /** A label for the calendar popup (used by screen readers). */\n this.calendarLabel = 'Calendar';\n /** A label for the button used to open the calendar popup (used by screen readers). */\n this.openCalendarLabel = 'Open calendar';\n /** Label for the button used to close the calendar popup. */\n this.closeCalendarLabel = 'Close calendar';\n /** A label for the previous month button (used by screen readers). */\n this.prevMonthLabel = 'Previous month';\n /** A label for the next month button (used by screen readers). */\n this.nextMonthLabel = 'Next month';\n /** A label for the previous year button (used by screen readers). */\n this.prevYearLabel = 'Previous year';\n /** A label for the next year button (used by screen readers). */\n this.nextYearLabel = 'Next year';\n /** A label for the previous multi-year button (used by screen readers). */\n this.prevMultiYearLabel = 'Previous 24 years';\n /** A label for the next multi-year button (used by screen readers). */\n this.nextMultiYearLabel = 'Next 24 years';\n /** A label for the 'switch to month view' button (used by screen readers). */\n this.switchToMonthViewLabel = 'Choose date';\n /** A label for the 'switch to year view' button (used by screen readers). */\n this.switchToMultiYearViewLabel = 'Choose month and year';\n /**\n * A label for the first date of a range of dates (used by screen readers).\n * @deprecated Provide your own internationalization string.\n * @breaking-change 17.0.0\n */\n this.startDateLabel = 'Start date';\n /**\n * A label for the last date of a range of dates (used by screen readers).\n * @deprecated Provide your own internationalization string.\n * @breaking-change 17.0.0\n */\n this.endDateLabel = 'End date';\n }\n /** Formats a range of years (used for visuals). */\n formatYearRange(start, end) {\n return `${start} \\u2013 ${end}`;\n }\n /** Formats a label for a range of years (used by screen readers). */\n formatYearRangeLabel(start, end) {\n return `${start} to ${end}`;\n }\n static {\n this.ɵfac = function MatDatepickerIntl_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerIntl)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatDatepickerIntl,\n factory: MatDatepickerIntl.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return MatDatepickerIntl;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet uniqueIdCounter$1 = 0;\n/**\n * An internal class that represents the data corresponding to a single calendar cell.\n * @docs-private\n */\nclass MatCalendarCell {\n constructor(value, displayValue, ariaLabel, enabled, cssClasses = {}, compareValue = value, rawValue) {\n this.value = value;\n this.displayValue = displayValue;\n this.ariaLabel = ariaLabel;\n this.enabled = enabled;\n this.cssClasses = cssClasses;\n this.compareValue = compareValue;\n this.rawValue = rawValue;\n this.id = uniqueIdCounter$1++;\n }\n}\nlet calendarBodyId = 1;\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: false,\n capture: true\n});\n/** Event options that can be used to bind a passive, capturing event. */\nconst passiveCapturingEventOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true,\n capture: true\n});\n/** Event options that can be used to bind a passive, non-capturing event. */\nconst passiveEventOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * An internal component used to display calendar data in a table.\n * @docs-private\n */\nlet MatCalendarBody = /*#__PURE__*/(() => {\n class MatCalendarBody {\n ngAfterViewChecked() {\n if (this._focusActiveCellAfterViewChecked) {\n this._focusActiveCell();\n this._focusActiveCellAfterViewChecked = false;\n }\n }\n constructor(_elementRef, _ngZone) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._platform = inject(Platform);\n /**\n * Used to focus the active cell after change detection has run.\n */\n this._focusActiveCellAfterViewChecked = false;\n /** The number of columns in the table. */\n this.numCols = 7;\n /** The cell number of the active cell in the table. */\n this.activeCell = 0;\n /** Whether a range is being selected. */\n this.isRange = false;\n /**\n * The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be\n * maintained even as the table resizes.\n */\n this.cellAspectRatio = 1;\n /** Start of the preview range. */\n this.previewStart = null;\n /** End of the preview range. */\n this.previewEnd = null;\n /** Emits when a new value is selected. */\n this.selectedValueChange = new EventEmitter();\n /** Emits when the preview has changed as a result of a user action. */\n this.previewChange = new EventEmitter();\n this.activeDateChange = new EventEmitter();\n /** Emits the date at the possible start of a drag event. */\n this.dragStarted = new EventEmitter();\n /** Emits the date at the conclusion of a drag, or null if mouse was not released on a date. */\n this.dragEnded = new EventEmitter();\n this._didDragSinceMouseDown = false;\n this._injector = inject(Injector);\n /**\n * Tracking function for rows based on their identity. Ideally we would use some sort of\n * key on the row, but that would require a breaking change for the `rows` input. We don't\n * use the built-in identity tracking, because it logs warnings.\n */\n this._trackRow = row => row;\n /**\n * Event handler for when the user enters an element\n * inside the calendar body (e.g. by hovering in or focus).\n */\n this._enterHandler = event => {\n if (this._skipNextFocus && event.type === 'focus') {\n this._skipNextFocus = false;\n return;\n }\n // We only need to hit the zone when we're selecting a range.\n if (event.target && this.isRange) {\n const cell = this._getCellFromElement(event.target);\n if (cell) {\n this._ngZone.run(() => this.previewChange.emit({\n value: cell.enabled ? cell : null,\n event\n }));\n }\n }\n };\n this._touchmoveHandler = event => {\n if (!this.isRange) return;\n const target = getActualTouchTarget(event);\n const cell = target ? this._getCellFromElement(target) : null;\n if (target !== event.target) {\n this._didDragSinceMouseDown = true;\n }\n // If the initial target of the touch is a date cell, prevent default so\n // that the move is not handled as a scroll.\n if (getCellElement(event.target)) {\n event.preventDefault();\n }\n this._ngZone.run(() => this.previewChange.emit({\n value: cell?.enabled ? cell : null,\n event\n }));\n };\n /**\n * Event handler for when the user's pointer leaves an element\n * inside the calendar body (e.g. by hovering out or blurring).\n */\n this._leaveHandler = event => {\n // We only need to hit the zone when we're selecting a range.\n if (this.previewEnd !== null && this.isRange) {\n if (event.type !== 'blur') {\n this._didDragSinceMouseDown = true;\n }\n // Only reset the preview end value when leaving cells. This looks better, because\n // we have a gap between the cells and the rows and we don't want to remove the\n // range just for it to show up again when the user moves a few pixels to the side.\n if (event.target && this._getCellFromElement(event.target) && !(event.relatedTarget && this._getCellFromElement(event.relatedTarget))) {\n this._ngZone.run(() => this.previewChange.emit({\n value: null,\n event\n }));\n }\n }\n };\n /**\n * Triggered on mousedown or touchstart on a date cell.\n * Respsonsible for starting a drag sequence.\n */\n this._mousedownHandler = event => {\n if (!this.isRange) return;\n this._didDragSinceMouseDown = false;\n // Begin a drag if a cell within the current range was targeted.\n const cell = event.target && this._getCellFromElement(event.target);\n if (!cell || !this._isInRange(cell.compareValue)) {\n return;\n }\n this._ngZone.run(() => {\n this.dragStarted.emit({\n value: cell.rawValue,\n event\n });\n });\n };\n /** Triggered on mouseup anywhere. Respsonsible for ending a drag sequence. */\n this._mouseupHandler = event => {\n if (!this.isRange) return;\n const cellElement = getCellElement(event.target);\n if (!cellElement) {\n // Mouseup happened outside of datepicker. Cancel drag.\n this._ngZone.run(() => {\n this.dragEnded.emit({\n value: null,\n event\n });\n });\n return;\n }\n if (cellElement.closest('.mat-calendar-body') !== this._elementRef.nativeElement) {\n // Mouseup happened inside a different month instance.\n // Allow it to handle the event.\n return;\n }\n this._ngZone.run(() => {\n const cell = this._getCellFromElement(cellElement);\n this.dragEnded.emit({\n value: cell?.rawValue ?? null,\n event\n });\n });\n };\n /** Triggered on touchend anywhere. Respsonsible for ending a drag sequence. */\n this._touchendHandler = event => {\n const target = getActualTouchTarget(event);\n if (target) {\n this._mouseupHandler({\n target\n });\n }\n };\n this._id = `mat-calendar-body-${calendarBodyId++}`;\n this._startDateLabelId = `${this._id}-start-date`;\n this._endDateLabelId = `${this._id}-end-date`;\n _ngZone.runOutsideAngular(() => {\n const element = _elementRef.nativeElement;\n // `touchmove` is active since we need to call `preventDefault`.\n element.addEventListener('touchmove', this._touchmoveHandler, activeCapturingEventOptions);\n element.addEventListener('mouseenter', this._enterHandler, passiveCapturingEventOptions);\n element.addEventListener('focus', this._enterHandler, passiveCapturingEventOptions);\n element.addEventListener('mouseleave', this._leaveHandler, passiveCapturingEventOptions);\n element.addEventListener('blur', this._leaveHandler, passiveCapturingEventOptions);\n element.addEventListener('mousedown', this._mousedownHandler, passiveEventOptions);\n element.addEventListener('touchstart', this._mousedownHandler, passiveEventOptions);\n if (this._platform.isBrowser) {\n window.addEventListener('mouseup', this._mouseupHandler);\n window.addEventListener('touchend', this._touchendHandler);\n }\n });\n }\n /** Called when a cell is clicked. */\n _cellClicked(cell, event) {\n // Ignore \"clicks\" that are actually canceled drags (eg the user dragged\n // off and then went back to this cell to undo).\n if (this._didDragSinceMouseDown) {\n return;\n }\n if (cell.enabled) {\n this.selectedValueChange.emit({\n value: cell.value,\n event\n });\n }\n }\n _emitActiveDateChange(cell, event) {\n if (cell.enabled) {\n this.activeDateChange.emit({\n value: cell.value,\n event\n });\n }\n }\n /** Returns whether a cell should be marked as selected. */\n _isSelected(value) {\n return this.startValue === value || this.endValue === value;\n }\n ngOnChanges(changes) {\n const columnChanges = changes['numCols'];\n const {\n rows,\n numCols\n } = this;\n if (changes['rows'] || columnChanges) {\n this._firstRowOffset = rows && rows.length && rows[0].length ? numCols - rows[0].length : 0;\n }\n if (changes['cellAspectRatio'] || columnChanges || !this._cellPadding) {\n this._cellPadding = `${50 * this.cellAspectRatio / numCols}%`;\n }\n if (columnChanges || !this._cellWidth) {\n this._cellWidth = `${100 / numCols}%`;\n }\n }\n ngOnDestroy() {\n const element = this._elementRef.nativeElement;\n element.removeEventListener('touchmove', this._touchmoveHandler, activeCapturingEventOptions);\n element.removeEventListener('mouseenter', this._enterHandler, passiveCapturingEventOptions);\n element.removeEventListener('focus', this._enterHandler, passiveCapturingEventOptions);\n element.removeEventListener('mouseleave', this._leaveHandler, passiveCapturingEventOptions);\n element.removeEventListener('blur', this._leaveHandler, passiveCapturingEventOptions);\n element.removeEventListener('mousedown', this._mousedownHandler, passiveEventOptions);\n element.removeEventListener('touchstart', this._mousedownHandler, passiveEventOptions);\n if (this._platform.isBrowser) {\n window.removeEventListener('mouseup', this._mouseupHandler);\n window.removeEventListener('touchend', this._touchendHandler);\n }\n }\n /** Returns whether a cell is active. */\n _isActiveCell(rowIndex, colIndex) {\n let cellNumber = rowIndex * this.numCols + colIndex;\n // Account for the fact that the first row may not have as many cells.\n if (rowIndex) {\n cellNumber -= this._firstRowOffset;\n }\n return cellNumber == this.activeCell;\n }\n /**\n * Focuses the active cell after the microtask queue is empty.\n *\n * Adding a 0ms setTimeout seems to fix Voiceover losing focus when pressing PageUp/PageDown\n * (issue #24330).\n *\n * Determined a 0ms by gradually increasing duration from 0 and testing two use cases with screen\n * reader enabled:\n *\n * 1. Pressing PageUp/PageDown repeatedly with pausing between each key press.\n * 2. Pressing and holding the PageDown key with repeated keys enabled.\n *\n * Test 1 worked roughly 95-99% of the time with 0ms and got a little bit better as the duration\n * increased. Test 2 got slightly better until the duration was long enough to interfere with\n * repeated keys. If the repeated key speed was faster than the timeout duration, then pressing\n * and holding pagedown caused the entire page to scroll.\n *\n * Since repeated key speed can verify across machines, determined that any duration could\n * potentially interfere with repeated keys. 0ms would be best because it almost entirely\n * eliminates the focus being lost in Voiceover (#24330) without causing unintended side effects.\n * Adding delay also complicates writing tests.\n */\n _focusActiveCell(movePreview = true) {\n afterNextRender(() => {\n setTimeout(() => {\n const activeCell = this._elementRef.nativeElement.querySelector('.mat-calendar-body-active');\n if (activeCell) {\n if (!movePreview) {\n this._skipNextFocus = true;\n }\n activeCell.focus();\n }\n });\n }, {\n injector: this._injector\n });\n }\n /** Focuses the active cell after change detection has run and the microtask queue is empty. */\n _scheduleFocusActiveCellAfterViewChecked() {\n this._focusActiveCellAfterViewChecked = true;\n }\n /** Gets whether a value is the start of the main range. */\n _isRangeStart(value) {\n return isStart(value, this.startValue, this.endValue);\n }\n /** Gets whether a value is the end of the main range. */\n _isRangeEnd(value) {\n return isEnd(value, this.startValue, this.endValue);\n }\n /** Gets whether a value is within the currently-selected range. */\n _isInRange(value) {\n return isInRange(value, this.startValue, this.endValue, this.isRange);\n }\n /** Gets whether a value is the start of the comparison range. */\n _isComparisonStart(value) {\n return isStart(value, this.comparisonStart, this.comparisonEnd);\n }\n /** Whether the cell is a start bridge cell between the main and comparison ranges. */\n _isComparisonBridgeStart(value, rowIndex, colIndex) {\n if (!this._isComparisonStart(value) || this._isRangeStart(value) || !this._isInRange(value)) {\n return false;\n }\n let previousCell = this.rows[rowIndex][colIndex - 1];\n if (!previousCell) {\n const previousRow = this.rows[rowIndex - 1];\n previousCell = previousRow && previousRow[previousRow.length - 1];\n }\n return previousCell && !this._isRangeEnd(previousCell.compareValue);\n }\n /** Whether the cell is an end bridge cell between the main and comparison ranges. */\n _isComparisonBridgeEnd(value, rowIndex, colIndex) {\n if (!this._isComparisonEnd(value) || this._isRangeEnd(value) || !this._isInRange(value)) {\n return false;\n }\n let nextCell = this.rows[rowIndex][colIndex + 1];\n if (!nextCell) {\n const nextRow = this.rows[rowIndex + 1];\n nextCell = nextRow && nextRow[0];\n }\n return nextCell && !this._isRangeStart(nextCell.compareValue);\n }\n /** Gets whether a value is the end of the comparison range. */\n _isComparisonEnd(value) {\n return isEnd(value, this.comparisonStart, this.comparisonEnd);\n }\n /** Gets whether a value is within the current comparison range. */\n _isInComparisonRange(value) {\n return isInRange(value, this.comparisonStart, this.comparisonEnd, this.isRange);\n }\n /**\n * Gets whether a value is the same as the start and end of the comparison range.\n * For context, the functions that we use to determine whether something is the start/end of\n * a range don't allow for the start and end to be on the same day, because we'd have to use\n * much more specific CSS selectors to style them correctly in all scenarios. This is fine for\n * the regular range, because when it happens, the selected styles take over and still show where\n * the range would've been, however we don't have these selected styles for a comparison range.\n * This function is used to apply a class that serves the same purpose as the one for selected\n * dates, but it only applies in the context of a comparison range.\n */\n _isComparisonIdentical(value) {\n // Note that we don't need to null check the start/end\n // here, because the `value` will always be defined.\n return this.comparisonStart === this.comparisonEnd && value === this.comparisonStart;\n }\n /** Gets whether a value is the start of the preview range. */\n _isPreviewStart(value) {\n return isStart(value, this.previewStart, this.previewEnd);\n }\n /** Gets whether a value is the end of the preview range. */\n _isPreviewEnd(value) {\n return isEnd(value, this.previewStart, this.previewEnd);\n }\n /** Gets whether a value is inside the preview range. */\n _isInPreview(value) {\n return isInRange(value, this.previewStart, this.previewEnd, this.isRange);\n }\n /** Gets ids of aria descriptions for the start and end of a date range. */\n _getDescribedby(value) {\n if (!this.isRange) {\n return null;\n }\n if (this.startValue === value && this.endValue === value) {\n return `${this._startDateLabelId} ${this._endDateLabelId}`;\n } else if (this.startValue === value) {\n return this._startDateLabelId;\n } else if (this.endValue === value) {\n return this._endDateLabelId;\n }\n return null;\n }\n /** Finds the MatCalendarCell that corresponds to a DOM node. */\n _getCellFromElement(element) {\n const cell = getCellElement(element);\n if (cell) {\n const row = cell.getAttribute('data-mat-row');\n const col = cell.getAttribute('data-mat-col');\n if (row && col) {\n return this.rows[parseInt(row)][parseInt(col)];\n }\n }\n return null;\n }\n static {\n this.ɵfac = function MatCalendarBody_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatCalendarBody)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatCalendarBody,\n selectors: [[\"\", \"mat-calendar-body\", \"\"]],\n hostAttrs: [1, \"mat-calendar-body\"],\n inputs: {\n label: \"label\",\n rows: \"rows\",\n todayValue: \"todayValue\",\n startValue: \"startValue\",\n endValue: \"endValue\",\n labelMinRequiredCells: \"labelMinRequiredCells\",\n numCols: \"numCols\",\n activeCell: \"activeCell\",\n isRange: \"isRange\",\n cellAspectRatio: \"cellAspectRatio\",\n comparisonStart: \"comparisonStart\",\n comparisonEnd: \"comparisonEnd\",\n previewStart: \"previewStart\",\n previewEnd: \"previewEnd\",\n startDateAccessibleName: \"startDateAccessibleName\",\n endDateAccessibleName: \"endDateAccessibleName\"\n },\n outputs: {\n selectedValueChange: \"selectedValueChange\",\n previewChange: \"previewChange\",\n activeDateChange: \"activeDateChange\",\n dragStarted: \"dragStarted\",\n dragEnded: \"dragEnded\"\n },\n exportAs: [\"matCalendarBody\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n decls: 7,\n vars: 5,\n consts: [[\"aria-hidden\", \"true\"], [\"role\", \"row\"], [1, \"mat-calendar-body-hidden-label\", 3, \"id\"], [1, \"mat-calendar-body-label\"], [1, \"mat-calendar-body-label\", 3, \"paddingTop\", \"paddingBottom\"], [\"role\", \"gridcell\", 1, \"mat-calendar-body-cell-container\", 3, \"width\", \"paddingTop\", \"paddingBottom\"], [\"role\", \"gridcell\", 1, \"mat-calendar-body-cell-container\"], [\"type\", \"button\", 1, \"mat-calendar-body-cell\", 3, \"click\", \"focus\", \"ngClass\", \"tabindex\"], [1, \"mat-calendar-body-cell-content\", \"mat-focus-indicator\"], [\"aria-hidden\", \"true\", 1, \"mat-calendar-body-cell-preview\"]],\n template: function MatCalendarBody_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatCalendarBody_Conditional_0_Template, 3, 6, \"tr\", 0);\n i0.ɵɵrepeaterCreate(1, MatCalendarBody_For_2_Template, 4, 1, \"tr\", 1, _forTrack0, true);\n i0.ɵɵelementStart(3, \"span\", 2);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 2);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵconditional(ctx._firstRowOffset < ctx.labelMinRequiredCells ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx.rows);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx._startDateLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.startDateAccessibleName, \"\\n\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx._endDateLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.endDateAccessibleName, \"\\n\");\n }\n },\n dependencies: [NgClass],\n styles: [\".mat-calendar-body{min-width:224px}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-outline-color, var(--mat-app-primary))}.mat-calendar-body-label{height:0;line-height:0;text-align:start;padding-left:4.7142857143%;padding-right:4.7142857143%;font-size:var(--mat-datepicker-calendar-body-label-text-size, var(--mat-app-title-small-size));font-weight:var(--mat-datepicker-calendar-body-label-text-weight, var(--mat-app-title-small-weight));color:var(--mat-datepicker-calendar-body-label-text-color, var(--mat-app-on-surface))}.mat-calendar-body-hidden-label{display:none}.mat-calendar-body-cell-container{position:relative;height:0;line-height:0}.mat-calendar-body-cell{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;top:0;left:0;width:100%;height:100%;background:none;text-align:center;outline:none;font-family:inherit;margin:0;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-app-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-app-body-medium-size))}.mat-calendar-body-cell::-moz-focus-inner{border:0}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-cell-preview{content:\\\"\\\";position:absolute;top:5%;left:0;z-index:0;box-sizing:border-box;display:block;height:90%;width:100%}.mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-start::after,.mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,.mat-calendar-body-comparison-start::after,.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:5%;width:95%;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,[dir=rtl] .mat-calendar-body-comparison-start::after,[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:0;border-radius:0;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,.mat-calendar-body-comparison-end::after,.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}[dir=rtl] .mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,[dir=rtl] .mat-calendar-body-comparison-end::after,[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{left:5%;border-radius:0;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-comparison-bridge-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-bridge-end.mat-calendar-body-range-start::after{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end.mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-end.mat-calendar-body-range-start::after{width:90%}.mat-calendar-body-in-preview{color:var(--mat-datepicker-calendar-date-preview-state-outline-color, var(--mat-app-primary))}.mat-calendar-body-in-preview .mat-calendar-body-cell-preview{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:0;border-right:dashed 1px}.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:0;border-left:dashed 1px}.mat-calendar-body-disabled{cursor:default}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color)}.cdk-high-contrast-active .mat-calendar-body-disabled{opacity:.5}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color, var(--mat-app-on-surface));border-color:var(--mat-datepicker-calendar-date-outline-color)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}.cdk-high-contrast-active .mat-calendar-body-cell-content{border:none}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color)}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color)}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color, var(--mat-app-primary));color:var(--mat-datepicker-calendar-date-selected-state-text-color, var(--mat-app-on-primary))}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color)}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color, var(--mat-app-primary))}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-app-primary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-app-tertiary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-app-tertiary-container))}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-app-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-app-tertiary-container)) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-app-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-app-tertiary-container)) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color, var(--mat-app-secondary-container))}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color, var(--mat-app-secondary))}.cdk-high-contrast-active .mat-datepicker-popup:not(:empty),.cdk-high-contrast-active .mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.cdk-high-contrast-active .mat-calendar-body-today{outline:dotted 1px}.cdk-high-contrast-active .mat-calendar-body-cell::before,.cdk-high-contrast-active .mat-calendar-body-cell::after,.cdk-high-contrast-active .mat-calendar-body-selected{background:none}.cdk-high-contrast-active .mat-calendar-body-in-range::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-start::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.cdk-high-contrast-active .mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatCalendarBody;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Checks whether a node is a table cell element. */\nfunction isTableCell(node) {\n return node?.nodeName === 'TD';\n}\n/**\n * Gets the date table cell element that is or contains the specified element.\n * Or returns null if element is not part of a date cell.\n */\nfunction getCellElement(element) {\n let cell;\n if (isTableCell(element)) {\n cell = element;\n } else if (isTableCell(element.parentNode)) {\n cell = element.parentNode;\n } else if (isTableCell(element.parentNode?.parentNode)) {\n cell = element.parentNode.parentNode;\n }\n return cell?.getAttribute('data-mat-row') != null ? cell : null;\n}\n/** Checks whether a value is the start of a range. */\nfunction isStart(value, start, end) {\n return end !== null && start !== end && value < end && value === start;\n}\n/** Checks whether a value is the end of a range. */\nfunction isEnd(value, start, end) {\n return start !== null && start !== end && value >= start && value === end;\n}\n/** Checks whether a value is inside of a range. */\nfunction isInRange(value, start, end, rangeEnabled) {\n return rangeEnabled && start !== null && end !== null && start !== end && value >= start && value <= end;\n}\n/**\n * Extracts the element that actually corresponds to a touch event's location\n * (rather than the element that initiated the sequence of touch events).\n */\nfunction getActualTouchTarget(event) {\n const touchLocation = event.changedTouches[0];\n return document.elementFromPoint(touchLocation.clientX, touchLocation.clientY);\n}\n\n/** A class representing a range of dates. */\nclass DateRange {\n constructor(/** The start date of the range. */\n start, /** The end date of the range. */\n end) {\n this.start = start;\n this.end = end;\n }\n}\n/**\n * A selection model containing a date selection.\n * @docs-private\n */\nlet MatDateSelectionModel = /*#__PURE__*/(() => {\n class MatDateSelectionModel {\n constructor(/** The current selection. */\n selection, _adapter) {\n this.selection = selection;\n this._adapter = _adapter;\n this._selectionChanged = new Subject();\n /** Emits when the selection has changed. */\n this.selectionChanged = this._selectionChanged;\n this.selection = selection;\n }\n /**\n * Updates the current selection in the model.\n * @param value New selection that should be assigned.\n * @param source Object that triggered the selection change.\n */\n updateSelection(value, source) {\n const oldValue = this.selection;\n this.selection = value;\n this._selectionChanged.next({\n selection: value,\n source,\n oldValue\n });\n }\n ngOnDestroy() {\n this._selectionChanged.complete();\n }\n _isValidDateInstance(date) {\n return this._adapter.isDateInstance(date) && this._adapter.isValid(date);\n }\n static {\n this.ɵfac = function MatDateSelectionModel_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatDateSelectionModel,\n factory: MatDateSelectionModel.ɵfac\n });\n }\n }\n return MatDateSelectionModel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * A selection model that contains a single date.\n * @docs-private\n */\nlet MatSingleDateSelectionModel = /*#__PURE__*/(() => {\n class MatSingleDateSelectionModel extends MatDateSelectionModel {\n constructor(adapter) {\n super(null, adapter);\n }\n /**\n * Adds a date to the current selection. In the case of a single date selection, the added date\n * simply overwrites the previous selection\n */\n add(date) {\n super.updateSelection(date, this);\n }\n /** Checks whether the current selection is valid. */\n isValid() {\n return this.selection != null && this._isValidDateInstance(this.selection);\n }\n /**\n * Checks whether the current selection is complete. In the case of a single date selection, this\n * is true if the current selection is not null.\n */\n isComplete() {\n return this.selection != null;\n }\n /** Clones the selection model. */\n clone() {\n const clone = new MatSingleDateSelectionModel(this._adapter);\n clone.updateSelection(this.selection, this);\n return clone;\n }\n static {\n this.ɵfac = function MatSingleDateSelectionModel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSingleDateSelectionModel)(i0.ɵɵinject(i1.DateAdapter));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatSingleDateSelectionModel,\n factory: MatSingleDateSelectionModel.ɵfac\n });\n }\n }\n return MatSingleDateSelectionModel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * A selection model that contains a date range.\n * @docs-private\n */\nlet MatRangeDateSelectionModel = /*#__PURE__*/(() => {\n class MatRangeDateSelectionModel extends MatDateSelectionModel {\n constructor(adapter) {\n super(new DateRange(null, null), adapter);\n }\n /**\n * Adds a date to the current selection. In the case of a date range selection, the added date\n * fills in the next `null` value in the range. If both the start and the end already have a date,\n * the selection is reset so that the given date is the new `start` and the `end` is null.\n */\n add(date) {\n let {\n start,\n end\n } = this.selection;\n if (start == null) {\n start = date;\n } else if (end == null) {\n end = date;\n } else {\n start = date;\n end = null;\n }\n super.updateSelection(new DateRange(start, end), this);\n }\n /** Checks whether the current selection is valid. */\n isValid() {\n const {\n start,\n end\n } = this.selection;\n // Empty ranges are valid.\n if (start == null && end == null) {\n return true;\n }\n // Complete ranges are only valid if both dates are valid and the start is before the end.\n if (start != null && end != null) {\n return this._isValidDateInstance(start) && this._isValidDateInstance(end) && this._adapter.compareDate(start, end) <= 0;\n }\n // Partial ranges are valid if the start/end is valid.\n return (start == null || this._isValidDateInstance(start)) && (end == null || this._isValidDateInstance(end));\n }\n /**\n * Checks whether the current selection is complete. In the case of a date range selection, this\n * is true if the current selection has a non-null `start` and `end`.\n */\n isComplete() {\n return this.selection.start != null && this.selection.end != null;\n }\n /** Clones the selection model. */\n clone() {\n const clone = new MatRangeDateSelectionModel(this._adapter);\n clone.updateSelection(this.selection, this);\n return clone;\n }\n static {\n this.ɵfac = function MatRangeDateSelectionModel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatRangeDateSelectionModel)(i0.ɵɵinject(i1.DateAdapter));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatRangeDateSelectionModel,\n factory: MatRangeDateSelectionModel.ɵfac\n });\n }\n }\n return MatRangeDateSelectionModel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** @docs-private */\nfunction MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY(parent, adapter) {\n return parent || new MatSingleDateSelectionModel(adapter);\n}\n/**\n * Used to provide a single selection model to a component.\n * @docs-private\n */\nconst MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER = {\n provide: MatDateSelectionModel,\n deps: [[/*#__PURE__*/new Optional(), /*#__PURE__*/new SkipSelf(), MatDateSelectionModel], DateAdapter],\n useFactory: MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY\n};\n/** @docs-private */\nfunction MAT_RANGE_DATE_SELECTION_MODEL_FACTORY(parent, adapter) {\n return parent || new MatRangeDateSelectionModel(adapter);\n}\n/**\n * Used to provide a range selection model to a component.\n * @docs-private\n */\nconst MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER = {\n provide: MatDateSelectionModel,\n deps: [[/*#__PURE__*/new Optional(), /*#__PURE__*/new SkipSelf(), MatDateSelectionModel], DateAdapter],\n useFactory: MAT_RANGE_DATE_SELECTION_MODEL_FACTORY\n};\n\n/** Injection token used to customize the date range selection behavior. */\nconst MAT_DATE_RANGE_SELECTION_STRATEGY = /*#__PURE__*/new InjectionToken('MAT_DATE_RANGE_SELECTION_STRATEGY');\n/** Provides the default date range selection behavior. */\nlet DefaultMatCalendarRangeStrategy = /*#__PURE__*/(() => {\n class DefaultMatCalendarRangeStrategy {\n constructor(_dateAdapter) {\n this._dateAdapter = _dateAdapter;\n }\n selectionFinished(date, currentRange) {\n let {\n start,\n end\n } = currentRange;\n if (start == null) {\n start = date;\n } else if (end == null && date && this._dateAdapter.compareDate(date, start) >= 0) {\n end = date;\n } else {\n start = date;\n end = null;\n }\n return new DateRange(start, end);\n }\n createPreview(activeDate, currentRange) {\n let start = null;\n let end = null;\n if (currentRange.start && !currentRange.end && activeDate) {\n start = currentRange.start;\n end = activeDate;\n }\n return new DateRange(start, end);\n }\n createDrag(dragOrigin, originalRange, newDate) {\n let start = originalRange.start;\n let end = originalRange.end;\n if (!start || !end) {\n // Can't drag from an incomplete range.\n return null;\n }\n const adapter = this._dateAdapter;\n const isRange = adapter.compareDate(start, end) !== 0;\n const diffYears = adapter.getYear(newDate) - adapter.getYear(dragOrigin);\n const diffMonths = adapter.getMonth(newDate) - adapter.getMonth(dragOrigin);\n const diffDays = adapter.getDate(newDate) - adapter.getDate(dragOrigin);\n if (isRange && adapter.sameDate(dragOrigin, originalRange.start)) {\n start = newDate;\n if (adapter.compareDate(newDate, end) > 0) {\n end = adapter.addCalendarYears(end, diffYears);\n end = adapter.addCalendarMonths(end, diffMonths);\n end = adapter.addCalendarDays(end, diffDays);\n }\n } else if (isRange && adapter.sameDate(dragOrigin, originalRange.end)) {\n end = newDate;\n if (adapter.compareDate(newDate, start) < 0) {\n start = adapter.addCalendarYears(start, diffYears);\n start = adapter.addCalendarMonths(start, diffMonths);\n start = adapter.addCalendarDays(start, diffDays);\n }\n } else {\n start = adapter.addCalendarYears(start, diffYears);\n start = adapter.addCalendarMonths(start, diffMonths);\n start = adapter.addCalendarDays(start, diffDays);\n end = adapter.addCalendarYears(end, diffYears);\n end = adapter.addCalendarMonths(end, diffMonths);\n end = adapter.addCalendarDays(end, diffDays);\n }\n return new DateRange(start, end);\n }\n static {\n this.ɵfac = function DefaultMatCalendarRangeStrategy_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DefaultMatCalendarRangeStrategy)(i0.ɵɵinject(i1.DateAdapter));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DefaultMatCalendarRangeStrategy,\n factory: DefaultMatCalendarRangeStrategy.ɵfac\n });\n }\n }\n return DefaultMatCalendarRangeStrategy;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** @docs-private */\nfunction MAT_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY(parent, adapter) {\n return parent || new DefaultMatCalendarRangeStrategy(adapter);\n}\n/** @docs-private */\nconst MAT_CALENDAR_RANGE_STRATEGY_PROVIDER = {\n provide: MAT_DATE_RANGE_SELECTION_STRATEGY,\n deps: [[/*#__PURE__*/new Optional(), /*#__PURE__*/new SkipSelf(), MAT_DATE_RANGE_SELECTION_STRATEGY], DateAdapter],\n useFactory: MAT_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY\n};\nconst DAYS_PER_WEEK = 7;\nlet uniqueIdCounter = 0;\n/**\n * An internal component used to display a single month in the datepicker.\n * @docs-private\n */\nlet MatMonthView = /*#__PURE__*/(() => {\n class MatMonthView {\n /**\n * The date to display in this month view (everything other than the month and year is ignored).\n */\n get activeDate() {\n return this._activeDate;\n }\n set activeDate(value) {\n const oldActiveDate = this._activeDate;\n const validDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value)) || this._dateAdapter.today();\n this._activeDate = this._dateAdapter.clampDate(validDate, this.minDate, this.maxDate);\n if (!this._hasSameMonthAndYear(oldActiveDate, this._activeDate)) {\n this._init();\n }\n }\n /** The currently selected date. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n if (value instanceof DateRange) {\n this._selected = value;\n } else {\n this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n this._setRanges(this._selected);\n }\n /** The minimum selectable date. */\n get minDate() {\n return this._minDate;\n }\n set minDate(value) {\n this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /** The maximum selectable date. */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(value) {\n this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n constructor(_changeDetectorRef, _dateFormats, _dateAdapter, _dir, _rangeStrategy) {\n this._changeDetectorRef = _changeDetectorRef;\n this._dateFormats = _dateFormats;\n this._dateAdapter = _dateAdapter;\n this._dir = _dir;\n this._rangeStrategy = _rangeStrategy;\n this._rerenderSubscription = Subscription.EMPTY;\n /** Origin of active drag, or null when dragging is not active. */\n this.activeDrag = null;\n /** Emits when a new date is selected. */\n this.selectedChange = new EventEmitter();\n /** Emits when any date is selected. */\n this._userSelection = new EventEmitter();\n /** Emits when the user initiates a date range drag via mouse or touch. */\n this.dragStarted = new EventEmitter();\n /**\n * Emits when the user completes or cancels a date range drag.\n * Emits null when the drag was canceled or the newly selected date range if completed.\n */\n this.dragEnded = new EventEmitter();\n /** Emits when any date is activated. */\n this.activeDateChange = new EventEmitter();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MAT_DATE_FORMATS');\n }\n }\n this._activeDate = this._dateAdapter.today();\n }\n ngAfterContentInit() {\n this._rerenderSubscription = this._dateAdapter.localeChanges.pipe(startWith(null)).subscribe(() => this._init());\n }\n ngOnChanges(changes) {\n const comparisonChange = changes['comparisonStart'] || changes['comparisonEnd'];\n if (comparisonChange && !comparisonChange.firstChange) {\n this._setRanges(this.selected);\n }\n if (changes['activeDrag'] && !this.activeDrag) {\n this._clearPreview();\n }\n }\n ngOnDestroy() {\n this._rerenderSubscription.unsubscribe();\n }\n /** Handles when a new date is selected. */\n _dateSelected(event) {\n const date = event.value;\n const selectedDate = this._getDateFromDayOfMonth(date);\n let rangeStartDate;\n let rangeEndDate;\n if (this._selected instanceof DateRange) {\n rangeStartDate = this._getDateInCurrentMonth(this._selected.start);\n rangeEndDate = this._getDateInCurrentMonth(this._selected.end);\n } else {\n rangeStartDate = rangeEndDate = this._getDateInCurrentMonth(this._selected);\n }\n if (rangeStartDate !== date || rangeEndDate !== date) {\n this.selectedChange.emit(selectedDate);\n }\n this._userSelection.emit({\n value: selectedDate,\n event: event.event\n });\n this._clearPreview();\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Takes the index of a calendar body cell wrapped in an event as argument. For the date that\n * corresponds to the given cell, set `activeDate` to that date and fire `activeDateChange` with\n * that date.\n *\n * This function is used to match each component's model of the active date with the calendar\n * body cell that was focused. It updates its value of `activeDate` synchronously and updates the\n * parent's value asynchronously via the `activeDateChange` event. The child component receives an\n * updated value asynchronously via the `activeCell` Input.\n */\n _updateActiveDate(event) {\n const month = event.value;\n const oldActiveDate = this._activeDate;\n this.activeDate = this._getDateFromDayOfMonth(month);\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this._activeDate);\n }\n }\n /** Handles keydown events on the calendar body when calendar is in month view. */\n _handleCalendarBodyKeydown(event) {\n // TODO(mmalerba): We currently allow keyboard navigation to disabled dates, but just prevent\n // disabled ones from being selected. This may not be ideal, we should look into whether\n // navigation should skip over disabled dates, and if so, how to implement that efficiently.\n const oldActiveDate = this._activeDate;\n const isRtl = this._isRtl();\n switch (event.keyCode) {\n case LEFT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, isRtl ? 1 : -1);\n break;\n case RIGHT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, isRtl ? -1 : 1);\n break;\n case UP_ARROW:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, -7);\n break;\n case DOWN_ARROW:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 7);\n break;\n case HOME:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 1 - this._dateAdapter.getDate(this._activeDate));\n break;\n case END:\n this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, this._dateAdapter.getNumDaysInMonth(this._activeDate) - this._dateAdapter.getDate(this._activeDate));\n break;\n case PAGE_UP:\n this.activeDate = event.altKey ? this._dateAdapter.addCalendarYears(this._activeDate, -1) : this._dateAdapter.addCalendarMonths(this._activeDate, -1);\n break;\n case PAGE_DOWN:\n this.activeDate = event.altKey ? this._dateAdapter.addCalendarYears(this._activeDate, 1) : this._dateAdapter.addCalendarMonths(this._activeDate, 1);\n break;\n case ENTER:\n case SPACE:\n this._selectionKeyPressed = true;\n if (this._canSelect(this._activeDate)) {\n // Prevent unexpected default actions such as form submission.\n // Note that we only prevent the default action here while the selection happens in\n // `keyup` below. We can't do the selection here, because it can cause the calendar to\n // reopen if focus is restored immediately. We also can't call `preventDefault` on `keyup`\n // because it's too late (see #23305).\n event.preventDefault();\n }\n return;\n case ESCAPE:\n // Abort the current range selection if the user presses escape mid-selection.\n if (this._previewEnd != null && !hasModifierKey(event)) {\n this._clearPreview();\n // If a drag is in progress, cancel the drag without changing the\n // current selection.\n if (this.activeDrag) {\n this.dragEnded.emit({\n value: null,\n event\n });\n } else {\n this.selectedChange.emit(null);\n this._userSelection.emit({\n value: null,\n event\n });\n }\n event.preventDefault();\n event.stopPropagation(); // Prevents the overlay from closing.\n }\n return;\n default:\n // Don't prevent default or focus active cell on keys that we don't explicitly handle.\n return;\n }\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this.activeDate);\n this._focusActiveCellAfterViewChecked();\n }\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n /** Handles keyup events on the calendar body when calendar is in month view. */\n _handleCalendarBodyKeyup(event) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n if (this._selectionKeyPressed && this._canSelect(this._activeDate)) {\n this._dateSelected({\n value: this._dateAdapter.getDate(this._activeDate),\n event\n });\n }\n this._selectionKeyPressed = false;\n }\n }\n /** Initializes this month view. */\n _init() {\n this._setRanges(this.selected);\n this._todayDate = this._getCellCompareValue(this._dateAdapter.today());\n this._monthLabel = this._dateFormats.display.monthLabel ? this._dateAdapter.format(this.activeDate, this._dateFormats.display.monthLabel) : this._dateAdapter.getMonthNames('short')[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();\n let firstOfMonth = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), 1);\n this._firstWeekOffset = (DAYS_PER_WEEK + this._dateAdapter.getDayOfWeek(firstOfMonth) - this._dateAdapter.getFirstDayOfWeek()) % DAYS_PER_WEEK;\n this._initWeekdays();\n this._createWeekCells();\n this._changeDetectorRef.markForCheck();\n }\n /** Focuses the active cell after the microtask queue is empty. */\n _focusActiveCell(movePreview) {\n this._matCalendarBody._focusActiveCell(movePreview);\n }\n /** Focuses the active cell after change detection has run and the microtask queue is empty. */\n _focusActiveCellAfterViewChecked() {\n this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked();\n }\n /** Called when the user has activated a new cell and the preview needs to be updated. */\n _previewChanged({\n event,\n value: cell\n }) {\n if (this._rangeStrategy) {\n // We can assume that this will be a range, because preview\n // events aren't fired for single date selections.\n const value = cell ? cell.rawValue : null;\n const previewRange = this._rangeStrategy.createPreview(value, this.selected, event);\n this._previewStart = this._getCellCompareValue(previewRange.start);\n this._previewEnd = this._getCellCompareValue(previewRange.end);\n if (this.activeDrag && value) {\n const dragRange = this._rangeStrategy.createDrag?.(this.activeDrag.value, this.selected, value, event);\n if (dragRange) {\n this._previewStart = this._getCellCompareValue(dragRange.start);\n this._previewEnd = this._getCellCompareValue(dragRange.end);\n }\n }\n // Note that here we need to use `detectChanges`, rather than `markForCheck`, because\n // the way `_focusActiveCell` is set up at the moment makes it fire at the wrong time\n // when navigating one month back using the keyboard which will cause this handler\n // to throw a \"changed after checked\" error when updating the preview state.\n this._changeDetectorRef.detectChanges();\n }\n }\n /**\n * Called when the user has ended a drag. If the drag/drop was successful,\n * computes and emits the new range selection.\n */\n _dragEnded(event) {\n if (!this.activeDrag) return;\n if (event.value) {\n // Propagate drag effect\n const dragDropResult = this._rangeStrategy?.createDrag?.(this.activeDrag.value, this.selected, event.value, event.event);\n this.dragEnded.emit({\n value: dragDropResult ?? null,\n event: event.event\n });\n } else {\n this.dragEnded.emit({\n value: null,\n event: event.event\n });\n }\n }\n /**\n * Takes a day of the month and returns a new date in the same month and year as the currently\n * active date. The returned date will have the same day of the month as the argument date.\n */\n _getDateFromDayOfMonth(dayOfMonth) {\n return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), dayOfMonth);\n }\n /** Initializes the weekdays. */\n _initWeekdays() {\n const firstDayOfWeek = this._dateAdapter.getFirstDayOfWeek();\n const narrowWeekdays = this._dateAdapter.getDayOfWeekNames('narrow');\n const longWeekdays = this._dateAdapter.getDayOfWeekNames('long');\n // Rotate the labels for days of the week based on the configured first day of the week.\n let weekdays = longWeekdays.map((long, i) => {\n return {\n long,\n narrow: narrowWeekdays[i],\n id: uniqueIdCounter++\n };\n });\n this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek));\n }\n /** Creates MatCalendarCells for the dates in this month. */\n _createWeekCells() {\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(this.activeDate);\n const dateNames = this._dateAdapter.getDateNames();\n this._weeks = [[]];\n for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {\n if (cell == DAYS_PER_WEEK) {\n this._weeks.push([]);\n cell = 0;\n }\n const date = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), i + 1);\n const enabled = this._shouldEnableDate(date);\n const ariaLabel = this._dateAdapter.format(date, this._dateFormats.display.dateA11yLabel);\n const cellClasses = this.dateClass ? this.dateClass(date, 'month') : undefined;\n this._weeks[this._weeks.length - 1].push(new MatCalendarCell(i + 1, dateNames[i], ariaLabel, enabled, cellClasses, this._getCellCompareValue(date), date));\n }\n }\n /** Date filter for the month */\n _shouldEnableDate(date) {\n return !!date && (!this.minDate || this._dateAdapter.compareDate(date, this.minDate) >= 0) && (!this.maxDate || this._dateAdapter.compareDate(date, this.maxDate) <= 0) && (!this.dateFilter || this.dateFilter(date));\n }\n /**\n * Gets the date in this month that the given Date falls on.\n * Returns null if the given Date is in another month.\n */\n _getDateInCurrentMonth(date) {\n return date && this._hasSameMonthAndYear(date, this.activeDate) ? this._dateAdapter.getDate(date) : null;\n }\n /** Checks whether the 2 dates are non-null and fall within the same month of the same year. */\n _hasSameMonthAndYear(d1, d2) {\n return !!(d1 && d2 && this._dateAdapter.getMonth(d1) == this._dateAdapter.getMonth(d2) && this._dateAdapter.getYear(d1) == this._dateAdapter.getYear(d2));\n }\n /** Gets the value that will be used to one cell to another. */\n _getCellCompareValue(date) {\n if (date) {\n // We use the time since the Unix epoch to compare dates in this view, rather than the\n // cell values, because we need to support ranges that span across multiple months/years.\n const year = this._dateAdapter.getYear(date);\n const month = this._dateAdapter.getMonth(date);\n const day = this._dateAdapter.getDate(date);\n return new Date(year, month, day).getTime();\n }\n return null;\n }\n /** Determines whether the user has the RTL layout direction. */\n _isRtl() {\n return this._dir && this._dir.value === 'rtl';\n }\n /** Sets the current range based on a model value. */\n _setRanges(selectedValue) {\n if (selectedValue instanceof DateRange) {\n this._rangeStart = this._getCellCompareValue(selectedValue.start);\n this._rangeEnd = this._getCellCompareValue(selectedValue.end);\n this._isRange = true;\n } else {\n this._rangeStart = this._rangeEnd = this._getCellCompareValue(selectedValue);\n this._isRange = false;\n }\n this._comparisonRangeStart = this._getCellCompareValue(this.comparisonStart);\n this._comparisonRangeEnd = this._getCellCompareValue(this.comparisonEnd);\n }\n /** Gets whether a date can be selected in the month view. */\n _canSelect(date) {\n return !this.dateFilter || this.dateFilter(date);\n }\n /** Clears out preview state. */\n _clearPreview() {\n this._previewStart = this._previewEnd = null;\n }\n static {\n this.ɵfac = function MatMonthView_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMonthView)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(MAT_DATE_RANGE_SELECTION_STRATEGY, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMonthView,\n selectors: [[\"mat-month-view\"]],\n viewQuery: function MatMonthView_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatCalendarBody, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._matCalendarBody = _t.first);\n }\n },\n inputs: {\n activeDate: \"activeDate\",\n selected: \"selected\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateFilter: \"dateFilter\",\n dateClass: \"dateClass\",\n comparisonStart: \"comparisonStart\",\n comparisonEnd: \"comparisonEnd\",\n startDateAccessibleName: \"startDateAccessibleName\",\n endDateAccessibleName: \"endDateAccessibleName\",\n activeDrag: \"activeDrag\"\n },\n outputs: {\n selectedChange: \"selectedChange\",\n _userSelection: \"_userSelection\",\n dragStarted: \"dragStarted\",\n dragEnded: \"dragEnded\",\n activeDateChange: \"activeDateChange\"\n },\n exportAs: [\"matMonthView\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 14,\n consts: [[\"role\", \"grid\", 1, \"mat-calendar-table\"], [1, \"mat-calendar-table-header\"], [\"scope\", \"col\"], [\"aria-hidden\", \"true\"], [\"colspan\", \"7\", 1, \"mat-calendar-table-header-divider\"], [\"mat-calendar-body\", \"\", 3, \"selectedValueChange\", \"activeDateChange\", \"previewChange\", \"dragStarted\", \"dragEnded\", \"keyup\", \"keydown\", \"label\", \"rows\", \"todayValue\", \"startValue\", \"endValue\", \"comparisonStart\", \"comparisonEnd\", \"previewStart\", \"previewEnd\", \"isRange\", \"labelMinRequiredCells\", \"activeCell\", \"startDateAccessibleName\", \"endDateAccessibleName\"], [1, \"cdk-visually-hidden\"]],\n template: function MatMonthView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 0)(1, \"thead\", 1)(2, \"tr\");\n i0.ɵɵrepeaterCreate(3, MatMonthView_For_4_Template, 5, 2, \"th\", 2, _forTrack1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"tr\", 3);\n i0.ɵɵelement(6, \"th\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"tbody\", 5);\n i0.ɵɵlistener(\"selectedValueChange\", function MatMonthView_Template_tbody_selectedValueChange_7_listener($event) {\n return ctx._dateSelected($event);\n })(\"activeDateChange\", function MatMonthView_Template_tbody_activeDateChange_7_listener($event) {\n return ctx._updateActiveDate($event);\n })(\"previewChange\", function MatMonthView_Template_tbody_previewChange_7_listener($event) {\n return ctx._previewChanged($event);\n })(\"dragStarted\", function MatMonthView_Template_tbody_dragStarted_7_listener($event) {\n return ctx.dragStarted.emit($event);\n })(\"dragEnded\", function MatMonthView_Template_tbody_dragEnded_7_listener($event) {\n return ctx._dragEnded($event);\n })(\"keyup\", function MatMonthView_Template_tbody_keyup_7_listener($event) {\n return ctx._handleCalendarBodyKeyup($event);\n })(\"keydown\", function MatMonthView_Template_tbody_keydown_7_listener($event) {\n return ctx._handleCalendarBodyKeydown($event);\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵrepeater(ctx._weekdays);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"label\", ctx._monthLabel)(\"rows\", ctx._weeks)(\"todayValue\", ctx._todayDate)(\"startValue\", ctx._rangeStart)(\"endValue\", ctx._rangeEnd)(\"comparisonStart\", ctx._comparisonRangeStart)(\"comparisonEnd\", ctx._comparisonRangeEnd)(\"previewStart\", ctx._previewStart)(\"previewEnd\", ctx._previewEnd)(\"isRange\", ctx._isRange)(\"labelMinRequiredCells\", 3)(\"activeCell\", ctx._dateAdapter.getDate(ctx.activeDate) - 1)(\"startDateAccessibleName\", ctx.startDateAccessibleName)(\"endDateAccessibleName\", ctx.endDateAccessibleName);\n }\n },\n dependencies: [MatCalendarBody],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMonthView;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst yearsPerPage = 24;\nconst yearsPerRow = 4;\n/**\n * An internal component used to display a year selector in the datepicker.\n * @docs-private\n */\nlet MatMultiYearView = /*#__PURE__*/(() => {\n class MatMultiYearView {\n /** The date to display in this multi-year view (everything other than the year is ignored). */\n get activeDate() {\n return this._activeDate;\n }\n set activeDate(value) {\n let oldActiveDate = this._activeDate;\n const validDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value)) || this._dateAdapter.today();\n this._activeDate = this._dateAdapter.clampDate(validDate, this.minDate, this.maxDate);\n if (!isSameMultiYearView(this._dateAdapter, oldActiveDate, this._activeDate, this.minDate, this.maxDate)) {\n this._init();\n }\n }\n /** The currently selected date. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n if (value instanceof DateRange) {\n this._selected = value;\n } else {\n this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n this._setSelectedYear(value);\n }\n /** The minimum selectable date. */\n get minDate() {\n return this._minDate;\n }\n set minDate(value) {\n this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /** The maximum selectable date. */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(value) {\n this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n constructor(_changeDetectorRef, _dateAdapter, _dir) {\n this._changeDetectorRef = _changeDetectorRef;\n this._dateAdapter = _dateAdapter;\n this._dir = _dir;\n this._rerenderSubscription = Subscription.EMPTY;\n /** Emits when a new year is selected. */\n this.selectedChange = new EventEmitter();\n /** Emits the selected year. This doesn't imply a change on the selected date */\n this.yearSelected = new EventEmitter();\n /** Emits when any date is activated. */\n this.activeDateChange = new EventEmitter();\n if (!this._dateAdapter && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw createMissingDateImplError('DateAdapter');\n }\n this._activeDate = this._dateAdapter.today();\n }\n ngAfterContentInit() {\n this._rerenderSubscription = this._dateAdapter.localeChanges.pipe(startWith(null)).subscribe(() => this._init());\n }\n ngOnDestroy() {\n this._rerenderSubscription.unsubscribe();\n }\n /** Initializes this multi-year view. */\n _init() {\n this._todayYear = this._dateAdapter.getYear(this._dateAdapter.today());\n // We want a range years such that we maximize the number of\n // enabled dates visible at once. This prevents issues where the minimum year\n // is the last item of a page OR the maximum year is the first item of a page.\n // The offset from the active year to the \"slot\" for the starting year is the\n // *actual* first rendered year in the multi-year view.\n const activeYear = this._dateAdapter.getYear(this._activeDate);\n const minYearOfPage = activeYear - getActiveOffset(this._dateAdapter, this.activeDate, this.minDate, this.maxDate);\n this._years = [];\n for (let i = 0, row = []; i < yearsPerPage; i++) {\n row.push(minYearOfPage + i);\n if (row.length == yearsPerRow) {\n this._years.push(row.map(year => this._createCellForYear(year)));\n row = [];\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /** Handles when a new year is selected. */\n _yearSelected(event) {\n const year = event.value;\n const selectedYear = this._dateAdapter.createDate(year, 0, 1);\n const selectedDate = this._getDateFromYear(year);\n this.yearSelected.emit(selectedYear);\n this.selectedChange.emit(selectedDate);\n }\n /**\n * Takes the index of a calendar body cell wrapped in an event as argument. For the date that\n * corresponds to the given cell, set `activeDate` to that date and fire `activeDateChange` with\n * that date.\n *\n * This function is used to match each component's model of the active date with the calendar\n * body cell that was focused. It updates its value of `activeDate` synchronously and updates the\n * parent's value asynchronously via the `activeDateChange` event. The child component receives an\n * updated value asynchronously via the `activeCell` Input.\n */\n _updateActiveDate(event) {\n const year = event.value;\n const oldActiveDate = this._activeDate;\n this.activeDate = this._getDateFromYear(year);\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this.activeDate);\n }\n }\n /** Handles keydown events on the calendar body when calendar is in multi-year view. */\n _handleCalendarBodyKeydown(event) {\n const oldActiveDate = this._activeDate;\n const isRtl = this._isRtl();\n switch (event.keyCode) {\n case LEFT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, isRtl ? 1 : -1);\n break;\n case RIGHT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, isRtl ? -1 : 1);\n break;\n case UP_ARROW:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, -yearsPerRow);\n break;\n case DOWN_ARROW:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, yearsPerRow);\n break;\n case HOME:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, -getActiveOffset(this._dateAdapter, this.activeDate, this.minDate, this.maxDate));\n break;\n case END:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, yearsPerPage - getActiveOffset(this._dateAdapter, this.activeDate, this.minDate, this.maxDate) - 1);\n break;\n case PAGE_UP:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? -yearsPerPage * 10 : -yearsPerPage);\n break;\n case PAGE_DOWN:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? yearsPerPage * 10 : yearsPerPage);\n break;\n case ENTER:\n case SPACE:\n // Note that we only prevent the default action here while the selection happens in\n // `keyup` below. We can't do the selection here, because it can cause the calendar to\n // reopen if focus is restored immediately. We also can't call `preventDefault` on `keyup`\n // because it's too late (see #23305).\n this._selectionKeyPressed = true;\n break;\n default:\n // Don't prevent default or focus active cell on keys that we don't explicitly handle.\n return;\n }\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this.activeDate);\n }\n this._focusActiveCellAfterViewChecked();\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n /** Handles keyup events on the calendar body when calendar is in multi-year view. */\n _handleCalendarBodyKeyup(event) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n if (this._selectionKeyPressed) {\n this._yearSelected({\n value: this._dateAdapter.getYear(this._activeDate),\n event\n });\n }\n this._selectionKeyPressed = false;\n }\n }\n _getActiveCell() {\n return getActiveOffset(this._dateAdapter, this.activeDate, this.minDate, this.maxDate);\n }\n /** Focuses the active cell after the microtask queue is empty. */\n _focusActiveCell() {\n this._matCalendarBody._focusActiveCell();\n }\n /** Focuses the active cell after change detection has run and the microtask queue is empty. */\n _focusActiveCellAfterViewChecked() {\n this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked();\n }\n /**\n * Takes a year and returns a new date on the same day and month as the currently active date\n * The returned date will have the same year as the argument date.\n */\n _getDateFromYear(year) {\n const activeMonth = this._dateAdapter.getMonth(this.activeDate);\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(year, activeMonth, 1));\n const normalizedDate = this._dateAdapter.createDate(year, activeMonth, Math.min(this._dateAdapter.getDate(this.activeDate), daysInMonth));\n return normalizedDate;\n }\n /** Creates an MatCalendarCell for the given year. */\n _createCellForYear(year) {\n const date = this._dateAdapter.createDate(year, 0, 1);\n const yearName = this._dateAdapter.getYearName(date);\n const cellClasses = this.dateClass ? this.dateClass(date, 'multi-year') : undefined;\n return new MatCalendarCell(year, yearName, yearName, this._shouldEnableYear(year), cellClasses);\n }\n /** Whether the given year is enabled. */\n _shouldEnableYear(year) {\n // disable if the year is greater than maxDate lower than minDate\n if (year === undefined || year === null || this.maxDate && year > this._dateAdapter.getYear(this.maxDate) || this.minDate && year < this._dateAdapter.getYear(this.minDate)) {\n return false;\n }\n // enable if it reaches here and there's no filter defined\n if (!this.dateFilter) {\n return true;\n }\n const firstOfYear = this._dateAdapter.createDate(year, 0, 1);\n // If any date in the year is enabled count the year as enabled.\n for (let date = firstOfYear; this._dateAdapter.getYear(date) == year; date = this._dateAdapter.addCalendarDays(date, 1)) {\n if (this.dateFilter(date)) {\n return true;\n }\n }\n return false;\n }\n /** Determines whether the user has the RTL layout direction. */\n _isRtl() {\n return this._dir && this._dir.value === 'rtl';\n }\n /** Sets the currently-highlighted year based on a model value. */\n _setSelectedYear(value) {\n this._selectedYear = null;\n if (value instanceof DateRange) {\n const displayValue = value.start || value.end;\n if (displayValue) {\n this._selectedYear = this._dateAdapter.getYear(displayValue);\n }\n } else if (value) {\n this._selectedYear = this._dateAdapter.getYear(value);\n }\n }\n static {\n this.ɵfac = function MatMultiYearView_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMultiYearView)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMultiYearView,\n selectors: [[\"mat-multi-year-view\"]],\n viewQuery: function MatMultiYearView_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatCalendarBody, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._matCalendarBody = _t.first);\n }\n },\n inputs: {\n activeDate: \"activeDate\",\n selected: \"selected\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateFilter: \"dateFilter\",\n dateClass: \"dateClass\"\n },\n outputs: {\n selectedChange: \"selectedChange\",\n yearSelected: \"yearSelected\",\n activeDateChange: \"activeDateChange\"\n },\n exportAs: [\"matMultiYearView\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 7,\n consts: [[\"role\", \"grid\", 1, \"mat-calendar-table\"], [\"aria-hidden\", \"true\", 1, \"mat-calendar-table-header\"], [\"colspan\", \"4\", 1, \"mat-calendar-table-header-divider\"], [\"mat-calendar-body\", \"\", 3, \"selectedValueChange\", \"activeDateChange\", \"keyup\", \"keydown\", \"rows\", \"todayValue\", \"startValue\", \"endValue\", \"numCols\", \"cellAspectRatio\", \"activeCell\"]],\n template: function MatMultiYearView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 0)(1, \"thead\", 1)(2, \"tr\");\n i0.ɵɵelement(3, \"th\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"tbody\", 3);\n i0.ɵɵlistener(\"selectedValueChange\", function MatMultiYearView_Template_tbody_selectedValueChange_4_listener($event) {\n return ctx._yearSelected($event);\n })(\"activeDateChange\", function MatMultiYearView_Template_tbody_activeDateChange_4_listener($event) {\n return ctx._updateActiveDate($event);\n })(\"keyup\", function MatMultiYearView_Template_tbody_keyup_4_listener($event) {\n return ctx._handleCalendarBodyKeyup($event);\n })(\"keydown\", function MatMultiYearView_Template_tbody_keydown_4_listener($event) {\n return ctx._handleCalendarBodyKeydown($event);\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"rows\", ctx._years)(\"todayValue\", ctx._todayYear)(\"startValue\", ctx._selectedYear)(\"endValue\", ctx._selectedYear)(\"numCols\", 4)(\"cellAspectRatio\", 4 / 7)(\"activeCell\", ctx._getActiveCell());\n }\n },\n dependencies: [MatCalendarBody],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMultiYearView;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction isSameMultiYearView(dateAdapter, date1, date2, minDate, maxDate) {\n const year1 = dateAdapter.getYear(date1);\n const year2 = dateAdapter.getYear(date2);\n const startingYear = getStartingYear(dateAdapter, minDate, maxDate);\n return Math.floor((year1 - startingYear) / yearsPerPage) === Math.floor((year2 - startingYear) / yearsPerPage);\n}\n/**\n * When the multi-year view is first opened, the active year will be in view.\n * So we compute how many years are between the active year and the *slot* where our\n * \"startingYear\" will render when paged into view.\n */\nfunction getActiveOffset(dateAdapter, activeDate, minDate, maxDate) {\n const activeYear = dateAdapter.getYear(activeDate);\n return euclideanModulo(activeYear - getStartingYear(dateAdapter, minDate, maxDate), yearsPerPage);\n}\n/**\n * We pick a \"starting\" year such that either the maximum year would be at the end\n * or the minimum year would be at the beginning of a page.\n */\nfunction getStartingYear(dateAdapter, minDate, maxDate) {\n let startingYear = 0;\n if (maxDate) {\n const maxYear = dateAdapter.getYear(maxDate);\n startingYear = maxYear - yearsPerPage + 1;\n } else if (minDate) {\n startingYear = dateAdapter.getYear(minDate);\n }\n return startingYear;\n}\n/** Gets remainder that is non-negative, even if first number is negative */\nfunction euclideanModulo(a, b) {\n return (a % b + b) % b;\n}\n\n/**\n * An internal component used to display a single year in the datepicker.\n * @docs-private\n */\nlet MatYearView = /*#__PURE__*/(() => {\n class MatYearView {\n /** The date to display in this year view (everything other than the year is ignored). */\n get activeDate() {\n return this._activeDate;\n }\n set activeDate(value) {\n let oldActiveDate = this._activeDate;\n const validDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value)) || this._dateAdapter.today();\n this._activeDate = this._dateAdapter.clampDate(validDate, this.minDate, this.maxDate);\n if (this._dateAdapter.getYear(oldActiveDate) !== this._dateAdapter.getYear(this._activeDate)) {\n this._init();\n }\n }\n /** The currently selected date. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n if (value instanceof DateRange) {\n this._selected = value;\n } else {\n this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n this._setSelectedMonth(value);\n }\n /** The minimum selectable date. */\n get minDate() {\n return this._minDate;\n }\n set minDate(value) {\n this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /** The maximum selectable date. */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(value) {\n this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n constructor(_changeDetectorRef, _dateFormats, _dateAdapter, _dir) {\n this._changeDetectorRef = _changeDetectorRef;\n this._dateFormats = _dateFormats;\n this._dateAdapter = _dateAdapter;\n this._dir = _dir;\n this._rerenderSubscription = Subscription.EMPTY;\n /** Emits when a new month is selected. */\n this.selectedChange = new EventEmitter();\n /** Emits the selected month. This doesn't imply a change on the selected date */\n this.monthSelected = new EventEmitter();\n /** Emits when any date is activated. */\n this.activeDateChange = new EventEmitter();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MAT_DATE_FORMATS');\n }\n }\n this._activeDate = this._dateAdapter.today();\n }\n ngAfterContentInit() {\n this._rerenderSubscription = this._dateAdapter.localeChanges.pipe(startWith(null)).subscribe(() => this._init());\n }\n ngOnDestroy() {\n this._rerenderSubscription.unsubscribe();\n }\n /** Handles when a new month is selected. */\n _monthSelected(event) {\n const month = event.value;\n const selectedMonth = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, 1);\n this.monthSelected.emit(selectedMonth);\n const selectedDate = this._getDateFromMonth(month);\n this.selectedChange.emit(selectedDate);\n }\n /**\n * Takes the index of a calendar body cell wrapped in an event as argument. For the date that\n * corresponds to the given cell, set `activeDate` to that date and fire `activeDateChange` with\n * that date.\n *\n * This function is used to match each component's model of the active date with the calendar\n * body cell that was focused. It updates its value of `activeDate` synchronously and updates the\n * parent's value asynchronously via the `activeDateChange` event. The child component receives an\n * updated value asynchronously via the `activeCell` Input.\n */\n _updateActiveDate(event) {\n const month = event.value;\n const oldActiveDate = this._activeDate;\n this.activeDate = this._getDateFromMonth(month);\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this.activeDate);\n }\n }\n /** Handles keydown events on the calendar body when calendar is in year view. */\n _handleCalendarBodyKeydown(event) {\n // TODO(mmalerba): We currently allow keyboard navigation to disabled dates, but just prevent\n // disabled ones from being selected. This may not be ideal, we should look into whether\n // navigation should skip over disabled dates, and if so, how to implement that efficiently.\n const oldActiveDate = this._activeDate;\n const isRtl = this._isRtl();\n switch (event.keyCode) {\n case LEFT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, isRtl ? 1 : -1);\n break;\n case RIGHT_ARROW:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, isRtl ? -1 : 1);\n break;\n case UP_ARROW:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, -4);\n break;\n case DOWN_ARROW:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, 4);\n break;\n case HOME:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, -this._dateAdapter.getMonth(this._activeDate));\n break;\n case END:\n this.activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, 11 - this._dateAdapter.getMonth(this._activeDate));\n break;\n case PAGE_UP:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? -10 : -1);\n break;\n case PAGE_DOWN:\n this.activeDate = this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? 10 : 1);\n break;\n case ENTER:\n case SPACE:\n // Note that we only prevent the default action here while the selection happens in\n // `keyup` below. We can't do the selection here, because it can cause the calendar to\n // reopen if focus is restored immediately. We also can't call `preventDefault` on `keyup`\n // because it's too late (see #23305).\n this._selectionKeyPressed = true;\n break;\n default:\n // Don't prevent default or focus active cell on keys that we don't explicitly handle.\n return;\n }\n if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {\n this.activeDateChange.emit(this.activeDate);\n this._focusActiveCellAfterViewChecked();\n }\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n /** Handles keyup events on the calendar body when calendar is in year view. */\n _handleCalendarBodyKeyup(event) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n if (this._selectionKeyPressed) {\n this._monthSelected({\n value: this._dateAdapter.getMonth(this._activeDate),\n event\n });\n }\n this._selectionKeyPressed = false;\n }\n }\n /** Initializes this year view. */\n _init() {\n this._setSelectedMonth(this.selected);\n this._todayMonth = this._getMonthInCurrentYear(this._dateAdapter.today());\n this._yearLabel = this._dateAdapter.getYearName(this.activeDate);\n let monthNames = this._dateAdapter.getMonthNames('short');\n // First row of months only contains 5 elements so we can fit the year label on the same row.\n this._months = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]].map(row => row.map(month => this._createCellForMonth(month, monthNames[month])));\n this._changeDetectorRef.markForCheck();\n }\n /** Focuses the active cell after the microtask queue is empty. */\n _focusActiveCell() {\n this._matCalendarBody._focusActiveCell();\n }\n /** Schedules the matCalendarBody to focus the active cell after change detection has run */\n _focusActiveCellAfterViewChecked() {\n this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked();\n }\n /**\n * Gets the month in this year that the given Date falls on.\n * Returns null if the given Date is in another year.\n */\n _getMonthInCurrentYear(date) {\n return date && this._dateAdapter.getYear(date) == this._dateAdapter.getYear(this.activeDate) ? this._dateAdapter.getMonth(date) : null;\n }\n /**\n * Takes a month and returns a new date in the same day and year as the currently active date.\n * The returned date will have the same month as the argument date.\n */\n _getDateFromMonth(month) {\n const normalizedDate = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, 1);\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(normalizedDate);\n return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, Math.min(this._dateAdapter.getDate(this.activeDate), daysInMonth));\n }\n /** Creates an MatCalendarCell for the given month. */\n _createCellForMonth(month, monthName) {\n const date = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, 1);\n const ariaLabel = this._dateAdapter.format(date, this._dateFormats.display.monthYearA11yLabel);\n const cellClasses = this.dateClass ? this.dateClass(date, 'year') : undefined;\n return new MatCalendarCell(month, monthName.toLocaleUpperCase(), ariaLabel, this._shouldEnableMonth(month), cellClasses);\n }\n /** Whether the given month is enabled. */\n _shouldEnableMonth(month) {\n const activeYear = this._dateAdapter.getYear(this.activeDate);\n if (month === undefined || month === null || this._isYearAndMonthAfterMaxDate(activeYear, month) || this._isYearAndMonthBeforeMinDate(activeYear, month)) {\n return false;\n }\n if (!this.dateFilter) {\n return true;\n }\n const firstOfMonth = this._dateAdapter.createDate(activeYear, month, 1);\n // If any date in the month is enabled count the month as enabled.\n for (let date = firstOfMonth; this._dateAdapter.getMonth(date) == month; date = this._dateAdapter.addCalendarDays(date, 1)) {\n if (this.dateFilter(date)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Tests whether the combination month/year is after this.maxDate, considering\n * just the month and year of this.maxDate\n */\n _isYearAndMonthAfterMaxDate(year, month) {\n if (this.maxDate) {\n const maxYear = this._dateAdapter.getYear(this.maxDate);\n const maxMonth = this._dateAdapter.getMonth(this.maxDate);\n return year > maxYear || year === maxYear && month > maxMonth;\n }\n return false;\n }\n /**\n * Tests whether the combination month/year is before this.minDate, considering\n * just the month and year of this.minDate\n */\n _isYearAndMonthBeforeMinDate(year, month) {\n if (this.minDate) {\n const minYear = this._dateAdapter.getYear(this.minDate);\n const minMonth = this._dateAdapter.getMonth(this.minDate);\n return year < minYear || year === minYear && month < minMonth;\n }\n return false;\n }\n /** Determines whether the user has the RTL layout direction. */\n _isRtl() {\n return this._dir && this._dir.value === 'rtl';\n }\n /** Sets the currently-selected month based on a model value. */\n _setSelectedMonth(value) {\n if (value instanceof DateRange) {\n this._selectedMonth = this._getMonthInCurrentYear(value.start) || this._getMonthInCurrentYear(value.end);\n } else {\n this._selectedMonth = this._getMonthInCurrentYear(value);\n }\n }\n static {\n this.ɵfac = function MatYearView_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatYearView)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatYearView,\n selectors: [[\"mat-year-view\"]],\n viewQuery: function MatYearView_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatCalendarBody, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._matCalendarBody = _t.first);\n }\n },\n inputs: {\n activeDate: \"activeDate\",\n selected: \"selected\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateFilter: \"dateFilter\",\n dateClass: \"dateClass\"\n },\n outputs: {\n selectedChange: \"selectedChange\",\n monthSelected: \"monthSelected\",\n activeDateChange: \"activeDateChange\"\n },\n exportAs: [\"matYearView\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 9,\n consts: [[\"role\", \"grid\", 1, \"mat-calendar-table\"], [\"aria-hidden\", \"true\", 1, \"mat-calendar-table-header\"], [\"colspan\", \"4\", 1, \"mat-calendar-table-header-divider\"], [\"mat-calendar-body\", \"\", 3, \"selectedValueChange\", \"activeDateChange\", \"keyup\", \"keydown\", \"label\", \"rows\", \"todayValue\", \"startValue\", \"endValue\", \"labelMinRequiredCells\", \"numCols\", \"cellAspectRatio\", \"activeCell\"]],\n template: function MatYearView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 0)(1, \"thead\", 1)(2, \"tr\");\n i0.ɵɵelement(3, \"th\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"tbody\", 3);\n i0.ɵɵlistener(\"selectedValueChange\", function MatYearView_Template_tbody_selectedValueChange_4_listener($event) {\n return ctx._monthSelected($event);\n })(\"activeDateChange\", function MatYearView_Template_tbody_activeDateChange_4_listener($event) {\n return ctx._updateActiveDate($event);\n })(\"keyup\", function MatYearView_Template_tbody_keyup_4_listener($event) {\n return ctx._handleCalendarBodyKeyup($event);\n })(\"keydown\", function MatYearView_Template_tbody_keydown_4_listener($event) {\n return ctx._handleCalendarBodyKeydown($event);\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"label\", ctx._yearLabel)(\"rows\", ctx._months)(\"todayValue\", ctx._todayMonth)(\"startValue\", ctx._selectedMonth)(\"endValue\", ctx._selectedMonth)(\"labelMinRequiredCells\", 2)(\"numCols\", 4)(\"cellAspectRatio\", 4 / 7)(\"activeCell\", ctx._dateAdapter.getMonth(ctx.activeDate));\n }\n },\n dependencies: [MatCalendarBody],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatYearView;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet calendarHeaderId = 1;\n/** Default header for MatCalendar */\nlet MatCalendarHeader = /*#__PURE__*/(() => {\n class MatCalendarHeader {\n constructor(_intl, calendar, _dateAdapter, _dateFormats, changeDetectorRef) {\n this._intl = _intl;\n this.calendar = calendar;\n this._dateAdapter = _dateAdapter;\n this._dateFormats = _dateFormats;\n this._id = `mat-calendar-header-${calendarHeaderId++}`;\n this._periodButtonLabelId = `${this._id}-period-label`;\n this.calendar.stateChanges.subscribe(() => changeDetectorRef.markForCheck());\n }\n /** The display text for the current calendar view. */\n get periodButtonText() {\n if (this.calendar.currentView == 'month') {\n return this._dateAdapter.format(this.calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year') {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n return this._intl.formatYearRange(...this._formatMinAndMaxYearLabels());\n }\n /** The aria description for the current calendar view. */\n get periodButtonDescription() {\n if (this.calendar.currentView == 'month') {\n return this._dateAdapter.format(this.calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year') {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n // Format a label for the window of years displayed in the multi-year calendar view. Use\n // `formatYearRangeLabel` because it is TTS friendly.\n return this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels());\n }\n /** The `aria-label` for changing the calendar view. */\n get periodButtonLabel() {\n return this.calendar.currentView == 'month' ? this._intl.switchToMultiYearViewLabel : this._intl.switchToMonthViewLabel;\n }\n /** The label for the previous button. */\n get prevButtonLabel() {\n return {\n 'month': this._intl.prevMonthLabel,\n 'year': this._intl.prevYearLabel,\n 'multi-year': this._intl.prevMultiYearLabel\n }[this.calendar.currentView];\n }\n /** The label for the next button. */\n get nextButtonLabel() {\n return {\n 'month': this._intl.nextMonthLabel,\n 'year': this._intl.nextYearLabel,\n 'multi-year': this._intl.nextMultiYearLabel\n }[this.calendar.currentView];\n }\n /** Handles user clicks on the period label. */\n currentPeriodClicked() {\n this.calendar.currentView = this.calendar.currentView == 'month' ? 'multi-year' : 'month';\n }\n /** Handles user clicks on the previous button. */\n previousClicked() {\n this.calendar.activeDate = this.calendar.currentView == 'month' ? this._dateAdapter.addCalendarMonths(this.calendar.activeDate, -1) : this._dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage);\n }\n /** Handles user clicks on the next button. */\n nextClicked() {\n this.calendar.activeDate = this.calendar.currentView == 'month' ? this._dateAdapter.addCalendarMonths(this.calendar.activeDate, 1) : this._dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage);\n }\n /** Whether the previous period button is enabled. */\n previousEnabled() {\n if (!this.calendar.minDate) {\n return true;\n }\n return !this.calendar.minDate || !this._isSameView(this.calendar.activeDate, this.calendar.minDate);\n }\n /** Whether the next period button is enabled. */\n nextEnabled() {\n return !this.calendar.maxDate || !this._isSameView(this.calendar.activeDate, this.calendar.maxDate);\n }\n /** Whether the two dates represent the same view in the current view mode (month or year). */\n _isSameView(date1, date2) {\n if (this.calendar.currentView == 'month') {\n return this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2) && this._dateAdapter.getMonth(date1) == this._dateAdapter.getMonth(date2);\n }\n if (this.calendar.currentView == 'year') {\n return this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2);\n }\n // Otherwise we are in 'multi-year' view.\n return isSameMultiYearView(this._dateAdapter, date1, date2, this.calendar.minDate, this.calendar.maxDate);\n }\n /**\n * Format two individual labels for the minimum year and maximum year available in the multi-year\n * calendar view. Returns an array of two strings where the first string is the formatted label\n * for the minimum year, and the second string is the formatted label for the maximum year.\n */\n _formatMinAndMaxYearLabels() {\n // The offset from the active year to the \"slot\" for the starting year is the\n // *actual* first rendered year in the multi-year view, and the last year is\n // just yearsPerPage - 1 away.\n const activeYear = this._dateAdapter.getYear(this.calendar.activeDate);\n const minYearOfPage = activeYear - getActiveOffset(this._dateAdapter, this.calendar.activeDate, this.calendar.minDate, this.calendar.maxDate);\n const maxYearOfPage = minYearOfPage + yearsPerPage - 1;\n const minYearLabel = this._dateAdapter.getYearName(this._dateAdapter.createDate(minYearOfPage, 0, 1));\n const maxYearLabel = this._dateAdapter.getYearName(this._dateAdapter.createDate(maxYearOfPage, 0, 1));\n return [minYearLabel, maxYearLabel];\n }\n static {\n this.ɵfac = function MatCalendarHeader_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatCalendarHeader)(i0.ɵɵdirectiveInject(MatDatepickerIntl), i0.ɵɵdirectiveInject(forwardRef(() => MatCalendar)), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatCalendarHeader,\n selectors: [[\"mat-calendar-header\"]],\n exportAs: [\"matCalendarHeader\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 13,\n vars: 11,\n consts: [[1, \"mat-calendar-header\"], [1, \"mat-calendar-controls\"], [\"aria-live\", \"polite\", 1, \"cdk-visually-hidden\", 3, \"id\"], [\"mat-button\", \"\", \"type\", \"button\", 1, \"mat-calendar-period-button\", 3, \"click\"], [\"aria-hidden\", \"true\"], [\"viewBox\", \"0 0 10 5\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-calendar-arrow\"], [\"points\", \"0,0 5,5 10,0\"], [1, \"mat-calendar-spacer\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-calendar-previous-button\", 3, \"click\", \"disabled\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-calendar-next-button\", 3, \"click\", \"disabled\"]],\n template: function MatCalendarHeader_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1)(2, \"span\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"button\", 3);\n i0.ɵɵlistener(\"click\", function MatCalendarHeader_Template_button_click_4_listener() {\n return ctx.currentPeriodClicked();\n });\n i0.ɵɵelementStart(5, \"span\", 4);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(7, \"svg\", 5);\n i0.ɵɵelement(8, \"polygon\", 6);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelement(9, \"div\", 7);\n i0.ɵɵprojection(10);\n i0.ɵɵelementStart(11, \"button\", 8);\n i0.ɵɵlistener(\"click\", function MatCalendarHeader_Template_button_click_11_listener() {\n return ctx.previousClicked();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"button\", 9);\n i0.ɵɵlistener(\"click\", function MatCalendarHeader_Template_button_click_12_listener() {\n return ctx.nextClicked();\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx._periodButtonLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.periodButtonDescription);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx.periodButtonLabel)(\"aria-describedby\", ctx._periodButtonLabelId);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.periodButtonText);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-calendar-invert\", ctx.calendar.currentView !== \"month\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"disabled\", !ctx.previousEnabled());\n i0.ɵɵattribute(\"aria-label\", ctx.prevButtonLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", !ctx.nextEnabled());\n i0.ɵɵattribute(\"aria-label\", ctx.nextButtonLabel);\n }\n },\n dependencies: [MatButton, MatIconButton],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatCalendarHeader;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** A calendar that is used as part of the datepicker. */\nlet MatCalendar = /*#__PURE__*/(() => {\n class MatCalendar {\n /** A date representing the period (month or year) to start the calendar in. */\n get startAt() {\n return this._startAt;\n }\n set startAt(value) {\n this._startAt = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /** The currently selected date. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n if (value instanceof DateRange) {\n this._selected = value;\n } else {\n this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n }\n /** The minimum selectable date. */\n get minDate() {\n return this._minDate;\n }\n set minDate(value) {\n this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /** The maximum selectable date. */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(value) {\n this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /**\n * The current active date. This determines which time period is shown and which date is\n * highlighted when using keyboard navigation.\n */\n get activeDate() {\n return this._clampedActiveDate;\n }\n set activeDate(value) {\n this._clampedActiveDate = this._dateAdapter.clampDate(value, this.minDate, this.maxDate);\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n }\n /** Whether the calendar is in month view. */\n get currentView() {\n return this._currentView;\n }\n set currentView(value) {\n const viewChangedResult = this._currentView !== value ? value : null;\n this._currentView = value;\n this._moveFocusOnNextTick = true;\n this._changeDetectorRef.markForCheck();\n if (viewChangedResult) {\n this.viewChanged.emit(viewChangedResult);\n }\n }\n constructor(_intl, _dateAdapter, _dateFormats, _changeDetectorRef) {\n this._dateAdapter = _dateAdapter;\n this._dateFormats = _dateFormats;\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Used for scheduling that focus should be moved to the active cell on the next tick.\n * We need to schedule it, rather than do it immediately, because we have to wait\n * for Angular to re-evaluate the view children.\n */\n this._moveFocusOnNextTick = false;\n /** Whether the calendar should be started in month or year view. */\n this.startView = 'month';\n /** Emits when the currently selected date changes. */\n this.selectedChange = new EventEmitter();\n /**\n * Emits the year chosen in multiyear view.\n * This doesn't imply a change on the selected date.\n */\n this.yearSelected = new EventEmitter();\n /**\n * Emits the month chosen in year view.\n * This doesn't imply a change on the selected date.\n */\n this.monthSelected = new EventEmitter();\n /**\n * Emits when the current view changes.\n */\n this.viewChanged = new EventEmitter(true);\n /** Emits when any date is selected. */\n this._userSelection = new EventEmitter();\n /** Emits a new date range value when the user completes a drag drop operation. */\n this._userDragDrop = new EventEmitter();\n /** Origin of active drag, or null when dragging is not active. */\n this._activeDrag = null;\n /**\n * Emits whenever there is a state change that the header may need to respond to.\n */\n this.stateChanges = new Subject();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MAT_DATE_FORMATS');\n }\n }\n this._intlChanges = _intl.changes.subscribe(() => {\n _changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n ngAfterContentInit() {\n this._calendarHeaderPortal = new ComponentPortal(this.headerComponent || MatCalendarHeader);\n this.activeDate = this.startAt || this._dateAdapter.today();\n // Assign to the private property since we don't want to move focus on init.\n this._currentView = this.startView;\n }\n ngAfterViewChecked() {\n if (this._moveFocusOnNextTick) {\n this._moveFocusOnNextTick = false;\n this.focusActiveCell();\n }\n }\n ngOnDestroy() {\n this._intlChanges.unsubscribe();\n this.stateChanges.complete();\n }\n ngOnChanges(changes) {\n // Ignore date changes that are at a different time on the same day. This fixes issues where\n // the calendar re-renders when there is no meaningful change to [minDate] or [maxDate]\n // (#24435).\n const minDateChange = changes['minDate'] && !this._dateAdapter.sameDate(changes['minDate'].previousValue, changes['minDate'].currentValue) ? changes['minDate'] : undefined;\n const maxDateChange = changes['maxDate'] && !this._dateAdapter.sameDate(changes['maxDate'].previousValue, changes['maxDate'].currentValue) ? changes['maxDate'] : undefined;\n const changeRequiringRerender = minDateChange || maxDateChange || changes['dateFilter'];\n if (changeRequiringRerender && !changeRequiringRerender.firstChange) {\n const view = this._getCurrentViewComponent();\n if (view) {\n // Schedule focus to be moved to the active date since re-rendering\n // can blur the active cell. See #29265.\n this._moveFocusOnNextTick = true;\n // We need to `detectChanges` manually here, because the `minDate`, `maxDate` etc. are\n // passed down to the view via data bindings which won't be up-to-date when we call `_init`.\n this._changeDetectorRef.detectChanges();\n view._init();\n }\n }\n this.stateChanges.next();\n }\n /** Focuses the active date. */\n focusActiveCell() {\n this._getCurrentViewComponent()._focusActiveCell(false);\n }\n /** Updates today's date after an update of the active date */\n updateTodaysDate() {\n this._getCurrentViewComponent()._init();\n }\n /** Handles date selection in the month view. */\n _dateSelected(event) {\n const date = event.value;\n if (this.selected instanceof DateRange || date && !this._dateAdapter.sameDate(date, this.selected)) {\n this.selectedChange.emit(date);\n }\n this._userSelection.emit(event);\n }\n /** Handles year selection in the multiyear view. */\n _yearSelectedInMultiYearView(normalizedYear) {\n this.yearSelected.emit(normalizedYear);\n }\n /** Handles month selection in the year view. */\n _monthSelectedInYearView(normalizedMonth) {\n this.monthSelected.emit(normalizedMonth);\n }\n /** Handles year/month selection in the multi-year/year views. */\n _goToDateInView(date, view) {\n this.activeDate = date;\n this.currentView = view;\n }\n /** Called when the user starts dragging to change a date range. */\n _dragStarted(event) {\n this._activeDrag = event;\n }\n /**\n * Called when a drag completes. It may end in cancelation or in the selection\n * of a new range.\n */\n _dragEnded(event) {\n if (!this._activeDrag) return;\n if (event.value) {\n this._userDragDrop.emit(event);\n }\n this._activeDrag = null;\n }\n /** Returns the component instance that corresponds to the current calendar view. */\n _getCurrentViewComponent() {\n // The return type is explicitly written as a union to ensure that the Closure compiler does\n // not optimize calls to _init(). Without the explicit return type, TypeScript narrows it to\n // only the first component type. See https://github.com/angular/components/issues/22996.\n return this.monthView || this.yearView || this.multiYearView;\n }\n static {\n this.ɵfac = function MatCalendar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatCalendar)(i0.ɵɵdirectiveInject(MatDatepickerIntl), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatCalendar,\n selectors: [[\"mat-calendar\"]],\n viewQuery: function MatCalendar_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatMonthView, 5);\n i0.ɵɵviewQuery(MatYearView, 5);\n i0.ɵɵviewQuery(MatMultiYearView, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.monthView = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.yearView = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.multiYearView = _t.first);\n }\n },\n hostAttrs: [1, \"mat-calendar\"],\n inputs: {\n headerComponent: \"headerComponent\",\n startAt: \"startAt\",\n startView: \"startView\",\n selected: \"selected\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateFilter: \"dateFilter\",\n dateClass: \"dateClass\",\n comparisonStart: \"comparisonStart\",\n comparisonEnd: \"comparisonEnd\",\n startDateAccessibleName: \"startDateAccessibleName\",\n endDateAccessibleName: \"endDateAccessibleName\"\n },\n outputs: {\n selectedChange: \"selectedChange\",\n yearSelected: \"yearSelected\",\n monthSelected: \"monthSelected\",\n viewChanged: \"viewChanged\",\n _userSelection: \"_userSelection\",\n _userDragDrop: \"_userDragDrop\"\n },\n exportAs: [\"matCalendar\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 2,\n consts: [[3, \"cdkPortalOutlet\"], [\"cdkMonitorSubtreeFocus\", \"\", \"tabindex\", \"-1\", 1, \"mat-calendar-content\"], [3, \"activeDate\", \"selected\", \"dateFilter\", \"maxDate\", \"minDate\", \"dateClass\", \"comparisonStart\", \"comparisonEnd\", \"startDateAccessibleName\", \"endDateAccessibleName\", \"activeDrag\"], [3, \"activeDate\", \"selected\", \"dateFilter\", \"maxDate\", \"minDate\", \"dateClass\"], [3, \"activeDateChange\", \"_userSelection\", \"dragStarted\", \"dragEnded\", \"activeDate\", \"selected\", \"dateFilter\", \"maxDate\", \"minDate\", \"dateClass\", \"comparisonStart\", \"comparisonEnd\", \"startDateAccessibleName\", \"endDateAccessibleName\", \"activeDrag\"], [3, \"activeDateChange\", \"monthSelected\", \"selectedChange\", \"activeDate\", \"selected\", \"dateFilter\", \"maxDate\", \"minDate\", \"dateClass\"], [3, \"activeDateChange\", \"yearSelected\", \"selectedChange\", \"activeDate\", \"selected\", \"dateFilter\", \"maxDate\", \"minDate\", \"dateClass\"]],\n template: function MatCalendar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatCalendar_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵtemplate(2, MatCalendar_Case_2_Template, 1, 11, \"mat-month-view\", 2)(3, MatCalendar_Case_3_Template, 1, 6, \"mat-year-view\", 3)(4, MatCalendar_Case_4_Template, 1, 6, \"mat-multi-year-view\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_1_0;\n i0.ɵɵproperty(\"cdkPortalOutlet\", ctx._calendarHeaderPortal);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional((tmp_1_0 = ctx.currentView) === \"month\" ? 2 : tmp_1_0 === \"year\" ? 3 : tmp_1_0 === \"multi-year\" ? 4 : -1);\n }\n },\n dependencies: [CdkPortalOutlet, CdkMonitorFocus, MatMonthView, MatYearView, MatMultiYearView],\n styles: [\".mat-calendar{display:block;line-height:normal;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-app-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-app-body-medium-size))}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size, var(--mat-app-title-small-size));font-weight:var(--mat-datepicker-calendar-period-button-text-weight, var(--mat-app-title-small-weight));--mdc-text-button-label-text-color:var(--mat-datepicker-calendar-period-button-text-color, var(--mat-app-on-surface-variant))}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color, var(--mat-app-on-surface-variant))}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.cdk-high-contrast-active .mat-calendar-arrow{fill:CanvasText}.mat-calendar-previous-button,.mat-calendar-next-button{position:relative}.mat-datepicker-content .mat-calendar-previous-button:not(.mat-mdc-button-disabled),.mat-datepicker-content .mat-calendar-next-button:not(.mat-mdc-button-disabled){color:var(--mat-datepicker-calendar-navigation-button-icon-color, var(--mat-app-on-surface-variant))}.mat-calendar-previous-button::after,.mat-calendar-next-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color, var(--mat-app-on-surface-variant));font-size:var(--mat-datepicker-calendar-header-text-size, var(--mat-app-title-small-size));font-weight:var(--mat-datepicker-calendar-header-text-weight, var(--mat-app-title-small-weight))}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:\\\"\\\";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:\\\"\\\"}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatCalendar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the Material datepicker.\n * @docs-private\n */\nconst matDatepickerAnimations = {\n /** Transforms the height of the datepicker's calendar. */\n transformPanel: /*#__PURE__*/trigger('transformPanel', [/*#__PURE__*/transition('void => enter-dropdown', /*#__PURE__*/animate('120ms cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/keyframes([/*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n }), /*#__PURE__*/style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })]))), /*#__PURE__*/transition('void => enter-dialog', /*#__PURE__*/animate('150ms cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/keyframes([/*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(0.7)'\n }), /*#__PURE__*/style({\n transform: 'none',\n opacity: 1\n })]))), /*#__PURE__*/transition('* => void', /*#__PURE__*/animate('100ms linear', /*#__PURE__*/style({\n opacity: 0\n })))]),\n /** Fades in the content of the calendar. */\n fadeInCalendar: /*#__PURE__*/trigger('fadeInCalendar', [/*#__PURE__*/state('void', /*#__PURE__*/style({\n opacity: 0\n })), /*#__PURE__*/state('enter', /*#__PURE__*/style({\n opacity: 1\n })),\n /*#__PURE__*/\n // TODO(crisbeto): this animation should be removed since it isn't quite on spec, but we\n // need to keep it until #12440 gets in, otherwise the exit animation will look glitchy.\n transition('void => *', /*#__PURE__*/animate('120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)'))])\n};\n\n/** Used to generate a unique ID for each datepicker instance. */\nlet datepickerUid = 0;\n/** Injection token that determines the scroll handling while the calendar is open. */\nconst MAT_DATEPICKER_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-datepicker-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/** @docs-private */\nfunction MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_DATEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY\n};\n/**\n * Component used as the content for the datepicker overlay. We use this instead of using\n * MatCalendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the overlay that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * @docs-private\n */\nlet MatDatepickerContent = /*#__PURE__*/(() => {\n class MatDatepickerContent {\n constructor(_elementRef, _changeDetectorRef, _globalModel, _dateAdapter, _rangeSelectionStrategy, intl) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._globalModel = _globalModel;\n this._dateAdapter = _dateAdapter;\n this._rangeSelectionStrategy = _rangeSelectionStrategy;\n this._subscriptions = new Subscription();\n /** Emits when an animation has finished. */\n this._animationDone = new Subject();\n /** Whether there is an in-progress animation. */\n this._isAnimating = false;\n /** Portal with projected action buttons. */\n this._actionsPortal = null;\n this._closeButtonText = intl.closeCalendarLabel;\n }\n ngOnInit() {\n this._animationState = this.datepicker.touchUi ? 'enter-dialog' : 'enter-dropdown';\n }\n ngAfterViewInit() {\n this._subscriptions.add(this.datepicker.stateChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n }));\n this._calendar.focusActiveCell();\n }\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n this._animationDone.complete();\n }\n _handleUserSelection(event) {\n const selection = this._model.selection;\n const value = event.value;\n const isRange = selection instanceof DateRange;\n // If we're selecting a range and we have a selection strategy, always pass the value through\n // there. Otherwise don't assign null values to the model, unless we're selecting a range.\n // A null value when picking a range means that the user cancelled the selection (e.g. by\n // pressing escape), whereas when selecting a single value it means that the value didn't\n // change. This isn't very intuitive, but it's here for backwards-compatibility.\n if (isRange && this._rangeSelectionStrategy) {\n const newSelection = this._rangeSelectionStrategy.selectionFinished(value, selection, event.event);\n this._model.updateSelection(newSelection, this);\n } else if (value && (isRange || !this._dateAdapter.sameDate(value, selection))) {\n this._model.add(value);\n }\n // Delegate closing the overlay to the actions.\n if ((!this._model || this._model.isComplete()) && !this._actionsPortal) {\n this.datepicker.close();\n }\n }\n _handleUserDragDrop(event) {\n this._model.updateSelection(event.value, this);\n }\n _startExitAnimation() {\n this._animationState = 'void';\n this._changeDetectorRef.markForCheck();\n }\n _handleAnimationEvent(event) {\n this._isAnimating = event.phaseName === 'start';\n if (!this._isAnimating) {\n this._animationDone.next();\n }\n }\n _getSelected() {\n return this._model.selection;\n }\n /** Applies the current pending selection to the global model. */\n _applyPendingSelection() {\n if (this._model !== this._globalModel) {\n this._globalModel.updateSelection(this._model.selection, this);\n }\n }\n /**\n * Assigns a new portal containing the datepicker actions.\n * @param portal Portal with the actions to be assigned.\n * @param forceRerender Whether a re-render of the portal should be triggered. This isn't\n * necessary if the portal is assigned during initialization, but it may be required if it's\n * added at a later point.\n */\n _assignActions(portal, forceRerender) {\n // If we have actions, clone the model so that we have the ability to cancel the selection,\n // otherwise update the global model directly. Note that we want to assign this as soon as\n // possible, but `_actionsPortal` isn't available in the constructor so we do it in `ngOnInit`.\n this._model = portal ? this._globalModel.clone() : this._globalModel;\n this._actionsPortal = portal;\n if (forceRerender) {\n this._changeDetectorRef.detectChanges();\n }\n }\n static {\n this.ɵfac = function MatDatepickerContent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerContent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MatDateSelectionModel), i0.ɵɵdirectiveInject(i1.DateAdapter), i0.ɵɵdirectiveInject(MAT_DATE_RANGE_SELECTION_STRATEGY, 8), i0.ɵɵdirectiveInject(MatDatepickerIntl));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDatepickerContent,\n selectors: [[\"mat-datepicker-content\"]],\n viewQuery: function MatDatepickerContent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatCalendar, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._calendar = _t.first);\n }\n },\n hostAttrs: [1, \"mat-datepicker-content\"],\n hostVars: 5,\n hostBindings: function MatDatepickerContent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@transformPanel.start\", function MatDatepickerContent_animation_transformPanel_start_HostBindingHandler($event) {\n return ctx._handleAnimationEvent($event);\n })(\"@transformPanel.done\", function MatDatepickerContent_animation_transformPanel_done_HostBindingHandler($event) {\n return ctx._handleAnimationEvent($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@transformPanel\", ctx._animationState);\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-datepicker-content-touch\", ctx.datepicker.touchUi);\n }\n },\n inputs: {\n color: \"color\"\n },\n exportAs: [\"matDatepickerContent\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 27,\n consts: [[\"cdkTrapFocus\", \"\", \"role\", \"dialog\", 1, \"mat-datepicker-content-container\"], [3, \"yearSelected\", \"monthSelected\", \"viewChanged\", \"_userSelection\", \"_userDragDrop\", \"id\", \"startAt\", \"startView\", \"minDate\", \"maxDate\", \"dateFilter\", \"headerComponent\", \"selected\", \"dateClass\", \"comparisonStart\", \"comparisonEnd\", \"startDateAccessibleName\", \"endDateAccessibleName\"], [3, \"cdkPortalOutlet\"], [\"type\", \"button\", \"mat-raised-button\", \"\", 1, \"mat-datepicker-close-button\", 3, \"focus\", \"blur\", \"click\", \"color\"]],\n template: function MatDatepickerContent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"mat-calendar\", 1);\n i0.ɵɵlistener(\"yearSelected\", function MatDatepickerContent_Template_mat_calendar_yearSelected_1_listener($event) {\n return ctx.datepicker._selectYear($event);\n })(\"monthSelected\", function MatDatepickerContent_Template_mat_calendar_monthSelected_1_listener($event) {\n return ctx.datepicker._selectMonth($event);\n })(\"viewChanged\", function MatDatepickerContent_Template_mat_calendar_viewChanged_1_listener($event) {\n return ctx.datepicker._viewChanged($event);\n })(\"_userSelection\", function MatDatepickerContent_Template_mat_calendar__userSelection_1_listener($event) {\n return ctx._handleUserSelection($event);\n })(\"_userDragDrop\", function MatDatepickerContent_Template_mat_calendar__userDragDrop_1_listener($event) {\n return ctx._handleUserDragDrop($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, MatDatepickerContent_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelementStart(3, \"button\", 3);\n i0.ɵɵlistener(\"focus\", function MatDatepickerContent_Template_button_focus_3_listener() {\n return ctx._closeButtonFocused = true;\n })(\"blur\", function MatDatepickerContent_Template_button_blur_3_listener() {\n return ctx._closeButtonFocused = false;\n })(\"click\", function MatDatepickerContent_Template_button_click_3_listener() {\n return ctx.datepicker.close();\n });\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n let tmp_3_0;\n i0.ɵɵclassProp(\"mat-datepicker-content-container-with-custom-header\", ctx.datepicker.calendarHeaderComponent)(\"mat-datepicker-content-container-with-actions\", ctx._actionsPortal);\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", (tmp_3_0 = ctx._dialogLabelId) !== null && tmp_3_0 !== undefined ? tmp_3_0 : undefined);\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.datepicker.panelClass);\n i0.ɵɵproperty(\"id\", ctx.datepicker.id)(\"startAt\", ctx.datepicker.startAt)(\"startView\", ctx.datepicker.startView)(\"minDate\", ctx.datepicker._getMinDate())(\"maxDate\", ctx.datepicker._getMaxDate())(\"dateFilter\", ctx.datepicker._getDateFilter())(\"headerComponent\", ctx.datepicker.calendarHeaderComponent)(\"selected\", ctx._getSelected())(\"dateClass\", ctx.datepicker.dateClass)(\"comparisonStart\", ctx.comparisonStart)(\"comparisonEnd\", ctx.comparisonEnd)(\"@fadeInCalendar\", \"enter\")(\"startDateAccessibleName\", ctx.startDateAccessibleName)(\"endDateAccessibleName\", ctx.endDateAccessibleName);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"cdkPortalOutlet\", ctx._actionsPortal);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"cdk-visually-hidden\", !ctx._closeButtonFocused);\n i0.ɵɵproperty(\"color\", ctx.color || \"primary\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx._closeButtonText);\n }\n },\n dependencies: [CdkTrapFocus, MatCalendar, CdkPortalOutlet, MatButton],\n styles: [\".mat-datepicker-content{display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color, var(--mat-app-surface-container-high));color:var(--mat-datepicker-calendar-container-text-color, var(--mat-app-on-surface));box-shadow:var(--mat-datepicker-calendar-container-elevation-shadow);border-radius:var(--mat-datepicker-calendar-container-shape, var(--mat-app-corner-large))}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;box-shadow:var(--mat-datepicker-calendar-container-touch-elevation-shadow);border-radius:var(--mat-datepicker-calendar-container-touch-shape, var(--mat-app-corner-extra-large));position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}\"],\n encapsulation: 2,\n data: {\n animation: [matDatepickerAnimations.transformPanel, matDatepickerAnimations.fadeInCalendar]\n },\n changeDetection: 0\n });\n }\n }\n return MatDatepickerContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Base class for a datepicker. */\nlet MatDatepickerBase = /*#__PURE__*/(() => {\n class MatDatepickerBase {\n /** The date to open the calendar to initially. */\n get startAt() {\n // If an explicit startAt is set we start there, otherwise we start at whatever the currently\n // selected value is.\n return this._startAt || (this.datepickerInput ? this.datepickerInput.getStartValue() : null);\n }\n set startAt(value) {\n this._startAt = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n }\n /**\n * Theme color of the datepicker's calendar. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n get color() {\n return this._color || (this.datepickerInput ? this.datepickerInput.getThemePalette() : undefined);\n }\n set color(value) {\n this._color = value;\n }\n /** Whether the datepicker pop-up should be disabled. */\n get disabled() {\n return this._disabled === undefined && this.datepickerInput ? this.datepickerInput.disabled : !!this._disabled;\n }\n set disabled(value) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.stateChanges.next(undefined);\n }\n }\n /** Classes to be passed to the date picker panel. */\n get panelClass() {\n return this._panelClass;\n }\n set panelClass(value) {\n this._panelClass = coerceStringArray(value);\n }\n /** Whether the calendar is open. */\n get opened() {\n return this._opened;\n }\n set opened(value) {\n if (value) {\n this.open();\n } else {\n this.close();\n }\n }\n /** The minimum selectable date. */\n _getMinDate() {\n return this.datepickerInput && this.datepickerInput.min;\n }\n /** The maximum selectable date. */\n _getMaxDate() {\n return this.datepickerInput && this.datepickerInput.max;\n }\n _getDateFilter() {\n return this.datepickerInput && this.datepickerInput.dateFilter;\n }\n constructor(_overlay,\n /**\n * @deprecated parameter is unused and will be removed\n * @breaking-change 19.0.0\n */\n _unusedNgZone, _viewContainerRef, scrollStrategy, _dateAdapter, _dir, _model) {\n this._overlay = _overlay;\n this._viewContainerRef = _viewContainerRef;\n this._dateAdapter = _dateAdapter;\n this._dir = _dir;\n this._model = _model;\n this._inputStateChanges = Subscription.EMPTY;\n this._document = inject(DOCUMENT);\n /** The view that the calendar should start in. */\n this.startView = 'month';\n /**\n * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n * than a dropdown and elements have more padding to allow for bigger touch targets.\n */\n this.touchUi = false;\n /** Preferred position of the datepicker in the X axis. */\n this.xPosition = 'start';\n /** Preferred position of the datepicker in the Y axis. */\n this.yPosition = 'below';\n /**\n * Whether to restore focus to the previously-focused element when the calendar is closed.\n * Note that automatic focus restoration is an accessibility feature and it is recommended that\n * you provide your own equivalent, if you decide to turn it off.\n */\n this.restoreFocus = true;\n /**\n * Emits selected year in multiyear view.\n * This doesn't imply a change on the selected date.\n */\n this.yearSelected = new EventEmitter();\n /**\n * Emits selected month in year view.\n * This doesn't imply a change on the selected date.\n */\n this.monthSelected = new EventEmitter();\n /**\n * Emits when the current view changes.\n */\n this.viewChanged = new EventEmitter(true);\n /** Emits when the datepicker has been opened. */\n this.openedStream = new EventEmitter();\n /** Emits when the datepicker has been closed. */\n this.closedStream = new EventEmitter();\n this._opened = false;\n /** The id for the datepicker calendar. */\n this.id = `mat-datepicker-${datepickerUid++}`;\n /** The element that was focused before the datepicker was opened. */\n this._focusedElementBeforeOpen = null;\n /** Unique class that will be added to the backdrop so that the test harnesses can look it up. */\n this._backdropHarnessClass = `${this.id}-backdrop`;\n /** Emits when the datepicker's state changes. */\n this.stateChanges = new Subject();\n this._injector = inject(Injector);\n this._changeDetectorRef = inject(ChangeDetectorRef);\n if (!this._dateAdapter && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw createMissingDateImplError('DateAdapter');\n }\n this._scrollStrategy = scrollStrategy;\n this._model.selectionChanged.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n ngOnChanges(changes) {\n const positionChange = changes['xPosition'] || changes['yPosition'];\n if (positionChange && !positionChange.firstChange && this._overlayRef) {\n const positionStrategy = this._overlayRef.getConfig().positionStrategy;\n if (positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this._setConnectedPositions(positionStrategy);\n if (this.opened) {\n this._overlayRef.updatePosition();\n }\n }\n }\n this.stateChanges.next(undefined);\n }\n ngOnDestroy() {\n this._destroyOverlay();\n this.close();\n this._inputStateChanges.unsubscribe();\n this.stateChanges.complete();\n }\n /** Selects the given date */\n select(date) {\n this._model.add(date);\n }\n /** Emits the selected year in multiyear view */\n _selectYear(normalizedYear) {\n this.yearSelected.emit(normalizedYear);\n }\n /** Emits selected month in year view */\n _selectMonth(normalizedMonth) {\n this.monthSelected.emit(normalizedMonth);\n }\n /** Emits changed view */\n _viewChanged(view) {\n this.viewChanged.emit(view);\n }\n /**\n * Register an input with this datepicker.\n * @param input The datepicker input to register with this datepicker.\n * @returns Selection model that the input should hook itself up to.\n */\n registerInput(input) {\n if (this.datepickerInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('A MatDatepicker can only be associated with a single input.');\n }\n this._inputStateChanges.unsubscribe();\n this.datepickerInput = input;\n this._inputStateChanges = input.stateChanges.subscribe(() => this.stateChanges.next(undefined));\n return this._model;\n }\n /**\n * Registers a portal containing action buttons with the datepicker.\n * @param portal Portal to be registered.\n */\n registerActions(portal) {\n if (this._actionsPortal && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('A MatDatepicker can only be associated with a single actions row.');\n }\n this._actionsPortal = portal;\n this._componentRef?.instance._assignActions(portal, true);\n }\n /**\n * Removes a portal containing action buttons from the datepicker.\n * @param portal Portal to be removed.\n */\n removeActions(portal) {\n if (portal === this._actionsPortal) {\n this._actionsPortal = null;\n this._componentRef?.instance._assignActions(null, true);\n }\n }\n /** Open the calendar. */\n open() {\n // Skip reopening if there's an in-progress animation to avoid overlapping\n // sequences which can cause \"changed after checked\" errors. See #25837.\n if (this._opened || this.disabled || this._componentRef?.instance._isAnimating) {\n return;\n }\n if (!this.datepickerInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempted to open an MatDatepicker with no associated input.');\n }\n this._focusedElementBeforeOpen = _getFocusedElementPierceShadowDom();\n this._openOverlay();\n this._opened = true;\n this.openedStream.emit();\n }\n /** Close the calendar. */\n close() {\n // Skip reopening if there's an in-progress animation to avoid overlapping\n // sequences which can cause \"changed after checked\" errors. See #25837.\n if (!this._opened || this._componentRef?.instance._isAnimating) {\n return;\n }\n const canRestoreFocus = this.restoreFocus && this._focusedElementBeforeOpen && typeof this._focusedElementBeforeOpen.focus === 'function';\n const completeClose = () => {\n // The `_opened` could've been reset already if\n // we got two events in quick succession.\n if (this._opened) {\n this._opened = false;\n this.closedStream.emit();\n }\n };\n if (this._componentRef) {\n const {\n instance,\n location\n } = this._componentRef;\n instance._startExitAnimation();\n instance._animationDone.pipe(take(1)).subscribe(() => {\n const activeElement = this._document.activeElement;\n // Since we restore focus after the exit animation, we have to check that\n // the user didn't move focus themselves inside the `close` handler.\n if (canRestoreFocus && (!activeElement || activeElement === this._document.activeElement || location.nativeElement.contains(activeElement))) {\n this._focusedElementBeforeOpen.focus();\n }\n this._focusedElementBeforeOpen = null;\n this._destroyOverlay();\n });\n }\n if (canRestoreFocus) {\n // Because IE moves focus asynchronously, we can't count on it being restored before we've\n // marked the datepicker as closed. If the event fires out of sequence and the element that\n // we're refocusing opens the datepicker on focus, the user could be stuck with not being\n // able to close the calendar at all. We work around it by making the logic, that marks\n // the datepicker as closed, async as well.\n setTimeout(completeClose);\n } else {\n completeClose();\n }\n }\n /** Applies the current pending selection on the overlay to the model. */\n _applyPendingSelection() {\n this._componentRef?.instance?._applyPendingSelection();\n }\n /** Forwards relevant values from the datepicker to the datepicker content inside the overlay. */\n _forwardContentValues(instance) {\n instance.datepicker = this;\n instance.color = this.color;\n instance._dialogLabelId = this.datepickerInput.getOverlayLabelId();\n instance._assignActions(this._actionsPortal, false);\n }\n /** Opens the overlay with the calendar. */\n _openOverlay() {\n this._destroyOverlay();\n const isDialog = this.touchUi;\n const portal = new ComponentPortal(MatDatepickerContent, this._viewContainerRef);\n const overlayRef = this._overlayRef = this._overlay.create(new OverlayConfig({\n positionStrategy: isDialog ? this._getDialogStrategy() : this._getDropdownStrategy(),\n hasBackdrop: true,\n backdropClass: [isDialog ? 'cdk-overlay-dark-backdrop' : 'mat-overlay-transparent-backdrop', this._backdropHarnessClass],\n direction: this._dir,\n scrollStrategy: isDialog ? this._overlay.scrollStrategies.block() : this._scrollStrategy(),\n panelClass: `mat-datepicker-${isDialog ? 'dialog' : 'popup'}`\n }));\n this._getCloseStream(overlayRef).subscribe(event => {\n if (event) {\n event.preventDefault();\n }\n this.close();\n });\n // The `preventDefault` call happens inside the calendar as well, however focus moves into\n // it inside a timeout which can give browsers a chance to fire off a keyboard event in-between\n // that can scroll the page (see #24969). Always block default actions of arrow keys for the\n // entire overlay so the page doesn't get scrolled by accident.\n overlayRef.keydownEvents().subscribe(event => {\n const keyCode = event.keyCode;\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW || keyCode === PAGE_UP || keyCode === PAGE_DOWN) {\n event.preventDefault();\n }\n });\n this._componentRef = overlayRef.attach(portal);\n this._forwardContentValues(this._componentRef.instance);\n // Update the position once the calendar has rendered. Only relevant in dropdown mode.\n if (!isDialog) {\n afterNextRender(() => {\n overlayRef.updatePosition();\n }, {\n injector: this._injector\n });\n }\n }\n /** Destroys the current overlay. */\n _destroyOverlay() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = this._componentRef = null;\n }\n }\n /** Gets a position strategy that will open the calendar as a dropdown. */\n _getDialogStrategy() {\n return this._overlay.position().global().centerHorizontally().centerVertically();\n }\n /** Gets a position strategy that will open the calendar as a dropdown. */\n _getDropdownStrategy() {\n const strategy = this._overlay.position().flexibleConnectedTo(this.datepickerInput.getConnectedOverlayOrigin()).withTransformOriginOn('.mat-datepicker-content').withFlexibleDimensions(false).withViewportMargin(8).withLockedPosition();\n return this._setConnectedPositions(strategy);\n }\n /** Sets the positions of the datepicker in dropdown mode based on the current configuration. */\n _setConnectedPositions(strategy) {\n const primaryX = this.xPosition === 'end' ? 'end' : 'start';\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\n const primaryY = this.yPosition === 'above' ? 'bottom' : 'top';\n const secondaryY = primaryY === 'top' ? 'bottom' : 'top';\n return strategy.withPositions([{\n originX: primaryX,\n originY: secondaryY,\n overlayX: primaryX,\n overlayY: primaryY\n }, {\n originX: primaryX,\n originY: primaryY,\n overlayX: primaryX,\n overlayY: secondaryY\n }, {\n originX: secondaryX,\n originY: secondaryY,\n overlayX: secondaryX,\n overlayY: primaryY\n }, {\n originX: secondaryX,\n originY: primaryY,\n overlayX: secondaryX,\n overlayY: secondaryY\n }]);\n }\n /** Gets an observable that will emit when the overlay is supposed to be closed. */\n _getCloseStream(overlayRef) {\n const ctrlShiftMetaModifiers = ['ctrlKey', 'shiftKey', 'metaKey'];\n return merge(overlayRef.backdropClick(), overlayRef.detachments(), overlayRef.keydownEvents().pipe(filter(event => {\n // Closing on alt + up is only valid when there's an input associated with the datepicker.\n return event.keyCode === ESCAPE && !hasModifierKey(event) || this.datepickerInput && hasModifierKey(event, 'altKey') && event.keyCode === UP_ARROW && ctrlShiftMetaModifiers.every(modifier => !hasModifierKey(event, modifier));\n })));\n }\n static {\n this.ɵfac = function MatDatepickerBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerBase)(i0.ɵɵdirectiveInject(i4.Overlay), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_DATEPICKER_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(MatDateSelectionModel));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerBase,\n inputs: {\n calendarHeaderComponent: \"calendarHeaderComponent\",\n startAt: \"startAt\",\n startView: \"startView\",\n color: \"color\",\n touchUi: [2, \"touchUi\", \"touchUi\", booleanAttribute],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n xPosition: \"xPosition\",\n yPosition: \"yPosition\",\n restoreFocus: [2, \"restoreFocus\", \"restoreFocus\", booleanAttribute],\n dateClass: \"dateClass\",\n panelClass: \"panelClass\",\n opened: [2, \"opened\", \"opened\", booleanAttribute]\n },\n outputs: {\n yearSelected: \"yearSelected\",\n monthSelected: \"monthSelected\",\n viewChanged: \"viewChanged\",\n openedStream: \"opened\",\n closedStream: \"closed\"\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatDatepickerBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// TODO(mmalerba): We use a component instead of a directive here so the user can use implicit\n// template reference variables (e.g. #d vs #d=\"matDatepicker\"). We can change this to a directive\n// if angular adds support for `exportAs: '$implicit'` on directives.\n/** Component responsible for managing the datepicker popup/dialog. */\nlet MatDatepicker = /*#__PURE__*/(() => {\n class MatDatepicker extends MatDatepickerBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatDatepicker_BaseFactory;\n return function MatDatepicker_Factory(__ngFactoryType__) {\n return (ɵMatDatepicker_BaseFactory || (ɵMatDatepicker_BaseFactory = i0.ɵɵgetInheritedFactory(MatDatepicker)))(__ngFactoryType__ || MatDatepicker);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDatepicker,\n selectors: [[\"mat-datepicker\"]],\n exportAs: [\"matDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER, {\n provide: MatDatepickerBase,\n useExisting: MatDatepicker\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function MatDatepicker_Template(rf, ctx) {},\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDatepicker;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * An event used for datepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * calendar popup. For consistency, we always use MatDatepickerInputEvent instead.\n */\nclass MatDatepickerInputEvent {\n constructor(/** Reference to the datepicker input component that emitted the event. */\n target, /** Reference to the native input element associated with the datepicker input. */\n targetElement) {\n this.target = target;\n this.targetElement = targetElement;\n this.value = this.target.value;\n }\n}\n/** Base class for datepicker inputs. */\nlet MatDatepickerInputBase = /*#__PURE__*/(() => {\n class MatDatepickerInputBase {\n /** The value of the input. */\n get value() {\n return this._model ? this._getValueFromModel(this._model.selection) : this._pendingValue;\n }\n set value(value) {\n this._assignValueProgrammatically(value);\n }\n /** Whether the datepicker-input is disabled. */\n get disabled() {\n return !!this._disabled || this._parentDisabled();\n }\n set disabled(value) {\n const newValue = value;\n const element = this._elementRef.nativeElement;\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this.stateChanges.next(undefined);\n }\n // We need to null check the `blur` method, because it's undefined during SSR.\n // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.\n // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the\n // element has been inserted.\n if (newValue && this._isInitialized && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n /** Gets the base validator functions. */\n _getValidators() {\n return [this._parseValidator, this._minValidator, this._maxValidator, this._filterValidator];\n }\n /** Registers a date selection model with the input. */\n _registerModel(model) {\n this._model = model;\n this._valueChangesSubscription.unsubscribe();\n if (this._pendingValue) {\n this._assignValue(this._pendingValue);\n }\n this._valueChangesSubscription = this._model.selectionChanged.subscribe(event => {\n if (this._shouldHandleChangeEvent(event)) {\n const value = this._getValueFromModel(event.selection);\n this._lastValueValid = this._isValidValue(value);\n this._cvaOnChange(value);\n this._onTouched();\n this._formatValue(value);\n this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));\n this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));\n }\n });\n }\n constructor(_elementRef, _dateAdapter, _dateFormats) {\n this._elementRef = _elementRef;\n this._dateAdapter = _dateAdapter;\n this._dateFormats = _dateFormats;\n /** Emits when a `change` event is fired on this `<input>`. */\n this.dateChange = new EventEmitter();\n /** Emits when an `input` event is fired on this `<input>`. */\n this.dateInput = new EventEmitter();\n /** Emits when the internal state has changed */\n this.stateChanges = new Subject();\n this._onTouched = () => {};\n this._validatorOnChange = () => {};\n this._cvaOnChange = () => {};\n this._valueChangesSubscription = Subscription.EMPTY;\n this._localeSubscription = Subscription.EMPTY;\n /** The form control validator for whether the input parses. */\n this._parseValidator = () => {\n return this._lastValueValid ? null : {\n 'matDatepickerParse': {\n 'text': this._elementRef.nativeElement.value\n }\n };\n };\n /** The form control validator for the date filter. */\n this._filterValidator = control => {\n const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));\n return !controlValue || this._matchesFilter(controlValue) ? null : {\n 'matDatepickerFilter': true\n };\n };\n /** The form control validator for the min date. */\n this._minValidator = control => {\n const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));\n const min = this._getMinDate();\n return !min || !controlValue || this._dateAdapter.compareDate(min, controlValue) <= 0 ? null : {\n 'matDatepickerMin': {\n 'min': min,\n 'actual': controlValue\n }\n };\n };\n /** The form control validator for the max date. */\n this._maxValidator = control => {\n const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));\n const max = this._getMaxDate();\n return !max || !controlValue || this._dateAdapter.compareDate(max, controlValue) >= 0 ? null : {\n 'matDatepickerMax': {\n 'max': max,\n 'actual': controlValue\n }\n };\n };\n /** Whether the last value set on the input was valid. */\n this._lastValueValid = false;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MAT_DATE_FORMATS');\n }\n }\n // Update the displayed date when the locale changes.\n this._localeSubscription = _dateAdapter.localeChanges.subscribe(() => {\n this._assignValueProgrammatically(this.value);\n });\n }\n ngAfterViewInit() {\n this._isInitialized = true;\n }\n ngOnChanges(changes) {\n if (dateInputsHaveChanged(changes, this._dateAdapter)) {\n this.stateChanges.next(undefined);\n }\n }\n ngOnDestroy() {\n this._valueChangesSubscription.unsubscribe();\n this._localeSubscription.unsubscribe();\n this.stateChanges.complete();\n }\n /** @docs-private */\n registerOnValidatorChange(fn) {\n this._validatorOnChange = fn;\n }\n /** @docs-private */\n validate(c) {\n return this._validator ? this._validator(c) : null;\n }\n // Implemented as part of ControlValueAccessor.\n writeValue(value) {\n this._assignValueProgrammatically(value);\n }\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn) {\n this._cvaOnChange = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n _onKeydown(event) {\n const ctrlShiftMetaModifiers = ['ctrlKey', 'shiftKey', 'metaKey'];\n const isAltDownArrow = hasModifierKey(event, 'altKey') && event.keyCode === DOWN_ARROW && ctrlShiftMetaModifiers.every(modifier => !hasModifierKey(event, modifier));\n if (isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n this._openPopup();\n event.preventDefault();\n }\n }\n _onInput(value) {\n const lastValueWasValid = this._lastValueValid;\n let date = this._dateAdapter.parse(value, this._dateFormats.parse.dateInput);\n this._lastValueValid = this._isValidValue(date);\n date = this._dateAdapter.getValidDateOrNull(date);\n const hasChanged = !this._dateAdapter.sameDate(date, this.value);\n // We need to fire the CVA change event for all\n // nulls, otherwise the validators won't run.\n if (!date || hasChanged) {\n this._cvaOnChange(date);\n } else {\n // Call the CVA change handler for invalid values\n // since this is what marks the control as dirty.\n if (value && !this.value) {\n this._cvaOnChange(date);\n }\n if (lastValueWasValid !== this._lastValueValid) {\n this._validatorOnChange();\n }\n }\n if (hasChanged) {\n this._assignValue(date);\n this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));\n }\n }\n _onChange() {\n this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));\n }\n /** Handles blur events on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n this._onTouched();\n }\n /** Formats a value and sets it on the input element. */\n _formatValue(value) {\n this._elementRef.nativeElement.value = value != null ? this._dateAdapter.format(value, this._dateFormats.display.dateInput) : '';\n }\n /** Assigns a value to the model. */\n _assignValue(value) {\n // We may get some incoming values before the model was\n // assigned. Save the value so that we can assign it later.\n if (this._model) {\n this._assignValueToModel(value);\n this._pendingValue = null;\n } else {\n this._pendingValue = value;\n }\n }\n /** Whether a value is considered valid. */\n _isValidValue(value) {\n return !value || this._dateAdapter.isValid(value);\n }\n /**\n * Checks whether a parent control is disabled. This is in place so that it can be overridden\n * by inputs extending this one which can be placed inside of a group that can be disabled.\n */\n _parentDisabled() {\n return false;\n }\n /** Programmatically assigns a value to the input. */\n _assignValueProgrammatically(value) {\n value = this._dateAdapter.deserialize(value);\n this._lastValueValid = this._isValidValue(value);\n value = this._dateAdapter.getValidDateOrNull(value);\n this._assignValue(value);\n this._formatValue(value);\n }\n /** Gets whether a value matches the current date filter. */\n _matchesFilter(value) {\n const filter = this._getDateFilter();\n return !filter || filter(value);\n }\n static {\n this.ɵfac = function MatDatepickerInputBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerInputBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerInputBase,\n inputs: {\n value: \"value\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute]\n },\n outputs: {\n dateChange: \"dateChange\",\n dateInput: \"dateInput\"\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatDatepickerInputBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Checks whether the `SimpleChanges` object from an `ngOnChanges`\n * callback has any changes, accounting for date objects.\n */\nfunction dateInputsHaveChanged(changes, adapter) {\n const keys = Object.keys(changes);\n for (let key of keys) {\n const {\n previousValue,\n currentValue\n } = changes[key];\n if (adapter.isDateInstance(previousValue) && adapter.isDateInstance(currentValue)) {\n if (!adapter.sameDate(previousValue, currentValue)) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n}\n\n/** @docs-private */\nconst MAT_DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: /*#__PURE__*/forwardRef(() => MatDatepickerInput),\n multi: true\n};\n/** @docs-private */\nconst MAT_DATEPICKER_VALIDATORS = {\n provide: NG_VALIDATORS,\n useExisting: /*#__PURE__*/forwardRef(() => MatDatepickerInput),\n multi: true\n};\n/** Directive used to connect an input to a MatDatepicker. */\nlet MatDatepickerInput = /*#__PURE__*/(() => {\n class MatDatepickerInput extends MatDatepickerInputBase {\n /** The datepicker that this input is associated with. */\n set matDatepicker(datepicker) {\n if (datepicker) {\n this._datepicker = datepicker;\n this._ariaOwns.set(datepicker.opened ? datepicker.id : null);\n this._closedSubscription = datepicker.closedStream.subscribe(() => {\n this._onTouched();\n this._ariaOwns.set(null);\n });\n this._openedSubscription = datepicker.openedStream.subscribe(() => {\n this._ariaOwns.set(datepicker.id);\n });\n this._registerModel(datepicker.registerInput(this));\n }\n }\n /** The minimum valid date. */\n get min() {\n return this._min;\n }\n set min(value) {\n const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n if (!this._dateAdapter.sameDate(validValue, this._min)) {\n this._min = validValue;\n this._validatorOnChange();\n }\n }\n /** The maximum valid date. */\n get max() {\n return this._max;\n }\n set max(value) {\n const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n if (!this._dateAdapter.sameDate(validValue, this._max)) {\n this._max = validValue;\n this._validatorOnChange();\n }\n }\n /** Function that can be used to filter out dates within the datepicker. */\n get dateFilter() {\n return this._dateFilter;\n }\n set dateFilter(value) {\n const wasMatchingValue = this._matchesFilter(this.value);\n this._dateFilter = value;\n if (this._matchesFilter(this.value) !== wasMatchingValue) {\n this._validatorOnChange();\n }\n }\n constructor(elementRef, dateAdapter, dateFormats, _formField) {\n super(elementRef, dateAdapter, dateFormats);\n this._formField = _formField;\n this._closedSubscription = Subscription.EMPTY;\n this._openedSubscription = Subscription.EMPTY;\n /** The id of the panel owned by this input. */\n this._ariaOwns = signal(null);\n this._validator = Validators.compose(super._getValidators());\n }\n /**\n * Gets the element that the datepicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin() {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n /** Gets the ID of an element that should be used a description for the calendar overlay. */\n getOverlayLabelId() {\n if (this._formField) {\n return this._formField.getLabelId();\n }\n return this._elementRef.nativeElement.getAttribute('aria-labelledby');\n }\n /** Returns the palette used by the input's form field, if any. */\n getThemePalette() {\n return this._formField ? this._formField.color : undefined;\n }\n /** Gets the value at which the calendar should start. */\n getStartValue() {\n return this.value;\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._closedSubscription.unsubscribe();\n this._openedSubscription.unsubscribe();\n }\n /** Opens the associated datepicker. */\n _openPopup() {\n if (this._datepicker) {\n this._datepicker.open();\n }\n }\n _getValueFromModel(modelValue) {\n return modelValue;\n }\n _assignValueToModel(value) {\n if (this._model) {\n this._model.updateSelection(value, this);\n }\n }\n /** Gets the input's minimum date. */\n _getMinDate() {\n return this._min;\n }\n /** Gets the input's maximum date. */\n _getMaxDate() {\n return this._max;\n }\n /** Gets the input's date filtering function. */\n _getDateFilter() {\n return this._dateFilter;\n }\n _shouldHandleChangeEvent(event) {\n return event.source !== this;\n }\n static {\n this.ɵfac = function MatDatepickerInput_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerInput,\n selectors: [[\"input\", \"matDatepicker\", \"\"]],\n hostAttrs: [1, \"mat-datepicker-input\"],\n hostVars: 6,\n hostBindings: function MatDatepickerInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function MatDatepickerInput_input_HostBindingHandler($event) {\n return ctx._onInput($event.target.value);\n })(\"change\", function MatDatepickerInput_change_HostBindingHandler() {\n return ctx._onChange();\n })(\"blur\", function MatDatepickerInput_blur_HostBindingHandler() {\n return ctx._onBlur();\n })(\"keydown\", function MatDatepickerInput_keydown_HostBindingHandler($event) {\n return ctx._onKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-haspopup\", ctx._datepicker ? \"dialog\" : null)(\"aria-owns\", ctx._ariaOwns())(\"min\", ctx.min ? ctx._dateAdapter.toIso8601(ctx.min) : null)(\"max\", ctx.max ? ctx._dateAdapter.toIso8601(ctx.max) : null)(\"data-mat-calendar\", ctx._datepicker ? ctx._datepicker.id : null);\n }\n },\n inputs: {\n matDatepicker: \"matDatepicker\",\n min: \"min\",\n max: \"max\",\n dateFilter: [0, \"matDatepickerFilter\", \"dateFilter\"]\n },\n exportAs: [\"matDatepickerInput\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATEPICKER_VALIDATORS, {\n provide: MAT_INPUT_VALUE_ACCESSOR,\n useExisting: MatDatepickerInput\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatDatepickerInput;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Can be used to override the icon of a `matDatepickerToggle`. */\nlet MatDatepickerToggleIcon = /*#__PURE__*/(() => {\n class MatDatepickerToggleIcon {\n static {\n this.ɵfac = function MatDatepickerToggleIcon_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerToggleIcon)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerToggleIcon,\n selectors: [[\"\", \"matDatepickerToggleIcon\", \"\"]],\n standalone: true\n });\n }\n }\n return MatDatepickerToggleIcon;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatDatepickerToggle = /*#__PURE__*/(() => {\n class MatDatepickerToggle {\n /** Whether the toggle button is disabled. */\n get disabled() {\n if (this._disabled === undefined && this.datepicker) {\n return this.datepicker.disabled;\n }\n return !!this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n }\n constructor(_intl, _changeDetectorRef, defaultTabIndex) {\n this._intl = _intl;\n this._changeDetectorRef = _changeDetectorRef;\n this._stateChanges = Subscription.EMPTY;\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n ngOnChanges(changes) {\n if (changes['datepicker']) {\n this._watchStateChanges();\n }\n }\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n _open(event) {\n if (this.datepicker && !this.disabled) {\n this.datepicker.open();\n event.stopPropagation();\n }\n }\n _watchStateChanges() {\n const datepickerStateChanged = this.datepicker ? this.datepicker.stateChanges : of();\n const inputStateChanged = this.datepicker && this.datepicker.datepickerInput ? this.datepicker.datepickerInput.stateChanges : of();\n const datepickerToggled = this.datepicker ? merge(this.datepicker.openedStream, this.datepicker.closedStream) : of();\n this._stateChanges.unsubscribe();\n this._stateChanges = merge(this._intl.changes, datepickerStateChanged, inputStateChanged, datepickerToggled).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n static {\n this.ɵfac = function MatDatepickerToggle_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerToggle)(i0.ɵɵdirectiveInject(MatDatepickerIntl), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵinjectAttribute('tabindex'));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDatepickerToggle,\n selectors: [[\"mat-datepicker-toggle\"]],\n contentQueries: function MatDatepickerToggle_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatDatepickerToggleIcon, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._customIcon = _t.first);\n }\n },\n viewQuery: function MatDatepickerToggle_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._button = _t.first);\n }\n },\n hostAttrs: [1, \"mat-datepicker-toggle\"],\n hostVars: 8,\n hostBindings: function MatDatepickerToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatDatepickerToggle_click_HostBindingHandler($event) {\n return ctx._open($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", null)(\"data-mat-calendar\", ctx.datepicker ? ctx.datepicker.id : null);\n i0.ɵɵclassProp(\"mat-datepicker-toggle-active\", ctx.datepicker && ctx.datepicker.opened)(\"mat-accent\", ctx.datepicker && ctx.datepicker.color === \"accent\")(\"mat-warn\", ctx.datepicker && ctx.datepicker.color === \"warn\");\n }\n },\n inputs: {\n datepicker: [0, \"for\", \"datepicker\"],\n tabIndex: \"tabIndex\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: \"disableRipple\"\n },\n exportAs: [\"matDatepickerToggle\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c4,\n decls: 4,\n vars: 6,\n consts: [[\"button\", \"\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 3, \"disabled\", \"disableRipple\"], [\"viewBox\", \"0 0 24 24\", \"width\", \"24px\", \"height\", \"24px\", \"fill\", \"currentColor\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-datepicker-toggle-default-icon\"], [\"d\", \"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"]],\n template: function MatDatepickerToggle_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c3);\n i0.ɵɵelementStart(0, \"button\", 1, 0);\n i0.ɵɵtemplate(2, MatDatepickerToggle_Conditional_2_Template, 2, 0, \":svg:svg\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"disableRipple\", ctx.disableRipple);\n i0.ɵɵattribute(\"aria-haspopup\", ctx.datepicker ? \"dialog\" : null)(\"aria-label\", ctx.ariaLabel || ctx._intl.openCalendarLabel)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx._customIcon ? 2 : -1);\n }\n },\n dependencies: [MatIconButton],\n styles: [\".mat-datepicker-toggle{pointer-events:auto;color:var(--mat-datepicker-toggle-icon-color, var(--mat-app-on-surface-variant))}.mat-datepicker-toggle-active{color:var(--mat-datepicker-toggle-active-state-icon-color, var(--mat-app-on-surface-variant))}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDatepickerToggle;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// This file contains the `_computeAriaAccessibleName` function, which computes what the *expected*\n// ARIA accessible name would be for a given element. Implements a subset of ARIA specification\n// [Accessible Name and Description Computation 1.2](https://www.w3.org/TR/accname-1.2/).\n//\n// Specification accname-1.2 can be summarized by returning the result of the first method\n// available.\n//\n// 1. `aria-labelledby` attribute\n// ```\n// <!-- example using aria-labelledby-->\n// <label id='label-id'>Start Date</label>\n// <input aria-labelledby='label-id'/>\n// ```\n// 2. `aria-label` attribute (e.g. `<input aria-label=\"Departure\"/>`)\n// 3. Label with `for`/`id`\n// ```\n// <!-- example using for/id -->\n// <label for=\"current-node\">Label</label>\n// <input id=\"current-node\"/>\n// ```\n// 4. `placeholder` attribute (e.g. `<input placeholder=\"06/03/1990\"/>`)\n// 5. `title` attribute (e.g. `<input title=\"Check-In\"/>`)\n// 6. text content\n// ```\n// <!-- example using text content -->\n// <label for=\"current-node\"><span>Departure</span> Date</label>\n// <input id=\"current-node\"/>\n// ```\n/**\n * Computes the *expected* ARIA accessible name for argument element based on [accname-1.2\n * specification](https://www.w3.org/TR/accname-1.2/). Implements a subset of accname-1.2,\n * and should only be used for the Datepicker's specific use case.\n *\n * Intended use:\n * This is not a general use implementation. Only implements the parts of accname-1.2 that are\n * required for the Datepicker's specific use case. This function is not intended for any other\n * use.\n *\n * Limitations:\n * - Only covers the needs of `matStartDate` and `matEndDate`. Does not support other use cases.\n * - See NOTES's in implementation for specific details on what parts of the accname-1.2\n * specification are not implemented.\n *\n * @param element {HTMLInputElement} native <input/> element of `matStartDate` or\n * `matEndDate` component. Corresponds to the 'Root Element' from accname-1.2\n *\n * @return expected ARIA accessible name of argument <input/>\n */\nfunction _computeAriaAccessibleName(element) {\n return _computeAriaAccessibleNameInternal(element, true);\n}\n/**\n * Determine if argument node is an Element based on `nodeType` property. This function is safe to\n * use with server-side rendering.\n */\nfunction ssrSafeIsElement(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Determine if argument node is an HTMLInputElement based on `nodeName` property. This funciton is\n * safe to use with server-side rendering.\n */\nfunction ssrSafeIsHTMLInputElement(node) {\n return node.nodeName === 'INPUT';\n}\n/**\n * Determine if argument node is an HTMLTextAreaElement based on `nodeName` property. This\n * funciton is safe to use with server-side rendering.\n */\nfunction ssrSafeIsHTMLTextAreaElement(node) {\n return node.nodeName === 'TEXTAREA';\n}\n/**\n * Calculate the expected ARIA accessible name for given DOM Node. Given DOM Node may be either the\n * \"Root node\" passed to `_computeAriaAccessibleName` or \"Current node\" as result of recursion.\n *\n * @return the accessible name of argument DOM Node\n *\n * @param currentNode node to determine accessible name of\n * @param isDirectlyReferenced true if `currentNode` is the root node to calculate ARIA accessible\n * name of. False if it is a result of recursion.\n */\nfunction _computeAriaAccessibleNameInternal(currentNode, isDirectlyReferenced) {\n // NOTE: this differs from accname-1.2 specification.\n // - Does not implement Step 1. of accname-1.2: '''If `currentNode`'s role prohibits naming,\n // return the empty string (\"\")'''.\n // - Does not implement Step 2.A. of accname-1.2: '''if current node is hidden and not directly\n // referenced by aria-labelledby... return the empty string.'''\n // acc-name-1.2 Step 2.B.: aria-labelledby\n if (ssrSafeIsElement(currentNode) && isDirectlyReferenced) {\n const labelledbyIds = currentNode.getAttribute?.('aria-labelledby')?.split(/\\s+/g) || [];\n const validIdRefs = labelledbyIds.reduce((validIds, id) => {\n const elem = document.getElementById(id);\n if (elem) {\n validIds.push(elem);\n }\n return validIds;\n }, []);\n if (validIdRefs.length) {\n return validIdRefs.map(idRef => {\n return _computeAriaAccessibleNameInternal(idRef, false);\n }).join(' ');\n }\n }\n // acc-name-1.2 Step 2.C.: aria-label\n if (ssrSafeIsElement(currentNode)) {\n const ariaLabel = currentNode.getAttribute('aria-label')?.trim();\n if (ariaLabel) {\n return ariaLabel;\n }\n }\n // acc-name-1.2 Step 2.D. attribute or element that defines a text alternative\n //\n // NOTE: this differs from accname-1.2 specification.\n // Only implements Step 2.D. for `<label>`,`<input/>`, and `<textarea/>` element. Does not\n // implement other elements that have an attribute or element that defines a text alternative.\n if (ssrSafeIsHTMLInputElement(currentNode) || ssrSafeIsHTMLTextAreaElement(currentNode)) {\n // use label with a `for` attribute referencing the current node\n if (currentNode.labels?.length) {\n return Array.from(currentNode.labels).map(x => _computeAriaAccessibleNameInternal(x, false)).join(' ');\n }\n // use placeholder if available\n const placeholder = currentNode.getAttribute('placeholder')?.trim();\n if (placeholder) {\n return placeholder;\n }\n // use title if available\n const title = currentNode.getAttribute('title')?.trim();\n if (title) {\n return title;\n }\n }\n // NOTE: this differs from accname-1.2 specification.\n // - does not implement acc-name-1.2 Step 2.E.: '''if the current node is a control embedded\n // within the label... then include the embedded control as part of the text alternative in\n // the following manner...'''. Step 2E applies to embedded controls such as textbox, listbox,\n // range, etc.\n // - does not implement acc-name-1.2 step 2.F.: check that '''role allows name from content''',\n // which applies to `currentNode` and its children.\n // - does not implement acc-name-1.2 Step 2.F.ii.: '''Check for CSS generated textual content'''\n // (e.g. :before and :after).\n // - does not implement acc-name-1.2 Step 2.I.: '''if the current node has a Tooltip attribute,\n // return its value'''\n // Return text content with whitespace collapsed into a single space character. Accomplish\n // acc-name-1.2 steps 2F, 2G, and 2H.\n return (currentNode.textContent || '').replace(/\\s+/g, ' ').trim();\n}\n\n/**\n * Used to provide the date range input wrapper component\n * to the parts without circular dependencies.\n */\nconst MAT_DATE_RANGE_INPUT_PARENT = /*#__PURE__*/new InjectionToken('MAT_DATE_RANGE_INPUT_PARENT');\n/**\n * Base class for the individual inputs that can be projected inside a `mat-date-range-input`.\n */\nlet MatDateRangeInputPartBase = /*#__PURE__*/(() => {\n class MatDateRangeInputPartBase extends MatDatepickerInputBase {\n /** Object used to control when error messages are shown. */\n get errorStateMatcher() {\n return this._errorStateTracker.matcher;\n }\n set errorStateMatcher(value) {\n this._errorStateTracker.matcher = value;\n }\n /** Whether the input is in an error state. */\n get errorState() {\n return this._errorStateTracker.errorState;\n }\n set errorState(value) {\n this._errorStateTracker.errorState = value;\n }\n constructor(_rangeInput, _elementRef, _defaultErrorStateMatcher, _injector, _parentForm, _parentFormGroup, dateAdapter, dateFormats) {\n super(_elementRef, dateAdapter, dateFormats);\n this._rangeInput = _rangeInput;\n this._elementRef = _elementRef;\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._injector = _injector;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this._dir = inject(Directionality, {\n optional: true\n });\n this._errorStateTracker = new _ErrorStateTracker(this._defaultErrorStateMatcher, null, this._parentFormGroup, this._parentForm, this.stateChanges);\n }\n ngOnInit() {\n // We need the date input to provide itself as a `ControlValueAccessor` and a `Validator`, while\n // injecting its `NgControl` so that the error state is handled correctly. This introduces a\n // circular dependency, because both `ControlValueAccessor` and `Validator` depend on the input\n // itself. Usually we can work around it for the CVA, but there's no API to do it for the\n // validator. We work around it here by injecting the `NgControl` in `ngOnInit`, after\n // everything has been resolved.\n const ngControl = this._injector.get(NgControl, null, {\n optional: true,\n self: true\n });\n if (ngControl) {\n this.ngControl = ngControl;\n this._errorStateTracker.ngControl = ngControl;\n }\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n /** Gets whether the input is empty. */\n isEmpty() {\n return this._elementRef.nativeElement.value.length === 0;\n }\n /** Gets the placeholder of the input. */\n _getPlaceholder() {\n return this._elementRef.nativeElement.placeholder;\n }\n /** Focuses the input. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n /** Gets the value that should be used when mirroring the input's size. */\n getMirrorValue() {\n const element = this._elementRef.nativeElement;\n const value = element.value;\n return value.length > 0 ? value : element.placeholder;\n }\n /** Refreshes the error state of the input. */\n updateErrorState() {\n this._errorStateTracker.updateErrorState();\n }\n /** Handles `input` events on the input element. */\n _onInput(value) {\n super._onInput(value);\n this._rangeInput._handleChildValueChange();\n }\n /** Opens the datepicker associated with the input. */\n _openPopup() {\n this._rangeInput._openDatepicker();\n }\n /** Gets the minimum date from the range input. */\n _getMinDate() {\n return this._rangeInput.min;\n }\n /** Gets the maximum date from the range input. */\n _getMaxDate() {\n return this._rangeInput.max;\n }\n /** Gets the date filter function from the range input. */\n _getDateFilter() {\n return this._rangeInput.dateFilter;\n }\n _parentDisabled() {\n return this._rangeInput._groupDisabled;\n }\n _shouldHandleChangeEvent({\n source\n }) {\n return source !== this._rangeInput._startInput && source !== this._rangeInput._endInput;\n }\n _assignValueProgrammatically(value) {\n super._assignValueProgrammatically(value);\n const opposite = this === this._rangeInput._startInput ? this._rangeInput._endInput : this._rangeInput._startInput;\n opposite?._validatorOnChange();\n }\n /** return the ARIA accessible name of the input element */\n _getAccessibleName() {\n return _computeAriaAccessibleName(this._elementRef.nativeElement);\n }\n static {\n this.ɵfac = function MatDateRangeInputPartBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDateRangeInputPartBase)(i0.ɵɵdirectiveInject(MAT_DATE_RANGE_INPUT_PARENT), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i2$1.NgForm, 8), i0.ɵɵdirectiveInject(i2$1.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDateRangeInputPartBase,\n inputs: {\n errorStateMatcher: \"errorStateMatcher\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatDateRangeInputPartBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Input for entering the start date in a `mat-date-range-input`. */\nlet MatStartDate = /*#__PURE__*/(() => {\n class MatStartDate extends MatDateRangeInputPartBase {\n constructor(rangeInput, elementRef, defaultErrorStateMatcher, injector, parentForm, parentFormGroup, dateAdapter, dateFormats) {\n super(rangeInput, elementRef, defaultErrorStateMatcher, injector, parentForm, parentFormGroup, dateAdapter, dateFormats);\n /** Validator that checks that the start date isn't after the end date. */\n this._startValidator = control => {\n const start = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));\n const end = this._model ? this._model.selection.end : null;\n return !start || !end || this._dateAdapter.compareDate(start, end) <= 0 ? null : {\n 'matStartDateInvalid': {\n 'end': end,\n 'actual': start\n }\n };\n };\n this._validator = Validators.compose([...super._getValidators(), this._startValidator]);\n }\n _getValueFromModel(modelValue) {\n return modelValue.start;\n }\n _shouldHandleChangeEvent(change) {\n if (!super._shouldHandleChangeEvent(change)) {\n return false;\n } else {\n return !change.oldValue?.start ? !!change.selection.start : !change.selection.start || !!this._dateAdapter.compareDate(change.oldValue.start, change.selection.start);\n }\n }\n _assignValueToModel(value) {\n if (this._model) {\n const range = new DateRange(value, this._model.selection.end);\n this._model.updateSelection(range, this);\n }\n }\n _formatValue(value) {\n super._formatValue(value);\n // Any time the input value is reformatted we need to tell the parent.\n this._rangeInput._handleChildValueChange();\n }\n _onKeydown(event) {\n const endInput = this._rangeInput._endInput;\n const element = this._elementRef.nativeElement;\n const isLtr = this._dir?.value !== 'rtl';\n // If the user hits RIGHT (LTR) when at the end of the input (and no\n // selection), move the cursor to the start of the end input.\n if ((event.keyCode === RIGHT_ARROW && isLtr || event.keyCode === LEFT_ARROW && !isLtr) && element.selectionStart === element.value.length && element.selectionEnd === element.value.length) {\n event.preventDefault();\n endInput._elementRef.nativeElement.setSelectionRange(0, 0);\n endInput.focus();\n } else {\n super._onKeydown(event);\n }\n }\n static {\n this.ɵfac = function MatStartDate_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatStartDate)(i0.ɵɵdirectiveInject(MAT_DATE_RANGE_INPUT_PARENT), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i2$1.NgForm, 8), i0.ɵɵdirectiveInject(i2$1.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStartDate,\n selectors: [[\"input\", \"matStartDate\", \"\"]],\n hostAttrs: [\"type\", \"text\", 1, \"mat-start-date\", \"mat-date-range-input-inner\"],\n hostVars: 5,\n hostBindings: function MatStartDate_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function MatStartDate_input_HostBindingHandler($event) {\n return ctx._onInput($event.target.value);\n })(\"change\", function MatStartDate_change_HostBindingHandler() {\n return ctx._onChange();\n })(\"keydown\", function MatStartDate_keydown_HostBindingHandler($event) {\n return ctx._onKeydown($event);\n })(\"blur\", function MatStartDate_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-haspopup\", ctx._rangeInput.rangePicker ? \"dialog\" : null)(\"aria-owns\", ctx._rangeInput._ariaOwns ? ctx._rangeInput._ariaOwns() : (ctx._rangeInput.rangePicker == null ? null : ctx._rangeInput.rangePicker.opened) && ctx._rangeInput.rangePicker.id || null)(\"min\", ctx._getMinDate() ? ctx._dateAdapter.toIso8601(ctx._getMinDate()) : null)(\"max\", ctx._getMaxDate() ? ctx._dateAdapter.toIso8601(ctx._getMaxDate()) : null);\n }\n },\n outputs: {\n dateChange: \"dateChange\",\n dateInput: \"dateInput\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: MatStartDate,\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: MatStartDate,\n multi: true\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatStartDate;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Input for entering the end date in a `mat-date-range-input`. */\nlet MatEndDate = /*#__PURE__*/(() => {\n class MatEndDate extends MatDateRangeInputPartBase {\n constructor(rangeInput, elementRef, defaultErrorStateMatcher, injector, parentForm, parentFormGroup, dateAdapter, dateFormats) {\n super(rangeInput, elementRef, defaultErrorStateMatcher, injector, parentForm, parentFormGroup, dateAdapter, dateFormats);\n /** Validator that checks that the end date isn't before the start date. */\n this._endValidator = control => {\n const end = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));\n const start = this._model ? this._model.selection.start : null;\n return !end || !start || this._dateAdapter.compareDate(end, start) >= 0 ? null : {\n 'matEndDateInvalid': {\n 'start': start,\n 'actual': end\n }\n };\n };\n this._validator = Validators.compose([...super._getValidators(), this._endValidator]);\n }\n _getValueFromModel(modelValue) {\n return modelValue.end;\n }\n _shouldHandleChangeEvent(change) {\n if (!super._shouldHandleChangeEvent(change)) {\n return false;\n } else {\n return !change.oldValue?.end ? !!change.selection.end : !change.selection.end || !!this._dateAdapter.compareDate(change.oldValue.end, change.selection.end);\n }\n }\n _assignValueToModel(value) {\n if (this._model) {\n const range = new DateRange(this._model.selection.start, value);\n this._model.updateSelection(range, this);\n }\n }\n _moveCaretToEndOfStartInput() {\n const startInput = this._rangeInput._startInput._elementRef.nativeElement;\n const value = startInput.value;\n if (value.length > 0) {\n startInput.setSelectionRange(value.length, value.length);\n }\n startInput.focus();\n }\n _onKeydown(event) {\n const element = this._elementRef.nativeElement;\n const isLtr = this._dir?.value !== 'rtl';\n // If the user is pressing backspace on an empty end input, move focus back to the start.\n if (event.keyCode === BACKSPACE && !element.value) {\n this._moveCaretToEndOfStartInput();\n }\n // If the user hits LEFT (LTR) when at the start of the input (and no\n // selection), move the cursor to the end of the start input.\n else if ((event.keyCode === LEFT_ARROW && isLtr || event.keyCode === RIGHT_ARROW && !isLtr) && element.selectionStart === 0 && element.selectionEnd === 0) {\n event.preventDefault();\n this._moveCaretToEndOfStartInput();\n } else {\n super._onKeydown(event);\n }\n }\n static {\n this.ɵfac = function MatEndDate_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatEndDate)(i0.ɵɵdirectiveInject(MAT_DATE_RANGE_INPUT_PARENT), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i2$1.NgForm, 8), i0.ɵɵdirectiveInject(i2$1.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatEndDate,\n selectors: [[\"input\", \"matEndDate\", \"\"]],\n hostAttrs: [\"type\", \"text\", 1, \"mat-end-date\", \"mat-date-range-input-inner\"],\n hostVars: 5,\n hostBindings: function MatEndDate_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function MatEndDate_input_HostBindingHandler($event) {\n return ctx._onInput($event.target.value);\n })(\"change\", function MatEndDate_change_HostBindingHandler() {\n return ctx._onChange();\n })(\"keydown\", function MatEndDate_keydown_HostBindingHandler($event) {\n return ctx._onKeydown($event);\n })(\"blur\", function MatEndDate_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-haspopup\", ctx._rangeInput.rangePicker ? \"dialog\" : null)(\"aria-owns\", ctx._rangeInput._ariaOwns ? ctx._rangeInput._ariaOwns() : (ctx._rangeInput.rangePicker == null ? null : ctx._rangeInput.rangePicker.opened) && ctx._rangeInput.rangePicker.id || null)(\"min\", ctx._getMinDate() ? ctx._dateAdapter.toIso8601(ctx._getMinDate()) : null)(\"max\", ctx._getMaxDate() ? ctx._dateAdapter.toIso8601(ctx._getMaxDate()) : null);\n }\n },\n outputs: {\n dateChange: \"dateChange\",\n dateInput: \"dateInput\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: MatEndDate,\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: MatEndDate,\n multi: true\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatEndDate;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId = 0;\nlet MatDateRangeInput = /*#__PURE__*/(() => {\n class MatDateRangeInput {\n /** Current value of the range input. */\n get value() {\n return this._model ? this._model.selection : null;\n }\n /** Whether the control's label should float. */\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n /**\n * Implemented as a part of `MatFormFieldControl`.\n * Set the placeholder attribute on `matStartDate` and `matEndDate`.\n * @docs-private\n */\n get placeholder() {\n const start = this._startInput?._getPlaceholder() || '';\n const end = this._endInput?._getPlaceholder() || '';\n return start || end ? `${start} ${this.separator} ${end}` : '';\n }\n /** The range picker that this input is associated with. */\n get rangePicker() {\n return this._rangePicker;\n }\n set rangePicker(rangePicker) {\n if (rangePicker) {\n this._model = rangePicker.registerInput(this);\n this._rangePicker = rangePicker;\n this._closedSubscription.unsubscribe();\n this._openedSubscription.unsubscribe();\n this._ariaOwns.set(this.rangePicker.opened ? rangePicker.id : null);\n this._closedSubscription = rangePicker.closedStream.subscribe(() => {\n this._startInput?._onTouched();\n this._endInput?._onTouched();\n this._ariaOwns.set(null);\n });\n this._openedSubscription = rangePicker.openedStream.subscribe(() => {\n this._ariaOwns.set(rangePicker.id);\n });\n this._registerModel(this._model);\n }\n }\n /** Whether the input is required. */\n get required() {\n return this._required ?? (this._isTargetRequired(this) || this._isTargetRequired(this._startInput) || this._isTargetRequired(this._endInput)) ?? false;\n }\n set required(value) {\n this._required = value;\n }\n /** Function that can be used to filter out dates within the date range picker. */\n get dateFilter() {\n return this._dateFilter;\n }\n set dateFilter(value) {\n const start = this._startInput;\n const end = this._endInput;\n const wasMatchingStart = start && start._matchesFilter(start.value);\n const wasMatchingEnd = end && end._matchesFilter(start.value);\n this._dateFilter = value;\n if (start && start._matchesFilter(start.value) !== wasMatchingStart) {\n start._validatorOnChange();\n }\n if (end && end._matchesFilter(end.value) !== wasMatchingEnd) {\n end._validatorOnChange();\n }\n }\n /** The minimum valid date. */\n get min() {\n return this._min;\n }\n set min(value) {\n const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n if (!this._dateAdapter.sameDate(validValue, this._min)) {\n this._min = validValue;\n this._revalidate();\n }\n }\n /** The maximum valid date. */\n get max() {\n return this._max;\n }\n set max(value) {\n const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));\n if (!this._dateAdapter.sameDate(validValue, this._max)) {\n this._max = validValue;\n this._revalidate();\n }\n }\n /** Whether the input is disabled. */\n get disabled() {\n return this._startInput && this._endInput ? this._startInput.disabled && this._endInput.disabled : this._groupDisabled;\n }\n set disabled(value) {\n if (value !== this._groupDisabled) {\n this._groupDisabled = value;\n this.stateChanges.next(undefined);\n }\n }\n /** Whether the input is in an error state. */\n get errorState() {\n if (this._startInput && this._endInput) {\n return this._startInput.errorState || this._endInput.errorState;\n }\n return false;\n }\n /** Whether the datepicker input is empty. */\n get empty() {\n const startEmpty = this._startInput ? this._startInput.isEmpty() : false;\n const endEmpty = this._endInput ? this._endInput.isEmpty() : false;\n return startEmpty && endEmpty;\n }\n constructor(_changeDetectorRef, _elementRef, control, _dateAdapter, _formField) {\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dateAdapter = _dateAdapter;\n this._formField = _formField;\n this._closedSubscription = Subscription.EMPTY;\n this._openedSubscription = Subscription.EMPTY;\n /** Unique ID for the group. */\n this.id = `mat-date-range-input-${nextUniqueId++}`;\n /** Whether the control is focused. */\n this.focused = false;\n /** Name of the form control. */\n this.controlType = 'mat-date-range-input';\n /** The id of the panel owned by this input. */\n this._ariaOwns = signal(null);\n this._groupDisabled = false;\n /** Value for the `aria-describedby` attribute of the inputs. */\n this._ariaDescribedBy = null;\n /** Separator text to be shown between the inputs. */\n this.separator = '–';\n /** Start of the comparison range that should be shown in the calendar. */\n this.comparisonStart = null;\n /** End of the comparison range that should be shown in the calendar. */\n this.comparisonEnd = null;\n /** Emits when the input's state has changed. */\n this.stateChanges = new Subject();\n /**\n * Disable the automatic labeling to avoid issues like #27241.\n * @docs-private\n */\n this.disableAutomaticLabeling = true;\n if (!_dateAdapter && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw createMissingDateImplError('DateAdapter');\n }\n // The datepicker module can be used both with MDC and non-MDC form fields. We have\n // to conditionally add the MDC input class so that the range picker looks correctly.\n if (_formField?._elementRef.nativeElement.classList.contains('mat-mdc-form-field')) {\n _elementRef.nativeElement.classList.add('mat-mdc-input-element', 'mat-mdc-form-field-input-control', 'mdc-text-field__input');\n }\n // TODO(crisbeto): remove `as any` after #18206 lands.\n this.ngControl = control;\n }\n /**\n * Implemented as a part of `MatFormFieldControl`.\n * @docs-private\n */\n setDescribedByIds(ids) {\n this._ariaDescribedBy = ids.length ? ids.join(' ') : null;\n }\n /**\n * Implemented as a part of `MatFormFieldControl`.\n * @docs-private\n */\n onContainerClick() {\n if (!this.focused && !this.disabled) {\n if (!this._model || !this._model.selection.start) {\n this._startInput.focus();\n } else {\n this._endInput.focus();\n }\n }\n }\n ngAfterContentInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._startInput) {\n throw Error('mat-date-range-input must contain a matStartDate input');\n }\n if (!this._endInput) {\n throw Error('mat-date-range-input must contain a matEndDate input');\n }\n }\n if (this._model) {\n this._registerModel(this._model);\n }\n // We don't need to unsubscribe from this, because we\n // know that the input streams will be completed on destroy.\n merge(this._startInput.stateChanges, this._endInput.stateChanges).subscribe(() => {\n this.stateChanges.next(undefined);\n });\n }\n ngOnChanges(changes) {\n if (dateInputsHaveChanged(changes, this._dateAdapter)) {\n this.stateChanges.next(undefined);\n }\n }\n ngOnDestroy() {\n this._closedSubscription.unsubscribe();\n this._openedSubscription.unsubscribe();\n this.stateChanges.complete();\n }\n /** Gets the date at which the calendar should start. */\n getStartValue() {\n return this.value ? this.value.start : null;\n }\n /** Gets the input's theme palette. */\n getThemePalette() {\n return this._formField ? this._formField.color : undefined;\n }\n /** Gets the element to which the calendar overlay should be attached. */\n getConnectedOverlayOrigin() {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n /** Gets the ID of an element that should be used a description for the calendar overlay. */\n getOverlayLabelId() {\n return this._formField ? this._formField.getLabelId() : null;\n }\n /** Gets the value that is used to mirror the state input. */\n _getInputMirrorValue(part) {\n const input = part === 'start' ? this._startInput : this._endInput;\n return input ? input.getMirrorValue() : '';\n }\n /** Whether the input placeholders should be hidden. */\n _shouldHidePlaceholders() {\n return this._startInput ? !this._startInput.isEmpty() : false;\n }\n /** Handles the value in one of the child inputs changing. */\n _handleChildValueChange() {\n this.stateChanges.next(undefined);\n this._changeDetectorRef.markForCheck();\n }\n /** Opens the date range picker associated with the input. */\n _openDatepicker() {\n if (this._rangePicker) {\n this._rangePicker.open();\n }\n }\n /** Whether the separate text should be hidden. */\n _shouldHideSeparator() {\n return (!this._formField || this._formField.getLabelId() && !this._formField._shouldLabelFloat()) && this.empty;\n }\n /** Gets the value for the `aria-labelledby` attribute of the inputs. */\n _getAriaLabelledby() {\n const formField = this._formField;\n return formField && formField._hasFloatingLabel() ? formField._labelId : null;\n }\n _getStartDateAccessibleName() {\n return this._startInput._getAccessibleName();\n }\n _getEndDateAccessibleName() {\n return this._endInput._getAccessibleName();\n }\n /** Updates the focused state of the range input. */\n _updateFocus(origin) {\n this.focused = origin !== null;\n this.stateChanges.next();\n }\n /** Re-runs the validators on the start/end inputs. */\n _revalidate() {\n if (this._startInput) {\n this._startInput._validatorOnChange();\n }\n if (this._endInput) {\n this._endInput._validatorOnChange();\n }\n }\n /** Registers the current date selection model with the start/end inputs. */\n _registerModel(model) {\n if (this._startInput) {\n this._startInput._registerModel(model);\n }\n if (this._endInput) {\n this._endInput._registerModel(model);\n }\n }\n /** Checks whether a specific range input directive is required. */\n _isTargetRequired(target) {\n return target?.ngControl?.control?.hasValidator(Validators.required);\n }\n static {\n this.ɵfac = function MatDateRangeInput_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDateRangeInput)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2$1.ControlContainer, 10), i0.ɵɵdirectiveInject(i1.DateAdapter, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDateRangeInput,\n selectors: [[\"mat-date-range-input\"]],\n contentQueries: function MatDateRangeInput_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatStartDate, 5);\n i0.ɵɵcontentQuery(dirIndex, MatEndDate, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._startInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._endInput = _t.first);\n }\n },\n hostAttrs: [\"role\", \"group\", 1, \"mat-date-range-input\"],\n hostVars: 8,\n hostBindings: function MatDateRangeInput_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"aria-labelledby\", ctx._getAriaLabelledby())(\"aria-describedby\", ctx._ariaDescribedBy)(\"data-mat-calendar\", ctx.rangePicker ? ctx.rangePicker.id : null);\n i0.ɵɵclassProp(\"mat-date-range-input-hide-placeholders\", ctx._shouldHidePlaceholders())(\"mat-date-range-input-required\", ctx.required);\n }\n },\n inputs: {\n rangePicker: \"rangePicker\",\n required: [2, \"required\", \"required\", booleanAttribute],\n dateFilter: \"dateFilter\",\n min: \"min\",\n max: \"max\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n separator: \"separator\",\n comparisonStart: \"comparisonStart\",\n comparisonEnd: \"comparisonEnd\"\n },\n exportAs: [\"matDateRangeInput\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatDateRangeInput\n }, {\n provide: MAT_DATE_RANGE_INPUT_PARENT,\n useExisting: MatDateRangeInput\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c6,\n decls: 11,\n vars: 5,\n consts: [[\"cdkMonitorSubtreeFocus\", \"\", 1, \"mat-date-range-input-container\", 3, \"cdkFocusChange\"], [1, \"mat-date-range-input-wrapper\"], [\"aria-hidden\", \"true\", 1, \"mat-date-range-input-mirror\"], [1, \"mat-date-range-input-separator\"], [1, \"mat-date-range-input-wrapper\", \"mat-date-range-input-end-wrapper\"]],\n template: function MatDateRangeInput_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c5);\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"cdkFocusChange\", function MatDateRangeInput_Template_div_cdkFocusChange_0_listener($event) {\n return ctx._updateFocus($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementStart(3, \"span\", 2);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"span\", 3);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 4);\n i0.ɵɵprojection(8, 1);\n i0.ɵɵelementStart(9, \"span\", 2);\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx._getInputMirrorValue(\"start\"));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-date-range-input-separator-hidden\", ctx._shouldHideSeparator());\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.separator);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx._getInputMirrorValue(\"end\"));\n }\n },\n dependencies: [CdkMonitorFocus],\n styles: [\".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center}.mat-date-range-input-separator{transition:opacity 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);margin:0 4px;color:var(--mat-datepicker-range-input-separator-color, var(--mat-app-on-surface))}.mat-form-field-disabled .mat-date-range-input-separator{color:var(--mat-datepicker-range-input-disabled-state-separator-color)}._mat-animation-noopable .mat-date-range-input-separator{transition:none}.mat-date-range-input-separator-hidden{-webkit-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-wrapper{position:relative;overflow:hidden;max-width:calc(50% - 4px)}.mat-date-range-input-end-wrapper{flex-grow:1}.mat-date-range-input-inner{position:absolute;top:0;left:0;font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;vertical-align:bottom;text-align:inherit;-webkit-appearance:none;width:100%;height:100%}.mat-date-range-input-inner:-moz-ui-invalid{box-shadow:none}.mat-date-range-input-inner::placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-moz-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-webkit-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner:-ms-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner[disabled]{color:var(--mat-datepicker-range-input-disabled-state-text-color)}.mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-date-range-input-inner::placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-moz-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner:-ms-input-placeholder{transition:none}.mat-date-range-input-mirror{-webkit-user-select:none;user-select:none;visibility:hidden;white-space:nowrap;display:inline-block;min-width:2px}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:200px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDateRangeInput;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// TODO(mmalerba): We use a component instead of a directive here so the user can use implicit\n// template reference variables (e.g. #d vs #d=\"matDateRangePicker\"). We can change this to a\n// directive if angular adds support for `exportAs: '$implicit'` on directives.\n/** Component responsible for managing the date range picker popup/dialog. */\nlet MatDateRangePicker = /*#__PURE__*/(() => {\n class MatDateRangePicker extends MatDatepickerBase {\n _forwardContentValues(instance) {\n super._forwardContentValues(instance);\n const input = this.datepickerInput;\n if (input) {\n instance.comparisonStart = input.comparisonStart;\n instance.comparisonEnd = input.comparisonEnd;\n instance.startDateAccessibleName = input._getStartDateAccessibleName();\n instance.endDateAccessibleName = input._getEndDateAccessibleName();\n }\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatDateRangePicker_BaseFactory;\n return function MatDateRangePicker_Factory(__ngFactoryType__) {\n return (ɵMatDateRangePicker_BaseFactory || (ɵMatDateRangePicker_BaseFactory = i0.ɵɵgetInheritedFactory(MatDateRangePicker)))(__ngFactoryType__ || MatDateRangePicker);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDateRangePicker,\n selectors: [[\"mat-date-range-picker\"]],\n exportAs: [\"matDateRangePicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, MAT_CALENDAR_RANGE_STRATEGY_PROVIDER, {\n provide: MatDatepickerBase,\n useExisting: MatDateRangePicker\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function MatDateRangePicker_Template(rf, ctx) {},\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDateRangePicker;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Button that will close the datepicker and assign the current selection to the data model. */\nlet MatDatepickerApply = /*#__PURE__*/(() => {\n class MatDatepickerApply {\n constructor(_datepicker) {\n this._datepicker = _datepicker;\n }\n _applySelection() {\n this._datepicker._applyPendingSelection();\n this._datepicker.close();\n }\n static {\n this.ɵfac = function MatDatepickerApply_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerApply)(i0.ɵɵdirectiveInject(MatDatepickerBase));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerApply,\n selectors: [[\"\", \"matDatepickerApply\", \"\"], [\"\", \"matDateRangePickerApply\", \"\"]],\n hostBindings: function MatDatepickerApply_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatDatepickerApply_click_HostBindingHandler() {\n return ctx._applySelection();\n });\n }\n },\n standalone: true\n });\n }\n }\n return MatDatepickerApply;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Button that will close the datepicker and discard the current selection. */\nlet MatDatepickerCancel = /*#__PURE__*/(() => {\n class MatDatepickerCancel {\n constructor(_datepicker) {\n this._datepicker = _datepicker;\n }\n static {\n this.ɵfac = function MatDatepickerCancel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerCancel)(i0.ɵɵdirectiveInject(MatDatepickerBase));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDatepickerCancel,\n selectors: [[\"\", \"matDatepickerCancel\", \"\"], [\"\", \"matDateRangePickerCancel\", \"\"]],\n hostBindings: function MatDatepickerCancel_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatDatepickerCancel_click_HostBindingHandler() {\n return ctx._datepicker.close();\n });\n }\n },\n standalone: true\n });\n }\n }\n return MatDatepickerCancel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Container that can be used to project a row of action buttons\n * to the bottom of a datepicker or date range picker.\n */\nlet MatDatepickerActions = /*#__PURE__*/(() => {\n class MatDatepickerActions {\n constructor(_datepicker, _viewContainerRef) {\n this._datepicker = _datepicker;\n this._viewContainerRef = _viewContainerRef;\n }\n ngAfterViewInit() {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n this._datepicker.registerActions(this._portal);\n }\n ngOnDestroy() {\n this._datepicker.removeActions(this._portal);\n // Needs to be null checked since we initialize it in `ngAfterViewInit`.\n if (this._portal && this._portal.isAttached) {\n this._portal?.detach();\n }\n }\n static {\n this.ɵfac = function MatDatepickerActions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerActions)(i0.ɵɵdirectiveInject(MatDatepickerBase), i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDatepickerActions,\n selectors: [[\"mat-datepicker-actions\"], [\"mat-date-range-picker-actions\"]],\n viewQuery: function MatDatepickerActions_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._template = _t.first);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 1,\n vars: 0,\n consts: [[1, \"mat-datepicker-actions\"]],\n template: function MatDatepickerActions_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatDatepickerActions_ng_template_0_Template, 2, 0, \"ng-template\");\n }\n },\n styles: [\".mat-datepicker-actions{display:flex;justify-content:flex-end;align-items:center;padding:0 8px 8px 8px}.mat-datepicker-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDatepickerActions;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatDatepickerModule = /*#__PURE__*/(() => {\n class MatDatepickerModule {\n static {\n this.ɵfac = function MatDatepickerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDatepickerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatDatepickerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MatDatepickerIntl, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [CommonModule, MatButtonModule, OverlayModule, A11yModule, PortalModule, MatCommonModule, MatDatepickerContent, MatDatepickerToggle, MatCalendarHeader, CdkScrollableModule]\n });\n }\n }\n return MatDatepickerModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DateRange, DefaultMatCalendarRangeStrategy, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_DATEPICKER_VALIDATORS, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATE_RANGE_SELECTION_STRATEGY, MAT_RANGE_DATE_SELECTION_MODEL_FACTORY, MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY, MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER, MatCalendar, MatCalendarBody, MatCalendarCell, MatCalendarHeader, MatDateRangeInput, MatDateRangePicker, MatDateSelectionModel, MatDatepicker, MatDatepickerActions, MatDatepickerApply, MatDatepickerCancel, MatDatepickerContent, MatDatepickerInput, MatDatepickerInputEvent, MatDatepickerIntl, MatDatepickerModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatEndDate, MatMonthView, MatMultiYearView, MatRangeDateSelectionModel, MatSingleDateSelectionModel, MatStartDate, MatYearView, matDatepickerAnimations, yearsPerPage, yearsPerRow };\n","import * as i1 from '@angular/cdk/bidi';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, isDataSource, _ViewRepeaterOperation, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nconst _c0 = [[[\"caption\"]], [[\"colgroup\"], [\"col\"]], \"*\"];\nconst _c1 = [\"caption\", \"colgroup, col\", \"*\"];\nfunction CdkTable_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 2);\n }\n}\nfunction CdkTable_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"thead\", 0);\n i0.ɵɵelementContainer(1, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"tbody\", 0);\n i0.ɵɵelementContainer(3, 2)(4, 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"tfoot\", 0);\n i0.ɵɵelementContainer(6, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction CdkTable_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 1)(1, 2)(2, 3)(3, 4);\n }\n}\nfunction CdkTextColumn_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.headerText, \" \");\n }\n}\nfunction CdkTextColumn_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const data_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.dataAccessor(data_r2, ctx_r0.name), \" \");\n }\n}\nexport { DataSource } from '@angular/cdk/collections';\nimport * as i2 from '@angular/cdk/platform';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, booleanAttribute, Inject, Optional, Input, ContentChild, inject, NgZone, Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, EventEmitter, Injector, afterNextRender, Attribute, SkipSelf, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport { Subject, BehaviorSubject, isObservable, of } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * Used to provide a table to some of the sub-components without causing a circular dependency.\n * @docs-private\n */\nconst CDK_TABLE = /*#__PURE__*/new InjectionToken('CDK_TABLE');\n/** Injection token that can be used to specify the text column options. */\nconst TEXT_COLUMN_OPTIONS = /*#__PURE__*/new InjectionToken('text-column-options');\n\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nlet CdkCellDef = /*#__PURE__*/(() => {\n class CdkCellDef {\n constructor(/** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkCellDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCellDef,\n selectors: [[\"\", \"cdkCellDef\", \"\"]],\n standalone: true\n });\n }\n }\n return CdkCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nlet CdkHeaderCellDef = /*#__PURE__*/(() => {\n class CdkHeaderCellDef {\n constructor(/** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkHeaderCellDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkHeaderCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderCellDef,\n selectors: [[\"\", \"cdkHeaderCellDef\", \"\"]],\n standalone: true\n });\n }\n }\n return CdkHeaderCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Footer cell definition for a CDK table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nlet CdkFooterCellDef = /*#__PURE__*/(() => {\n class CdkFooterCellDef {\n constructor(/** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkFooterCellDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkFooterCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterCellDef,\n selectors: [[\"\", \"cdkFooterCellDef\", \"\"]],\n standalone: true\n });\n }\n }\n return CdkFooterCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nlet CdkColumnDef = /*#__PURE__*/(() => {\n class CdkColumnDef {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /** Whether the cell is sticky. */\n get sticky() {\n return this._sticky;\n }\n set sticky(value) {\n if (value !== this._sticky) {\n this._sticky = value;\n this._hasStickyChanged = true;\n }\n }\n /**\n * Whether this column should be sticky positioned on the end of the row. Should make sure\n * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n * has been changed.\n */\n get stickyEnd() {\n return this._stickyEnd;\n }\n set stickyEnd(value) {\n if (value !== this._stickyEnd) {\n this._stickyEnd = value;\n this._hasStickyChanged = true;\n }\n }\n constructor(_table) {\n this._table = _table;\n this._hasStickyChanged = false;\n this._sticky = false;\n this._stickyEnd = false;\n }\n /** Whether the sticky state has changed. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this.resetStickyChanged();\n return hasStickyChanged;\n }\n /** Resets the sticky changed state. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n /**\n * Overridable method that sets the css classes that will be added to every cell in this\n * column.\n * In the future, columnCssClassName will change from type string[] to string and this\n * will set a single string value.\n * @docs-private\n */\n _updateColumnCssClassName() {\n this._columnCssClassName = [`cdk-column-${this.cssClassFriendlyName}`];\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n _setNameInput(value) {\n // If the directive is set without a name (updated programmatically), then this setter will\n // trigger with an empty string and should not overwrite the programmatically set value.\n if (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateColumnCssClassName();\n }\n }\n static {\n this.ɵfac = function CdkColumnDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkColumnDef)(i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkColumnDef,\n selectors: [[\"\", \"cdkColumnDef\", \"\"]],\n contentQueries: function CdkColumnDef_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkCellDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkHeaderCellDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkFooterCellDef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerCell = _t.first);\n }\n },\n inputs: {\n name: [0, \"cdkColumnDef\", \"name\"],\n sticky: [2, \"sticky\", \"sticky\", booleanAttribute],\n stickyEnd: [2, \"stickyEnd\", \"stickyEnd\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: CdkColumnDef\n }]), i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return CdkColumnDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Base class for the cells. Adds a CSS classname that identifies the column it renders in. */\nclass BaseCdkCell {\n constructor(columnDef, elementRef) {\n elementRef.nativeElement.classList.add(...columnDef._columnCssClassName);\n }\n}\n/** Header cell template container that adds the right classes and role. */\nlet CdkHeaderCell = /*#__PURE__*/(() => {\n class CdkHeaderCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n }\n static {\n this.ɵfac = function CdkHeaderCell_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkHeaderCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderCell,\n selectors: [[\"cdk-header-cell\"], [\"th\", \"cdk-header-cell\", \"\"]],\n hostAttrs: [\"role\", \"columnheader\", 1, \"cdk-header-cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return CdkHeaderCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Footer cell template container that adds the right classes and role. */\nlet CdkFooterCell = /*#__PURE__*/(() => {\n class CdkFooterCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n const role = columnDef._table?._getCellRole();\n if (role) {\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static {\n this.ɵfac = function CdkFooterCell_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkFooterCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterCell,\n selectors: [[\"cdk-footer-cell\"], [\"td\", \"cdk-footer-cell\", \"\"]],\n hostAttrs: [1, \"cdk-footer-cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return CdkFooterCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Cell template container that adds the right classes and role. */\nlet CdkCell = /*#__PURE__*/(() => {\n class CdkCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n const role = columnDef._table?._getCellRole();\n if (role) {\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static {\n this.ɵfac = function CdkCell_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCell,\n selectors: [[\"cdk-cell\"], [\"td\", \"cdk-cell\", \"\"]],\n hostAttrs: [1, \"cdk-cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return CdkCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @docs-private\n */\nclass _Schedule {\n constructor() {\n this.tasks = [];\n this.endTasks = [];\n }\n}\n/** Injection token used to provide a coalesced style scheduler. */\nconst _COALESCED_STYLE_SCHEDULER = /*#__PURE__*/new InjectionToken('_COALESCED_STYLE_SCHEDULER');\n/**\n * Allows grouping up CSSDom mutations after the current execution context.\n * This can significantly improve performance when separate consecutive functions are\n * reading from the CSSDom and then mutating it.\n *\n * @docs-private\n */\nlet _CoalescedStyleScheduler = /*#__PURE__*/(() => {\n class _CoalescedStyleScheduler {\n constructor(_unusedNgZone) {\n this._currentSchedule = null;\n this._ngZone = inject(NgZone);\n }\n /**\n * Schedules the specified task to run at the end of the current VM turn.\n */\n schedule(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.tasks.push(task);\n }\n /**\n * Schedules the specified task to run after other scheduled tasks at the end of the current\n * VM turn.\n */\n scheduleEnd(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.endTasks.push(task);\n }\n _createScheduleIfNeeded() {\n if (this._currentSchedule) {\n return;\n }\n this._currentSchedule = new _Schedule();\n this._ngZone.runOutsideAngular(() =>\n // TODO(mmalerba): Scheduling this using something that runs less frequently\n // (e.g. requestAnimationFrame, setTimeout, etc.) causes noticeable jank with the column\n // resizer. We should audit the usages of schedule / scheduleEnd in that component and see\n // if we can refactor it so that we don't need to flush the tasks quite so frequently.\n queueMicrotask(() => {\n while (this._currentSchedule.tasks.length || this._currentSchedule.endTasks.length) {\n const schedule = this._currentSchedule;\n // Capture new tasks scheduled by the current set of tasks.\n this._currentSchedule = new _Schedule();\n for (const task of schedule.tasks) {\n task();\n }\n for (const task of schedule.endTasks) {\n task();\n }\n }\n this._currentSchedule = null;\n }));\n }\n static {\n this.ɵfac = function _CoalescedStyleScheduler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CoalescedStyleScheduler)(i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _CoalescedStyleScheduler,\n factory: _CoalescedStyleScheduler.ɵfac\n });\n }\n }\n return _CoalescedStyleScheduler;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nconst CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nlet BaseRowDef = /*#__PURE__*/(() => {\n class BaseRowDef {\n constructor(/** @docs-private */template, _differs) {\n this.template = template;\n this._differs = _differs;\n }\n ngOnChanges(changes) {\n // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n // of the columns property or an empty array if none is provided.\n if (!this._columnsDiffer) {\n const columns = changes['columns'] && changes['columns'].currentValue || [];\n this._columnsDiffer = this._differs.find(columns).create();\n this._columnsDiffer.diff(columns);\n }\n }\n /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n getColumnsDiff() {\n return this._columnsDiffer.diff(this.columns);\n }\n /** Gets this row def's relevant cell template from the provided column def. */\n extractCellTemplate(column) {\n if (this instanceof CdkHeaderRowDef) {\n return column.headerCell.template;\n }\n if (this instanceof CdkFooterRowDef) {\n return column.footerCell.template;\n } else {\n return column.cell.template;\n }\n }\n static {\n this.ɵfac = function BaseRowDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BaseRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseRowDef,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return BaseRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nlet CdkHeaderRowDef = /*#__PURE__*/(() => {\n class CdkHeaderRowDef extends BaseRowDef {\n /** Whether the row is sticky. */\n get sticky() {\n return this._sticky;\n }\n set sticky(value) {\n if (value !== this._sticky) {\n this._sticky = value;\n this._hasStickyChanged = true;\n }\n }\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n this._hasStickyChanged = false;\n this._sticky = false;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n /** Whether the sticky state has changed. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this.resetStickyChanged();\n return hasStickyChanged;\n }\n /** Resets the sticky changed state. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n static {\n this.ɵfac = function CdkHeaderRowDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkHeaderRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderRowDef,\n selectors: [[\"\", \"cdkHeaderRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkHeaderRowDef\", \"columns\"],\n sticky: [2, \"cdkHeaderRowDefSticky\", \"sticky\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return CdkHeaderRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Footer row definition for the CDK table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nlet CdkFooterRowDef = /*#__PURE__*/(() => {\n class CdkFooterRowDef extends BaseRowDef {\n /** Whether the row is sticky. */\n get sticky() {\n return this._sticky;\n }\n set sticky(value) {\n if (value !== this._sticky) {\n this._sticky = value;\n this._hasStickyChanged = true;\n }\n }\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n this._hasStickyChanged = false;\n this._sticky = false;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n /** Whether the sticky state has changed. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this.resetStickyChanged();\n return hasStickyChanged;\n }\n /** Resets the sticky changed state. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n static {\n this.ɵfac = function CdkFooterRowDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkFooterRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterRowDef,\n selectors: [[\"\", \"cdkFooterRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkFooterRowDef\", \"columns\"],\n sticky: [2, \"cdkFooterRowDefSticky\", \"sticky\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return CdkFooterRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nlet CdkRowDef = /*#__PURE__*/(() => {\n class CdkRowDef extends BaseRowDef {\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n static {\n this.ɵfac = function CdkRowDef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkRowDef,\n selectors: [[\"\", \"cdkRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkRowDefColumns\", \"columns\"],\n when: [0, \"cdkRowDefWhen\", \"when\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return CdkRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\nlet CdkCellOutlet = /*#__PURE__*/(() => {\n class CdkCellOutlet {\n /**\n * Static property containing the latest constructed instance of this class.\n * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n * createEmbeddedView. After one of these components are created, this property will provide\n * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n * construct the cells with the provided context.\n */\n static {\n this.mostRecentCellOutlet = null;\n }\n constructor(_viewContainer) {\n this._viewContainer = _viewContainer;\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n ngOnDestroy() {\n // If this was the last outlet being rendered in the view, remove the reference\n // from the static property after it has been destroyed to avoid leaking memory.\n if (CdkCellOutlet.mostRecentCellOutlet === this) {\n CdkCellOutlet.mostRecentCellOutlet = null;\n }\n }\n static {\n this.ɵfac = function CdkCellOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkCellOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCellOutlet,\n selectors: [[\"\", \"cdkCellOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return CdkCellOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nlet CdkHeaderRow = /*#__PURE__*/(() => {\n class CdkHeaderRow {\n static {\n this.ɵfac = function CdkHeaderRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkHeaderRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkHeaderRow,\n selectors: [[\"cdk-header-row\"], [\"tr\", \"cdk-header-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-header-row\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkHeaderRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return CdkHeaderRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nlet CdkFooterRow = /*#__PURE__*/(() => {\n class CdkFooterRow {\n static {\n this.ɵfac = function CdkFooterRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkFooterRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkFooterRow,\n selectors: [[\"cdk-footer-row\"], [\"tr\", \"cdk-footer-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-footer-row\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkFooterRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return CdkFooterRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nlet CdkRow = /*#__PURE__*/(() => {\n class CdkRow {\n static {\n this.ɵfac = function CdkRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkRow,\n selectors: [[\"cdk-row\"], [\"tr\", \"cdk-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-row\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return CdkRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Row that can be used to display a message when no data is shown in the table. */\nlet CdkNoDataRow = /*#__PURE__*/(() => {\n class CdkNoDataRow {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._contentClassName = 'cdk-no-data-row';\n }\n static {\n this.ɵfac = function CdkNoDataRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkNoDataRow)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkNoDataRow,\n selectors: [[\"ng-template\", \"cdkNoDataRow\", \"\"]],\n standalone: true\n });\n }\n }\n return CdkNoDataRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * List of all possible directions that can be used for sticky positioning.\n * @docs-private\n */\nconst STICKY_DIRECTIONS = ['top', 'bottom', 'left', 'right'];\n/**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * @docs-private\n */\nclass StickyStyler {\n /**\n * @param _isNativeHtmlTable Whether the sticky logic should be based on a table\n * that uses the native `<table>` element.\n * @param _stickCellCss The CSS class that will be applied to every row/cell that has\n * sticky positioning applied.\n * @param direction The directionality context of the table (ltr/rtl); affects column positioning\n * by reversing left/right positions.\n * @param _isBrowser Whether the table is currently being rendered on the server or the client.\n * @param _needsPositionStickyOnElement Whether we need to specify position: sticky on cells\n * using inline styles. If false, it is assumed that position: sticky is included in\n * the component stylesheet for _stickCellCss.\n * @param _positionListener A listener that is notified of changes to sticky rows/columns\n * and their dimensions.\n */\n constructor(_isNativeHtmlTable, _stickCellCss, direction, _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true, _positionListener) {\n this._isNativeHtmlTable = _isNativeHtmlTable;\n this._stickCellCss = _stickCellCss;\n this.direction = direction;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._isBrowser = _isBrowser;\n this._needsPositionStickyOnElement = _needsPositionStickyOnElement;\n this._positionListener = _positionListener;\n this._cachedCellWidths = [];\n this._borderCellCss = {\n 'top': `${_stickCellCss}-border-elem-top`,\n 'bottom': `${_stickCellCss}-border-elem-bottom`,\n 'left': `${_stickCellCss}-border-elem-left`,\n 'right': `${_stickCellCss}-border-elem-right`\n };\n }\n /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param rows The list of rows that should be cleared from sticking in the provided directions\n * @param stickyDirections The directions that should no longer be set as sticky on the rows.\n */\n clearStickyPositioning(rows, stickyDirections) {\n const elementsToClear = [];\n for (const row of rows) {\n // If the row isn't an element (e.g. if it's an `ng-container`),\n // it won't have inline styles or `children` so we skip it.\n if (row.nodeType !== row.ELEMENT_NODE) {\n continue;\n }\n elementsToClear.push(row);\n for (let i = 0; i < row.children.length; i++) {\n elementsToClear.push(row.children[i]);\n }\n }\n // Coalesce with sticky row/column updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n for (const element of elementsToClear) {\n this._removeStickyStyle(element, stickyDirections);\n }\n });\n }\n /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param rows The rows that should have its set of cells stuck according to the sticky states.\n * @param stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n * @param recalculateCellWidths Whether the sticky styler should recalculate the width of each\n * column cell. If `false` cached widths will be used instead.\n */\n updateStickyColumns(rows, stickyStartStates, stickyEndStates, recalculateCellWidths = true) {\n if (!rows.length || !this._isBrowser || !(stickyStartStates.some(state => state) || stickyEndStates.some(state => state))) {\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({\n sizes: []\n });\n this._positionListener.stickyEndColumnsUpdated({\n sizes: []\n });\n }\n return;\n }\n // Coalesce with sticky row updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n const firstRow = rows[0];\n const numCells = firstRow.children.length;\n const cellWidths = this._getCellWidths(firstRow, recalculateCellWidths);\n const startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);\n const endPositions = this._getStickyEndColumnPositions(cellWidths, stickyEndStates);\n const lastStickyStart = stickyStartStates.lastIndexOf(true);\n const firstStickyEnd = stickyEndStates.indexOf(true);\n const isRtl = this.direction === 'rtl';\n const start = isRtl ? 'right' : 'left';\n const end = isRtl ? 'left' : 'right';\n for (const row of rows) {\n for (let i = 0; i < numCells; i++) {\n const cell = row.children[i];\n if (stickyStartStates[i]) {\n this._addStickyStyle(cell, start, startPositions[i], i === lastStickyStart);\n }\n if (stickyEndStates[i]) {\n this._addStickyStyle(cell, end, endPositions[i], i === firstStickyEnd);\n }\n }\n }\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({\n sizes: lastStickyStart === -1 ? [] : cellWidths.slice(0, lastStickyStart + 1).map((width, index) => stickyStartStates[index] ? width : null)\n });\n this._positionListener.stickyEndColumnsUpdated({\n sizes: firstStickyEnd === -1 ? [] : cellWidths.slice(firstStickyEnd).map((width, index) => stickyEndStates[index + firstStickyEnd] ? width : null).reverse()\n });\n }\n });\n }\n /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n */\n stickRows(rowsToStick, stickyStates, position) {\n // Since we can't measure the rows on the server, we can't stick the rows properly.\n if (!this._isBrowser) {\n return;\n }\n // Coalesce with other sticky row updates (top/bottom), sticky columns updates\n // (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n // If positioning the rows to the bottom, reverse their order when evaluating the sticky\n // position such that the last row stuck will be \"bottom: 0px\" and so on. Note that the\n // sticky states need to be reversed as well.\n const rows = position === 'bottom' ? rowsToStick.slice().reverse() : rowsToStick;\n const states = position === 'bottom' ? stickyStates.slice().reverse() : stickyStates;\n // Measure row heights all at once before adding sticky styles to reduce layout thrashing.\n const stickyOffsets = [];\n const stickyCellHeights = [];\n const elementsToStick = [];\n for (let rowIndex = 0, stickyOffset = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n stickyOffsets[rowIndex] = stickyOffset;\n const row = rows[rowIndex];\n elementsToStick[rowIndex] = this._isNativeHtmlTable ? Array.from(row.children) : [row];\n const height = row.getBoundingClientRect().height;\n stickyOffset += height;\n stickyCellHeights[rowIndex] = height;\n }\n const borderedRowIndex = states.lastIndexOf(true);\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n const offset = stickyOffsets[rowIndex];\n const isBorderedRowIndex = rowIndex === borderedRowIndex;\n for (const element of elementsToStick[rowIndex]) {\n this._addStickyStyle(element, position, offset, isBorderedRowIndex);\n }\n }\n if (position === 'top') {\n this._positionListener?.stickyHeaderRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick\n });\n } else {\n this._positionListener?.stickyFooterRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick\n });\n }\n });\n }\n /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n */\n updateStickyFooterContainer(tableElement, stickyStates) {\n if (!this._isNativeHtmlTable) {\n return;\n }\n // Coalesce with other sticky updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n const tfoot = tableElement.querySelector('tfoot');\n if (tfoot) {\n if (stickyStates.some(state => !state)) {\n this._removeStickyStyle(tfoot, ['bottom']);\n } else {\n this._addStickyStyle(tfoot, 'bottom', 0, false);\n }\n }\n });\n }\n /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n */\n _removeStickyStyle(element, stickyDirections) {\n for (const dir of stickyDirections) {\n element.style[dir] = '';\n element.classList.remove(this._borderCellCss[dir]);\n }\n // If the element no longer has any more sticky directions, remove sticky positioning and\n // the sticky CSS class.\n // Short-circuit checking element.style[dir] for stickyDirections as they\n // were already removed above.\n const hasDirection = STICKY_DIRECTIONS.some(dir => stickyDirections.indexOf(dir) === -1 && element.style[dir]);\n if (hasDirection) {\n element.style.zIndex = this._getCalculatedZIndex(element);\n } else {\n // When not hasDirection, _getCalculatedZIndex will always return ''.\n element.style.zIndex = '';\n if (this._needsPositionStickyOnElement) {\n element.style.position = '';\n }\n element.classList.remove(this._stickCellCss);\n }\n }\n /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n */\n _addStickyStyle(element, dir, dirValue, isBorderElement) {\n element.classList.add(this._stickCellCss);\n if (isBorderElement) {\n element.classList.add(this._borderCellCss[dir]);\n }\n element.style[dir] = `${dirValue}px`;\n element.style.zIndex = this._getCalculatedZIndex(element);\n if (this._needsPositionStickyOnElement) {\n element.style.cssText += 'position: -webkit-sticky; position: sticky; ';\n }\n }\n /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n */\n _getCalculatedZIndex(element) {\n const zIndexIncrements = {\n top: 100,\n bottom: 10,\n left: 1,\n right: 1\n };\n let zIndex = 0;\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n for (const dir of STICKY_DIRECTIONS) {\n if (element.style[dir]) {\n zIndex += zIndexIncrements[dir];\n }\n }\n return zIndex ? `${zIndex}` : '';\n }\n /** Gets the widths for each cell in the provided row. */\n _getCellWidths(row, recalculateCellWidths = true) {\n if (!recalculateCellWidths && this._cachedCellWidths.length) {\n return this._cachedCellWidths;\n }\n const cellWidths = [];\n const firstRowCells = row.children;\n for (let i = 0; i < firstRowCells.length; i++) {\n let cell = firstRowCells[i];\n cellWidths.push(cell.getBoundingClientRect().width);\n }\n this._cachedCellWidths = cellWidths;\n return cellWidths;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyStartColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = 0; i < widths.length; i++) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyEndColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = widths.length; i > 0; i--) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to find an nonexistent column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nfunction getTableUnknownColumnError(id) {\n return Error(`Could not find column with id \"${id}\".`);\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nfunction getTableDuplicateColumnNameError(name) {\n return Error(`Duplicate column definition name provided: \"${name}\".`);\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nfunction getTableMultipleDefaultRowDefsError() {\n return Error(`There can only be one default row without a when predicate function.`);\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * @docs-private\n */\nfunction getTableMissingMatchingRowDefError(data) {\n return Error(`Could not find a matching row definition for the` + `provided row data: ${JSON.stringify(data)}`);\n}\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nfunction getTableMissingRowDefsError() {\n return Error('Missing definitions for header, footer, and row; ' + 'cannot determine which columns should be rendered.');\n}\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nfunction getTableUnknownDataSourceError() {\n return Error(`Provided data source did not match an array, Observable, or DataSource`);\n}\n/**\n * Returns an error to be thrown when the text column cannot find a parent table to inject.\n * @docs-private\n */\nfunction getTableTextColumnMissingParentTableError() {\n return Error(`Text column could not find a parent table for registration.`);\n}\n/**\n * Returns an error to be thrown when a table text column doesn't have a name.\n * @docs-private\n */\nfunction getTableTextColumnMissingNameError() {\n return Error(`Table text column must have a name.`);\n}\n\n/** The injection token used to specify the StickyPositioningListener. */\nconst STICKY_POSITIONING_LISTENER = /*#__PURE__*/new InjectionToken('CDK_SPL');\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n */\nlet CdkRecycleRows = /*#__PURE__*/(() => {\n class CdkRecycleRows {\n static {\n this.ɵfac = function CdkRecycleRows_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkRecycleRows)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkRecycleRows,\n selectors: [[\"cdk-table\", \"recycleRows\", \"\"], [\"table\", \"cdk-table\", \"\", \"recycleRows\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n }\n return CdkRecycleRows;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\nlet DataRowOutlet = /*#__PURE__*/(() => {\n class DataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n const table = inject(CDK_TABLE);\n table._rowOutlet = this;\n table._outletAssigned();\n }\n static {\n this.ɵfac = function DataRowOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DataRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DataRowOutlet,\n selectors: [[\"\", \"rowOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return DataRowOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * @docs-private\n */\nlet HeaderRowOutlet = /*#__PURE__*/(() => {\n class HeaderRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n const table = inject(CDK_TABLE);\n table._headerRowOutlet = this;\n table._outletAssigned();\n }\n static {\n this.ɵfac = function HeaderRowOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HeaderRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HeaderRowOutlet,\n selectors: [[\"\", \"headerRowOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return HeaderRowOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the footer.\n * @docs-private\n */\nlet FooterRowOutlet = /*#__PURE__*/(() => {\n class FooterRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n const table = inject(CDK_TABLE);\n table._footerRowOutlet = this;\n table._outletAssigned();\n }\n static {\n this.ɵfac = function FooterRowOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FooterRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FooterRowOutlet,\n selectors: [[\"\", \"footerRowOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return FooterRowOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Provides a handle for the table to grab the view\n * container's ng-container to insert the no data row.\n * @docs-private\n */\nlet NoDataRowOutlet = /*#__PURE__*/(() => {\n class NoDataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n const table = inject(CDK_TABLE);\n table._noDataRowOutlet = this;\n table._outletAssigned();\n }\n static {\n this.ɵfac = function NoDataRowOutlet_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoDataRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NoDataRowOutlet,\n selectors: [[\"\", \"noDataRowOutlet\", \"\"]],\n standalone: true\n });\n }\n }\n return NoDataRowOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * @docs-private\n */\nconst CDK_TABLE_TEMPLATE =\n// Note that according to MDN, the `caption` element has to be projected as the **first**\n// element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n`\n <ng-content select=\"caption\"/>\n <ng-content select=\"colgroup, col\"/>\n\n <!--\n Unprojected content throws a hydration error so we need this to capture it.\n It gets removed on the client so it doesn't affect the layout.\n -->\n @if (_isServer) {\n <ng-content/>\n }\n\n @if (_isNativeHtmlTable) {\n <thead role=\"rowgroup\">\n <ng-container headerRowOutlet/>\n </thead>\n <tbody role=\"rowgroup\">\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n </tbody>\n <tfoot role=\"rowgroup\">\n <ng-container footerRowOutlet/>\n </tfoot>\n } @else {\n <ng-container headerRowOutlet/>\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n <ng-container footerRowOutlet/>\n }\n`;\n/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * @docs-private\n */\nclass RowViewRef extends EmbeddedViewRef {}\n/**\n * A data table that can render a header row, data rows, and a footer row.\n * Uses the dataSource input to determine the data to be rendered. The data can be provided either\n * as a data array, an Observable stream that emits the data array to render, or a DataSource with a\n * connect function that will return an Observable stream that emits the data array to render.\n */\nlet CdkTable = /*#__PURE__*/(() => {\n class CdkTable {\n /** Aria role to apply to the table's cells based on the table's own role. */\n _getCellRole() {\n if (this._cellRoleInternal === undefined) {\n // Perform this lazily in case the table's role was updated by a directive after construction.\n const role = this._elementRef.nativeElement.getAttribute('role');\n const cellRole = role === 'grid' || role === 'treegrid' ? 'gridcell' : 'cell';\n this._cellRoleInternal = this._isNativeHtmlTable && cellRole === 'cell' ? null : cellRole;\n }\n return this._cellRoleInternal;\n }\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n * relative to the function to know if a row should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n get trackBy() {\n return this._trackByFn;\n }\n set trackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n get dataSource() {\n return this._dataSource;\n }\n set dataSource(dataSource) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n /**\n * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n * dataobject will render the first row that evaluates its when predicate to true, in the order\n * defined in the table, or otherwise the default row which does not have a when predicate.\n */\n get multiTemplateDataRows() {\n return this._multiTemplateDataRows;\n }\n set multiTemplateDataRows(value) {\n this._multiTemplateDataRows = value;\n // In Ivy if this value is set via a static attribute (e.g. <table multiTemplateDataRows>),\n // this setter will be invoked before the row outlet has been defined hence the null check.\n if (this._rowOutlet && this._rowOutlet.viewContainer.length) {\n this._forceRenderDataRows();\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Whether to use a fixed table layout. Enabling this option will enforce consistent column widths\n * and optimize rendering sticky styles for native tables. No-op for flex tables.\n */\n get fixedLayout() {\n return this._fixedLayout;\n }\n set fixedLayout(value) {\n this._fixedLayout = value;\n // Toggling `fixedLayout` may change column widths. Sticky column styles should be recalculated.\n this._forceRecalculateCellWidths = true;\n this._stickyColumnStylesNeedReset = true;\n }\n constructor(_differs, _changeDetectorRef, _elementRef, role, _dir, _document, _platform, _viewRepeater, _coalescedStyleScheduler, _viewportRuler,\n /**\n * @deprecated `_stickyPositioningListener` parameter to become required.\n * @breaking-change 13.0.0\n */\n _stickyPositioningListener,\n /**\n * @deprecated `_unusedNgZone` parameter to be removed.\n * @breaking-change 19.0.0\n */\n _unusedNgZone) {\n this._differs = _differs;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._platform = _platform;\n this._viewRepeater = _viewRepeater;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._viewportRuler = _viewportRuler;\n this._stickyPositioningListener = _stickyPositioningListener;\n /** Subject that emits when the component has been destroyed. */\n this._onDestroy = new Subject();\n /**\n * Map of all the user's defined columns (header, data, and footer cell template) identified by\n * name. Collection populated by the column definitions gathered by `ContentChildren` as well as\n * any custom column definitions added to `_customColumnDefs`.\n */\n this._columnDefsByName = new Map();\n /**\n * Column definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * column definitions as *its* content child.\n */\n this._customColumnDefs = new Set();\n /**\n * Data row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in data rows as *its* content child.\n */\n this._customRowDefs = new Set();\n /**\n * Header row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in header rows as *its* content child.\n */\n this._customHeaderRowDefs = new Set();\n /**\n * Footer row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has a\n * built-in footer row as *its* content child.\n */\n this._customFooterRowDefs = new Set();\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._headerRowDefChanged = true;\n /**\n * Whether the footer row definition has been changed. Triggers an update to the footer row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._footerRowDefChanged = true;\n /**\n * Whether the sticky column styles need to be updated. Set to `true` when the visible columns\n * change.\n */\n this._stickyColumnStylesNeedReset = true;\n /**\n * Whether the sticky styler should recalculate cell widths when applying sticky styles. If\n * `false`, cached values will be used instead. This is only applicable to tables with\n * {@link fixedLayout} enabled. For other tables, cell widths will always be recalculated.\n */\n this._forceRecalculateCellWidths = true;\n /**\n * Cache of the latest rendered `RenderRow` objects as a map for easy retrieval when constructing\n * a new list of `RenderRow` objects for rendering rows. Since the new list is constructed with\n * the cached `RenderRow` objects when possible, the row identity is preserved when the data\n * and row template matches, which allows the `IterableDiffer` to check rows by reference\n * and understand which rows are added/moved/removed.\n *\n * Implemented as a map of maps where the first key is the `data: T` object and the second is the\n * `CdkRowDef<T>` object. With the two keys, the cache points to a `RenderRow<T>` object that\n * contains an array of created pairs. The array is necessary to handle cases where the data\n * array contains multiple duplicate data objects and each instantiated `RenderRow` must be\n * stored.\n */\n this._cachedRenderRowsMap = new Map();\n /**\n * CSS class added to any row or cell that has sticky positioning applied. May be overridden by\n * table subclasses.\n */\n this.stickyCssClass = 'cdk-table-sticky';\n /**\n * Whether to manually add position: sticky to all sticky cell elements. Not needed if\n * the position is set in a selector associated with the value of stickyCssClass. May be\n * overridden by table subclasses\n */\n this.needsPositionStickyOnElement = true;\n /** Whether the no data row is currently showing anything. */\n this._isShowingNoDataRow = false;\n /** Whether the table has rendered out all the outlets for the first time. */\n this._hasAllOutlets = false;\n /** Whether the table is done initializing. */\n this._hasInitialized = false;\n this._cellRoleInternal = undefined;\n this._multiTemplateDataRows = false;\n this._fixedLayout = false;\n /**\n * Emits when the table completes rendering a set of data rows based on the latest data from the\n * data source, even if the set of rows is empty.\n */\n this.contentChanged = new EventEmitter();\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\n /**\n * Stream containing the latest information on what rows are being displayed on screen.\n * Can be used by the data source to as a heuristic of what data should be provided.\n *\n * @docs-private\n */\n this.viewChange = new BehaviorSubject({\n start: 0,\n end: Number.MAX_VALUE\n });\n this._injector = inject(Injector);\n if (!role) {\n _elementRef.nativeElement.setAttribute('role', 'table');\n }\n this._document = _document;\n this._isServer = !_platform.isBrowser;\n this._isNativeHtmlTable = _elementRef.nativeElement.nodeName === 'TABLE';\n }\n ngOnInit() {\n this._setupStickyStyler();\n // Set up the trackBy function so that it uses the `RenderRow` as its identity by default. If\n // the user has provided a custom trackBy, return the result of that function as evaluated\n // with the values of the `RenderRow`'s data and index.\n this._dataDiffer = this._differs.find([]).create((_i, dataRow) => {\n return this.trackBy ? this.trackBy(dataRow.dataIndex, dataRow.data) : dataRow;\n });\n this._viewportRuler.change().pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this._forceRecalculateCellWidths = true;\n });\n }\n ngAfterContentInit() {\n this._hasInitialized = true;\n }\n ngAfterContentChecked() {\n // Only start re-rendering in `ngAfterContentChecked` after the first render.\n if (this._canRender()) {\n this._render();\n }\n }\n ngOnDestroy() {\n [this._rowOutlet?.viewContainer, this._headerRowOutlet?.viewContainer, this._footerRowOutlet?.viewContainer, this._cachedRenderRowsMap, this._customColumnDefs, this._customRowDefs, this._customHeaderRowDefs, this._customFooterRowDefs, this._columnDefsByName].forEach(def => {\n def?.clear();\n });\n this._headerRowDefs = [];\n this._footerRowDefs = [];\n this._defaultRowDef = null;\n this._onDestroy.next();\n this._onDestroy.complete();\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n }\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n renderRows() {\n this._renderRows = this._getAllRenderRows();\n const changes = this._dataDiffer.diff(this._renderRows);\n if (!changes) {\n this._updateNoDataRow();\n this.contentChanged.next();\n return;\n }\n const viewContainer = this._rowOutlet.viewContainer;\n this._viewRepeater.applyChanges(changes, viewContainer, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record.item, currentIndex), record => record.item.data, change => {\n if (change.operation === _ViewRepeaterOperation.INSERTED && change.context) {\n this._renderCellTemplateForItem(change.record.item.rowDef, change.context);\n }\n });\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange(record => {\n const rowView = viewContainer.get(record.currentIndex);\n rowView.context.$implicit = record.item.data;\n });\n this._updateNoDataRow();\n afterNextRender(() => {\n this.updateStickyColumnStyles();\n }, {\n injector: this._injector\n });\n this.contentChanged.next();\n }\n /** Adds a column definition that was not included as part of the content children. */\n addColumnDef(columnDef) {\n this._customColumnDefs.add(columnDef);\n }\n /** Removes a column definition that was not included as part of the content children. */\n removeColumnDef(columnDef) {\n this._customColumnDefs.delete(columnDef);\n }\n /** Adds a row definition that was not included as part of the content children. */\n addRowDef(rowDef) {\n this._customRowDefs.add(rowDef);\n }\n /** Removes a row definition that was not included as part of the content children. */\n removeRowDef(rowDef) {\n this._customRowDefs.delete(rowDef);\n }\n /** Adds a header row definition that was not included as part of the content children. */\n addHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.add(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Removes a header row definition that was not included as part of the content children. */\n removeHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.delete(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Adds a footer row definition that was not included as part of the content children. */\n addFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.add(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Removes a footer row definition that was not included as part of the content children. */\n removeFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.delete(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Sets a no data row definition that was not included as a part of the content children. */\n setNoDataRow(noDataRow) {\n this._customNoDataRow = noDataRow;\n }\n /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyHeaderRowStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n // Hide the thead element if there are no header rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n if (this._isNativeHtmlTable) {\n const thead = closestTableSection(this._headerRowOutlet, 'thead');\n if (thead) {\n thead.style.display = headerRows.length ? '' : 'none';\n }\n }\n const stickyStates = this._headerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(headerRows, ['top']);\n this._stickyStyler.stickRows(headerRows, stickyStates, 'top');\n // Reset the dirty state of the sticky input change since it has been used.\n this._headerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyFooterRowStyles() {\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n // Hide the tfoot element if there are no footer rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n if (this._isNativeHtmlTable) {\n const tfoot = closestTableSection(this._footerRowOutlet, 'tfoot');\n if (tfoot) {\n tfoot.style.display = footerRows.length ? '' : 'none';\n }\n }\n const stickyStates = this._footerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(footerRows, ['bottom']);\n this._stickyStyler.stickRows(footerRows, stickyStates, 'bottom');\n this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement, stickyStates);\n // Reset the dirty state of the sticky input change since it has been used.\n this._footerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n */\n updateStickyColumnStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n const dataRows = this._getRenderedRows(this._rowOutlet);\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n // For tables not using a fixed layout, the column widths may change when new rows are rendered.\n // In a table using a fixed layout, row content won't affect column width, so sticky styles\n // don't need to be cleared unless either the sticky column config changes or one of the row\n // defs change.\n if (this._isNativeHtmlTable && !this._fixedLayout || this._stickyColumnStylesNeedReset) {\n // Clear the left and right positioning from all columns in the table across all rows since\n // sticky columns span across all table sections (header, data, footer)\n this._stickyStyler.clearStickyPositioning([...headerRows, ...dataRows, ...footerRows], ['left', 'right']);\n this._stickyColumnStylesNeedReset = false;\n }\n // Update the sticky styles for each header row depending on the def's sticky state\n headerRows.forEach((headerRow, i) => {\n this._addStickyColumnStyles([headerRow], this._headerRowDefs[i]);\n });\n // Update the sticky styles for each data row depending on its def's sticky state\n this._rowDefs.forEach(rowDef => {\n // Collect all the rows rendered with this row definition.\n const rows = [];\n for (let i = 0; i < dataRows.length; i++) {\n if (this._renderRows[i].rowDef === rowDef) {\n rows.push(dataRows[i]);\n }\n }\n this._addStickyColumnStyles(rows, rowDef);\n });\n // Update the sticky styles for each footer row depending on the def's sticky state\n footerRows.forEach((footerRow, i) => {\n this._addStickyColumnStyles([footerRow], this._footerRowDefs[i]);\n });\n // Reset the dirty state of the sticky input change since it has been used.\n Array.from(this._columnDefsByName.values()).forEach(def => def.resetStickyChanged());\n }\n /** Invoked whenever an outlet is created and has been assigned to the table. */\n _outletAssigned() {\n // Trigger the first render once all outlets have been assigned. We do it this way, as\n // opposed to waiting for the next `ngAfterContentChecked`, because we don't know when\n // the next change detection will happen.\n // Also we can't use queries to resolve the outlets, because they're wrapped in a\n // conditional, so we have to rely on them being assigned via DI.\n if (!this._hasAllOutlets && this._rowOutlet && this._headerRowOutlet && this._footerRowOutlet && this._noDataRowOutlet) {\n this._hasAllOutlets = true;\n // In some setups this may fire before `ngAfterContentInit`\n // so we need a check here. See #28538.\n if (this._canRender()) {\n this._render();\n }\n }\n }\n /** Whether the table has all the information to start rendering. */\n _canRender() {\n return this._hasAllOutlets && this._hasInitialized;\n }\n /** Renders the table if its state has changed. */\n _render() {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n // Make sure that the user has at least added header, footer, or data row def.\n if (!this._headerRowDefs.length && !this._footerRowDefs.length && !this._rowDefs.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingRowDefsError();\n }\n // Render updates if the list of columns have been changed for the header, row, or footer defs.\n const columnsChanged = this._renderUpdatedColumns();\n const rowDefsChanged = columnsChanged || this._headerRowDefChanged || this._footerRowDefChanged;\n // Ensure sticky column styles are reset if set to `true` elsewhere.\n this._stickyColumnStylesNeedReset = this._stickyColumnStylesNeedReset || rowDefsChanged;\n this._forceRecalculateCellWidths = rowDefsChanged;\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._forceRenderHeaderRows();\n this._headerRowDefChanged = false;\n }\n // If the footer row definition has been changed, trigger a render to the footer row.\n if (this._footerRowDefChanged) {\n this._forceRenderFooterRows();\n this._footerRowDefChanged = false;\n }\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n } else if (this._stickyColumnStylesNeedReset) {\n // In the above case, _observeRenderChanges will result in updateStickyColumnStyles being\n // called when it row data arrives. Otherwise, we need to call it proactively.\n this.updateStickyColumnStyles();\n }\n this._checkStickyStates();\n }\n /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n */\n _getAllRenderRows() {\n const renderRows = [];\n // Store the cache and create a new one. Any re-used RenderRow objects will be moved into the\n // new cache while unused ones can be picked up by garbage collection.\n const prevCachedRenderRows = this._cachedRenderRowsMap;\n this._cachedRenderRowsMap = new Map();\n // For each data object, get the list of rows that should be rendered, represented by the\n // respective `RenderRow` object which is the pair of `data` and `CdkRowDef`.\n for (let i = 0; i < this._data.length; i++) {\n let data = this._data[i];\n const renderRowsForData = this._getRenderRowsForData(data, i, prevCachedRenderRows.get(data));\n if (!this._cachedRenderRowsMap.has(data)) {\n this._cachedRenderRowsMap.set(data, new WeakMap());\n }\n for (let j = 0; j < renderRowsForData.length; j++) {\n let renderRow = renderRowsForData[j];\n const cache = this._cachedRenderRowsMap.get(renderRow.data);\n if (cache.has(renderRow.rowDef)) {\n cache.get(renderRow.rowDef).push(renderRow);\n } else {\n cache.set(renderRow.rowDef, [renderRow]);\n }\n renderRows.push(renderRow);\n }\n }\n return renderRows;\n }\n /**\n * Gets a list of `RenderRow<T>` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n */\n _getRenderRowsForData(data, dataIndex, cache) {\n const rowDefs = this._getRowDefs(data, dataIndex);\n return rowDefs.map(rowDef => {\n const cachedRenderRows = cache && cache.has(rowDef) ? cache.get(rowDef) : [];\n if (cachedRenderRows.length) {\n const dataRow = cachedRenderRows.shift();\n dataRow.dataIndex = dataIndex;\n return dataRow;\n } else {\n return {\n data,\n rowDef,\n dataIndex\n };\n }\n });\n }\n /** Update the map containing the content's column definitions. */\n _cacheColumnDefs() {\n this._columnDefsByName.clear();\n const columnDefs = mergeArrayAndSet(this._getOwnDefs(this._contentColumnDefs), this._customColumnDefs);\n columnDefs.forEach(columnDef => {\n if (this._columnDefsByName.has(columnDef.name) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableDuplicateColumnNameError(columnDef.name);\n }\n this._columnDefsByName.set(columnDef.name, columnDef);\n });\n }\n /** Update the list of all available row definitions that can be used. */\n _cacheRowDefs() {\n this._headerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentHeaderRowDefs), this._customHeaderRowDefs);\n this._footerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentFooterRowDefs), this._customFooterRowDefs);\n this._rowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentRowDefs), this._customRowDefs);\n // After all row definitions are determined, find the row definition to be considered default.\n const defaultRowDefs = this._rowDefs.filter(def => !def.when);\n if (!this.multiTemplateDataRows && defaultRowDefs.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMultipleDefaultRowDefsError();\n }\n this._defaultRowDef = defaultRowDefs[0];\n }\n /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n */\n _renderUpdatedColumns() {\n const columnsDiffReducer = (acc, def) => acc || !!def.getColumnsDiff();\n // Force re-render data rows if the list of column definitions have changed.\n const dataColumnsChanged = this._rowDefs.reduce(columnsDiffReducer, false);\n if (dataColumnsChanged) {\n this._forceRenderDataRows();\n }\n // Force re-render header/footer rows if the list of column definitions have changed.\n const headerColumnsChanged = this._headerRowDefs.reduce(columnsDiffReducer, false);\n if (headerColumnsChanged) {\n this._forceRenderHeaderRows();\n }\n const footerColumnsChanged = this._footerRowDefs.reduce(columnsDiffReducer, false);\n if (footerColumnsChanged) {\n this._forceRenderFooterRows();\n }\n return dataColumnsChanged || headerColumnsChanged || footerColumnsChanged;\n }\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n */\n _switchDataSource(dataSource) {\n this._data = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n // Stop listening for data from the previous data source.\n if (this._renderChangeSubscription) {\n this._renderChangeSubscription.unsubscribe();\n this._renderChangeSubscription = null;\n }\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n if (this._rowOutlet) {\n this._rowOutlet.viewContainer.clear();\n }\n }\n this._dataSource = dataSource;\n }\n /** Set up a subscription for the data provided by the data source. */\n _observeRenderChanges() {\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) {\n return;\n }\n let dataStream;\n if (isDataSource(this.dataSource)) {\n dataStream = this.dataSource.connect(this);\n } else if (isObservable(this.dataSource)) {\n dataStream = this.dataSource;\n } else if (Array.isArray(this.dataSource)) {\n dataStream = of(this.dataSource);\n }\n if (dataStream === undefined && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownDataSourceError();\n }\n this._renderChangeSubscription = dataStream.pipe(takeUntil(this._onDestroy)).subscribe(data => {\n this._data = data || [];\n this.renderRows();\n });\n }\n /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n */\n _forceRenderHeaderRows() {\n // Clear the header row outlet if any content exists.\n if (this._headerRowOutlet.viewContainer.length > 0) {\n this._headerRowOutlet.viewContainer.clear();\n }\n this._headerRowDefs.forEach((def, i) => this._renderRow(this._headerRowOutlet, def, i));\n this.updateStickyHeaderRowStyles();\n }\n /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n */\n _forceRenderFooterRows() {\n // Clear the footer row outlet if any content exists.\n if (this._footerRowOutlet.viewContainer.length > 0) {\n this._footerRowOutlet.viewContainer.clear();\n }\n this._footerRowDefs.forEach((def, i) => this._renderRow(this._footerRowOutlet, def, i));\n this.updateStickyFooterRowStyles();\n }\n /** Adds the sticky column styles for the rows according to the columns' stick states. */\n _addStickyColumnStyles(rows, rowDef) {\n const columnDefs = Array.from(rowDef.columns || []).map(columnName => {\n const columnDef = this._columnDefsByName.get(columnName);\n if (!columnDef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnName);\n }\n return columnDef;\n });\n const stickyStartStates = columnDefs.map(columnDef => columnDef.sticky);\n const stickyEndStates = columnDefs.map(columnDef => columnDef.stickyEnd);\n this._stickyStyler.updateStickyColumns(rows, stickyStartStates, stickyEndStates, !this._fixedLayout || this._forceRecalculateCellWidths);\n }\n /** Gets the list of rows that have been rendered in the row outlet. */\n _getRenderedRows(rowOutlet) {\n const renderedRows = [];\n for (let i = 0; i < rowOutlet.viewContainer.length; i++) {\n const viewRef = rowOutlet.viewContainer.get(i);\n renderedRows.push(viewRef.rootNodes[0]);\n }\n return renderedRows;\n }\n /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n */\n _getRowDefs(data, dataIndex) {\n if (this._rowDefs.length == 1) {\n return [this._rowDefs[0]];\n }\n let rowDefs = [];\n if (this.multiTemplateDataRows) {\n rowDefs = this._rowDefs.filter(def => !def.when || def.when(dataIndex, data));\n } else {\n let rowDef = this._rowDefs.find(def => def.when && def.when(dataIndex, data)) || this._defaultRowDef;\n if (rowDef) {\n rowDefs.push(rowDef);\n }\n }\n if (!rowDefs.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingMatchingRowDefError(data);\n }\n return rowDefs;\n }\n _getEmbeddedViewArgs(renderRow, index) {\n const rowDef = renderRow.rowDef;\n const context = {\n $implicit: renderRow.data\n };\n return {\n templateRef: rowDef.template,\n context,\n index\n };\n }\n /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n */\n _renderRow(outlet, rowDef, index, context = {}) {\n // TODO(andrewseguin): enforce that one outlet was instantiated from createEmbeddedView\n const view = outlet.viewContainer.createEmbeddedView(rowDef.template, context, index);\n this._renderCellTemplateForItem(rowDef, context);\n return view;\n }\n _renderCellTemplateForItem(rowDef, context) {\n for (let cellTemplate of this._getCellTemplates(rowDef)) {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cellTemplate, context);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n _updateRowIndexContext() {\n const viewContainer = this._rowOutlet.viewContainer;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex);\n const context = viewRef.context;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n if (this.multiTemplateDataRows) {\n context.dataIndex = this._renderRows[renderIndex].dataIndex;\n context.renderIndex = renderIndex;\n } else {\n context.index = this._renderRows[renderIndex].dataIndex;\n }\n }\n }\n /** Gets the column definitions for the provided row def. */\n _getCellTemplates(rowDef) {\n if (!rowDef || !rowDef.columns) {\n return [];\n }\n return Array.from(rowDef.columns, columnId => {\n const column = this._columnDefsByName.get(columnId);\n if (!column && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnId);\n }\n return rowDef.extractCellTemplate(column);\n });\n }\n /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n */\n _forceRenderDataRows() {\n this._dataDiffer.diff([]);\n this._rowOutlet.viewContainer.clear();\n this.renderRows();\n }\n /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n */\n _checkStickyStates() {\n const stickyCheckReducer = (acc, d) => {\n return acc || d.hasStickyChanged();\n };\n // Note that the check needs to occur for every definition since it notifies the definition\n // that it can reset its dirty state. Using another operator like `some` may short-circuit\n // remaining definitions and leave them in an unchecked state.\n if (this._headerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyHeaderRowStyles();\n }\n if (this._footerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyFooterRowStyles();\n }\n if (Array.from(this._columnDefsByName.values()).reduce(stickyCheckReducer, false)) {\n this._stickyColumnStylesNeedReset = true;\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n */\n _setupStickyStyler() {\n const direction = this._dir ? this._dir.value : 'ltr';\n this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement, this._stickyPositioningListener);\n (this._dir ? this._dir.change : of()).pipe(takeUntil(this._onDestroy)).subscribe(value => {\n this._stickyStyler.direction = value;\n this.updateStickyColumnStyles();\n });\n }\n /** Filters definitions that belong to this table from a QueryList. */\n _getOwnDefs(items) {\n return items.filter(item => !item._table || item._table === this);\n }\n /** Creates or removes the no data row, depending on whether any data is being shown. */\n _updateNoDataRow() {\n const noDataRow = this._customNoDataRow || this._noDataRow;\n if (!noDataRow) {\n return;\n }\n const shouldShow = this._rowOutlet.viewContainer.length === 0;\n if (shouldShow === this._isShowingNoDataRow) {\n return;\n }\n const container = this._noDataRowOutlet.viewContainer;\n if (shouldShow) {\n const view = container.createEmbeddedView(noDataRow.templateRef);\n const rootNode = view.rootNodes[0];\n // Only add the attributes if we have a single root node since it's hard\n // to figure out which one to add it to when there are multiple.\n if (view.rootNodes.length === 1 && rootNode?.nodeType === this._document.ELEMENT_NODE) {\n rootNode.setAttribute('role', 'row');\n rootNode.classList.add(noDataRow._contentClassName);\n }\n } else {\n container.clear();\n }\n this._isShowingNoDataRow = shouldShow;\n this._changeDetectorRef.markForCheck();\n }\n static {\n this.ɵfac = function CdkTable_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkTable)(i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('role'), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(_VIEW_REPEATER_STRATEGY), i0.ɵɵdirectiveInject(_COALESCED_STYLE_SCHEDULER), i0.ɵɵdirectiveInject(i3.ViewportRuler), i0.ɵɵdirectiveInject(STICKY_POSITIONING_LISTENER, 12), i0.ɵɵdirectiveInject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkTable,\n selectors: [[\"cdk-table\"], [\"table\", \"cdk-table\", \"\"]],\n contentQueries: function CdkTable_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkNoDataRow, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkColumnDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkRowDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkHeaderRowDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkFooterRowDef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._noDataRow = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentColumnDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentRowDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentHeaderRowDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentFooterRowDefs = _t);\n }\n },\n hostAttrs: [1, \"cdk-table\"],\n hostVars: 2,\n hostBindings: function CdkTable_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"cdk-table-fixed-layout\", ctx.fixedLayout);\n }\n },\n inputs: {\n trackBy: \"trackBy\",\n dataSource: \"dataSource\",\n multiTemplateDataRows: [2, \"multiTemplateDataRows\", \"multiTemplateDataRows\", booleanAttribute],\n fixedLayout: [2, \"fixedLayout\", \"fixedLayout\", booleanAttribute]\n },\n outputs: {\n contentChanged: \"contentChanged\"\n },\n exportAs: [\"cdkTable\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CDK_TABLE,\n useExisting: CdkTable\n }, {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 5,\n vars: 2,\n consts: [[\"role\", \"rowgroup\"], [\"headerRowOutlet\", \"\"], [\"rowOutlet\", \"\"], [\"noDataRowOutlet\", \"\"], [\"footerRowOutlet\", \"\"]],\n template: function CdkTable_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, CdkTable_Conditional_2_Template, 1, 0)(3, CdkTable_Conditional_3_Template, 7, 0)(4, CdkTable_Conditional_4_Template, 4, 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._isServer ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._isNativeHtmlTable ? 3 : 4);\n }\n },\n dependencies: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet],\n styles: [\".cdk-table-fixed-layout{table-layout:fixed}\"],\n encapsulation: 2\n });\n }\n }\n return CdkTable;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Utility function that gets a merged list of the entries in an array and values of a Set. */\nfunction mergeArrayAndSet(array, set) {\n return array.concat(Array.from(set));\n}\n/**\n * Finds the closest table section to an outlet. We can't use `HTMLElement.closest` for this,\n * because the node representing the outlet is a comment.\n */\nfunction closestTableSection(outlet, section) {\n const uppercaseSection = section.toUpperCase();\n let current = outlet.viewContainer.element.nativeElement;\n while (current) {\n // 1 is an element node.\n const nodeName = current.nodeType === 1 ? current.nodeName : null;\n if (nodeName === uppercaseSection) {\n return current;\n } else if (nodeName === 'TABLE') {\n // Stop traversing past the `table` node.\n break;\n }\n current = current.parentNode;\n }\n return null;\n}\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nlet CdkTextColumn = /*#__PURE__*/(() => {\n class CdkTextColumn {\n /** Column name that should be used to reference this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncColumnDefName();\n }\n constructor(\n // `CdkTextColumn` is always requiring a table, but we just assert it manually\n // for better error reporting.\n // tslint:disable-next-line: lightweight-tokens\n _table, _options) {\n this._table = _table;\n this._options = _options;\n /** Alignment of the cell values. */\n this.justify = 'start';\n this._options = _options || {};\n }\n ngOnInit() {\n this._syncColumnDefName();\n if (this.headerText === undefined) {\n this.headerText = this._createDefaultHeaderText();\n }\n if (!this.dataAccessor) {\n this.dataAccessor = this._options.defaultDataAccessor || ((data, name) => data[name]);\n }\n if (this._table) {\n // Provide the cell and headerCell directly to the table with the static `ViewChild` query,\n // since the columnDef will not pick up its content by the time the table finishes checking\n // its content and initializing the rows.\n this.columnDef.cell = this.cell;\n this.columnDef.headerCell = this.headerCell;\n this._table.addColumnDef(this.columnDef);\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getTableTextColumnMissingParentTableError();\n }\n }\n ngOnDestroy() {\n if (this._table) {\n this._table.removeColumnDef(this.columnDef);\n }\n }\n /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n */\n _createDefaultHeaderText() {\n const name = this.name;\n if (!name && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableTextColumnMissingNameError();\n }\n if (this._options && this._options.defaultHeaderTextTransform) {\n return this._options.defaultHeaderTextTransform(name);\n }\n return name[0].toUpperCase() + name.slice(1);\n }\n /** Synchronizes the column definition name with the text column name. */\n _syncColumnDefName() {\n if (this.columnDef) {\n this.columnDef.name = this.name;\n }\n }\n static {\n this.ɵfac = function CdkTextColumn_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkTextColumn)(i0.ɵɵdirectiveInject(CdkTable, 8), i0.ɵɵdirectiveInject(TEXT_COLUMN_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkTextColumn,\n selectors: [[\"cdk-text-column\"]],\n viewQuery: function CdkTextColumn_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkColumnDef, 7);\n i0.ɵɵviewQuery(CdkCellDef, 7);\n i0.ɵɵviewQuery(CdkHeaderCellDef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnDef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCell = _t.first);\n }\n },\n inputs: {\n name: \"name\",\n headerText: \"headerText\",\n dataAccessor: \"dataAccessor\",\n justify: \"justify\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 0,\n consts: [[\"cdkColumnDef\", \"\"], [\"cdk-header-cell\", \"\", 3, \"text-align\", 4, \"cdkHeaderCellDef\"], [\"cdk-cell\", \"\", 3, \"text-align\", 4, \"cdkCellDef\"], [\"cdk-header-cell\", \"\"], [\"cdk-cell\", \"\"]],\n template: function CdkTextColumn_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, CdkTextColumn_th_1_Template, 2, 3, \"th\", 1)(2, CdkTextColumn_td_2_Template, 2, 3, \"td\", 2);\n i0.ɵɵelementContainerEnd();\n }\n },\n dependencies: [CdkColumnDef, CdkHeaderCellDef, CdkHeaderCell, CdkCellDef, CdkCell],\n encapsulation: 2\n });\n }\n }\n return CdkTextColumn;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst EXPORTED_DECLARATIONS = [CdkTable, CdkRowDef, CdkCellDef, CdkCellOutlet, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkCell, CdkRow, CdkHeaderCell, CdkFooterCell, CdkHeaderRow, CdkHeaderRowDef, CdkFooterRow, CdkFooterRowDef, DataRowOutlet, HeaderRowOutlet, FooterRowOutlet, CdkTextColumn, CdkNoDataRow, CdkRecycleRows, NoDataRowOutlet];\nlet CdkTableModule = /*#__PURE__*/(() => {\n class CdkTableModule {\n static {\n this.ɵfac = function CdkTableModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkTableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkTableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ScrollingModule]\n });\n }\n }\n return CdkTableModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Mixin to provide a directive with a function that checks if the sticky input has been\n * changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * @docs-private\n * @deprecated Implement the `CanStick` interface instead.\n * @breaking-change 19.0.0\n */\nfunction mixinHasStickyInput(base) {\n return class extends base {\n /** Whether sticky positioning should be applied. */\n get sticky() {\n return this._sticky;\n }\n set sticky(v) {\n const prevValue = this._sticky;\n this._sticky = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._sticky;\n }\n /** Whether the sticky value has changed since this was last called. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this._hasStickyChanged = false;\n return hasStickyChanged;\n }\n /** Resets the dirty check for cases where the sticky state has been used without checking. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n constructor(...args) {\n super(...args);\n this._sticky = false;\n /** Whether the sticky input has changed since it was last checked. */\n this._hasStickyChanged = false;\n }\n };\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRecycleRows, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, STICKY_POSITIONING_LISTENER, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule, mixinHasStickyInput };\n","import * as i0 from '@angular/core';\nimport { Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, booleanAttribute, NgModule } from '@angular/core';\nimport { CdkTable, CDK_TABLE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, STICKY_POSITIONING_LISTENER, HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet, CdkCellDef, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkHeaderCell, CdkFooterCell, CdkCell, CdkHeaderRowDef, CdkFooterRowDef, CdkRowDef, CdkHeaderRow, CdkCellOutlet, CdkFooterRow, CdkRow, CdkNoDataRow, CdkTextColumn, CdkTableModule } from '@angular/cdk/table';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy, DataSource } from '@angular/cdk/collections';\nimport { MatCommonModule } from '@angular/material/core';\nimport { BehaviorSubject, Subject, merge, of, combineLatest } from 'rxjs';\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { map } from 'rxjs/operators';\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n */\nconst _c0 = [[[\"caption\"]], [[\"colgroup\"], [\"col\"]], \"*\"];\nconst _c1 = [\"caption\", \"colgroup, col\", \"*\"];\nfunction MatTable_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 2);\n }\n}\nfunction MatTable_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"thead\", 0);\n i0.ɵɵelementContainer(1, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"tbody\", 2);\n i0.ɵɵelementContainer(3, 3)(4, 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"tfoot\", 0);\n i0.ɵɵelementContainer(6, 5);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatTable_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 1)(1, 3)(2, 4)(3, 5);\n }\n}\nfunction MatTextColumn_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.headerText, \" \");\n }\n}\nfunction MatTextColumn_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const data_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.dataAccessor(data_r2, ctx_r0.name), \" \");\n }\n}\nlet MatRecycleRows = /*#__PURE__*/(() => {\n class MatRecycleRows {\n static {\n this.ɵfac = function MatRecycleRows_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatRecycleRows)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatRecycleRows,\n selectors: [[\"mat-table\", \"recycleRows\", \"\"], [\"table\", \"mat-table\", \"\", \"recycleRows\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n }\n return MatRecycleRows;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatTable = /*#__PURE__*/(() => {\n class MatTable extends CdkTable {\n constructor() {\n super(...arguments);\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n this.stickyCssClass = 'mat-mdc-table-sticky';\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\n this.needsPositionStickyOnElement = false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTable_BaseFactory;\n return function MatTable_Factory(__ngFactoryType__) {\n return (ɵMatTable_BaseFactory || (ɵMatTable_BaseFactory = i0.ɵɵgetInheritedFactory(MatTable)))(__ngFactoryType__ || MatTable);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTable,\n selectors: [[\"mat-table\"], [\"table\", \"mat-table\", \"\"]],\n hostAttrs: [1, \"mat-mdc-table\", \"mdc-data-table__table\"],\n hostVars: 2,\n hostBindings: function MatTable_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-table-fixed-layout\", ctx.fixedLayout);\n }\n },\n exportAs: [\"matTable\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkTable,\n useExisting: MatTable\n }, {\n provide: CDK_TABLE,\n useExisting: MatTable\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\n // is only included in the build if used.\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 5,\n vars: 2,\n consts: [[\"role\", \"rowgroup\"], [\"headerRowOutlet\", \"\"], [\"role\", \"rowgroup\", 1, \"mdc-data-table__content\"], [\"rowOutlet\", \"\"], [\"noDataRowOutlet\", \"\"], [\"footerRowOutlet\", \"\"]],\n template: function MatTable_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MatTable_Conditional_2_Template, 1, 0)(3, MatTable_Conditional_3_Template, 7, 0)(4, MatTable_Conditional_4_Template, 4, 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._isServer ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._isNativeHtmlTable ? 3 : 4);\n }\n },\n dependencies: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet],\n styles: [\".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-app-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-app-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-app-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-app-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-app-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-app-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-app-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-app-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-app-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-app-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-app-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-app-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-app-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-app-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-app-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-app-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\"],\n encapsulation: 2\n });\n }\n }\n return MatTable;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nlet MatCellDef = /*#__PURE__*/(() => {\n class MatCellDef extends CdkCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatCellDef_BaseFactory;\n return function MatCellDef_Factory(__ngFactoryType__) {\n return (ɵMatCellDef_BaseFactory || (ɵMatCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatCellDef)))(__ngFactoryType__ || MatCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatCellDef,\n selectors: [[\"\", \"matCellDef\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkCellDef,\n useExisting: MatCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nlet MatHeaderCellDef = /*#__PURE__*/(() => {\n class MatHeaderCellDef extends CdkHeaderCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderCellDef_BaseFactory;\n return function MatHeaderCellDef_Factory(__ngFactoryType__) {\n return (ɵMatHeaderCellDef_BaseFactory || (ɵMatHeaderCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderCellDef)))(__ngFactoryType__ || MatHeaderCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderCellDef,\n selectors: [[\"\", \"matHeaderCellDef\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderCellDef,\n useExisting: MatHeaderCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatHeaderCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nlet MatFooterCellDef = /*#__PURE__*/(() => {\n class MatFooterCellDef extends CdkFooterCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterCellDef_BaseFactory;\n return function MatFooterCellDef_Factory(__ngFactoryType__) {\n return (ɵMatFooterCellDef_BaseFactory || (ɵMatFooterCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterCellDef)))(__ngFactoryType__ || MatFooterCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterCellDef,\n selectors: [[\"\", \"matFooterCellDef\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterCellDef,\n useExisting: MatFooterCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatFooterCellDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\nlet MatColumnDef = /*#__PURE__*/(() => {\n class MatColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /**\n * Add \"mat-column-\" prefix in addition to \"cdk-column-\" prefix.\n * In the future, this will only add \"mat-column-\" and columnCssClassName\n * will change from type string[] to string.\n * @docs-private\n */\n _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatColumnDef_BaseFactory;\n return function MatColumnDef_Factory(__ngFactoryType__) {\n return (ɵMatColumnDef_BaseFactory || (ɵMatColumnDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatColumnDef)))(__ngFactoryType__ || MatColumnDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatColumnDef,\n selectors: [[\"\", \"matColumnDef\", \"\"]],\n inputs: {\n name: [0, \"matColumnDef\", \"name\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkColumnDef,\n useExisting: MatColumnDef\n }, {\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: MatColumnDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatColumnDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Header cell template container that adds the right classes and role. */\nlet MatHeaderCell = /*#__PURE__*/(() => {\n class MatHeaderCell extends CdkHeaderCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderCell_BaseFactory;\n return function MatHeaderCell_Factory(__ngFactoryType__) {\n return (ɵMatHeaderCell_BaseFactory || (ɵMatHeaderCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderCell)))(__ngFactoryType__ || MatHeaderCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderCell,\n selectors: [[\"mat-header-cell\"], [\"th\", \"mat-header-cell\", \"\"]],\n hostAttrs: [\"role\", \"columnheader\", 1, \"mat-mdc-header-cell\", \"mdc-data-table__header-cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatHeaderCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Footer cell template container that adds the right classes and role. */\nlet MatFooterCell = /*#__PURE__*/(() => {\n class MatFooterCell extends CdkFooterCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterCell_BaseFactory;\n return function MatFooterCell_Factory(__ngFactoryType__) {\n return (ɵMatFooterCell_BaseFactory || (ɵMatFooterCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterCell)))(__ngFactoryType__ || MatFooterCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterCell,\n selectors: [[\"mat-footer-cell\"], [\"td\", \"mat-footer-cell\", \"\"]],\n hostAttrs: [1, \"mat-mdc-footer-cell\", \"mdc-data-table__cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatFooterCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Cell template container that adds the right classes and role. */\nlet MatCell = /*#__PURE__*/(() => {\n class MatCell extends CdkCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatCell_BaseFactory;\n return function MatCell_Factory(__ngFactoryType__) {\n return (ɵMatCell_BaseFactory || (ɵMatCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatCell)))(__ngFactoryType__ || MatCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatCell,\n selectors: [[\"mat-cell\"], [\"td\", \"mat-cell\", \"\"]],\n hostAttrs: [1, \"mat-mdc-cell\", \"mdc-data-table__cell\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatCell;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\nconst ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nlet MatHeaderRowDef = /*#__PURE__*/(() => {\n class MatHeaderRowDef extends CdkHeaderRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderRowDef_BaseFactory;\n return function MatHeaderRowDef_Factory(__ngFactoryType__) {\n return (ɵMatHeaderRowDef_BaseFactory || (ɵMatHeaderRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderRowDef)))(__ngFactoryType__ || MatHeaderRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderRowDef,\n selectors: [[\"\", \"matHeaderRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matHeaderRowDef\", \"columns\"],\n sticky: [2, \"matHeaderRowDefSticky\", \"sticky\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRowDef,\n useExisting: MatHeaderRowDef\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatHeaderRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nlet MatFooterRowDef = /*#__PURE__*/(() => {\n class MatFooterRowDef extends CdkFooterRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterRowDef_BaseFactory;\n return function MatFooterRowDef_Factory(__ngFactoryType__) {\n return (ɵMatFooterRowDef_BaseFactory || (ɵMatFooterRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterRowDef)))(__ngFactoryType__ || MatFooterRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterRowDef,\n selectors: [[\"\", \"matFooterRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matFooterRowDef\", \"columns\"],\n sticky: [2, \"matFooterRowDefSticky\", \"sticky\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRowDef,\n useExisting: MatFooterRowDef\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatFooterRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nlet MatRowDef = /*#__PURE__*/(() => {\n class MatRowDef extends CdkRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatRowDef_BaseFactory;\n return function MatRowDef_Factory(__ngFactoryType__) {\n return (ɵMatRowDef_BaseFactory || (ɵMatRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatRowDef)))(__ngFactoryType__ || MatRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatRowDef,\n selectors: [[\"\", \"matRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matRowDefColumns\", \"columns\"],\n when: [0, \"matRowDefWhen\", \"when\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRowDef,\n useExisting: MatRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatRowDef;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nlet MatHeaderRow = /*#__PURE__*/(() => {\n class MatHeaderRow extends CdkHeaderRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderRow_BaseFactory;\n return function MatHeaderRow_Factory(__ngFactoryType__) {\n return (ɵMatHeaderRow_BaseFactory || (ɵMatHeaderRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderRow)))(__ngFactoryType__ || MatHeaderRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatHeaderRow,\n selectors: [[\"mat-header-row\"], [\"tr\", \"mat-header-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-header-row\", \"mdc-data-table__header-row\"],\n exportAs: [\"matHeaderRow\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRow,\n useExisting: MatHeaderRow\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatHeaderRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return MatHeaderRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nlet MatFooterRow = /*#__PURE__*/(() => {\n class MatFooterRow extends CdkFooterRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterRow_BaseFactory;\n return function MatFooterRow_Factory(__ngFactoryType__) {\n return (ɵMatFooterRow_BaseFactory || (ɵMatFooterRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterRow)))(__ngFactoryType__ || MatFooterRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFooterRow,\n selectors: [[\"mat-footer-row\"], [\"tr\", \"mat-footer-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-footer-row\", \"mdc-data-table__row\"],\n exportAs: [\"matFooterRow\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRow,\n useExisting: MatFooterRow\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatFooterRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return MatFooterRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nlet MatRow = /*#__PURE__*/(() => {\n class MatRow extends CdkRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatRow_BaseFactory;\n return function MatRow_Factory(__ngFactoryType__) {\n return (ɵMatRow_BaseFactory || (ɵMatRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatRow)))(__ngFactoryType__ || MatRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatRow,\n selectors: [[\"mat-row\"], [\"tr\", \"mat-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-row\", \"mdc-data-table__row\"],\n exportAs: [\"matRow\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRow,\n useExisting: MatRow\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n }\n return MatRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Row that can be used to display a message when no data is shown in the table. */\nlet MatNoDataRow = /*#__PURE__*/(() => {\n class MatNoDataRow extends CdkNoDataRow {\n constructor() {\n super(...arguments);\n this._contentClassName = 'mat-mdc-no-data-row';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatNoDataRow_BaseFactory;\n return function MatNoDataRow_Factory(__ngFactoryType__) {\n return (ɵMatNoDataRow_BaseFactory || (ɵMatNoDataRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatNoDataRow)))(__ngFactoryType__ || MatNoDataRow);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatNoDataRow,\n selectors: [[\"ng-template\", \"matNoDataRow\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkNoDataRow,\n useExisting: MatNoDataRow\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatNoDataRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nlet MatTextColumn = /*#__PURE__*/(() => {\n class MatTextColumn extends CdkTextColumn {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTextColumn_BaseFactory;\n return function MatTextColumn_Factory(__ngFactoryType__) {\n return (ɵMatTextColumn_BaseFactory || (ɵMatTextColumn_BaseFactory = i0.ɵɵgetInheritedFactory(MatTextColumn)))(__ngFactoryType__ || MatTextColumn);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTextColumn,\n selectors: [[\"mat-text-column\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 0,\n consts: [[\"matColumnDef\", \"\"], [\"mat-header-cell\", \"\", 3, \"text-align\", 4, \"matHeaderCellDef\"], [\"mat-cell\", \"\", 3, \"text-align\", 4, \"matCellDef\"], [\"mat-header-cell\", \"\"], [\"mat-cell\", \"\"]],\n template: function MatTextColumn_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, MatTextColumn_th_1_Template, 2, 3, \"th\", 1)(2, MatTextColumn_td_2_Template, 2, 3, \"td\", 2);\n i0.ɵɵelementContainerEnd();\n }\n },\n dependencies: [MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell],\n encapsulation: 2\n });\n }\n }\n return MatTextColumn;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst EXPORTED_DECLARATIONS = [\n// Table\nMatTable, MatRecycleRows,\n// Template defs\nMatHeaderCellDef, MatHeaderRowDef, MatColumnDef, MatCellDef, MatRowDef, MatFooterCellDef, MatFooterRowDef,\n// Cell directives\nMatHeaderCell, MatCell, MatFooterCell,\n// Row directives\nMatHeaderRow, MatRow, MatFooterRow, MatNoDataRow, MatTextColumn];\nlet MatTableModule = /*#__PURE__*/(() => {\n class MatTableModule {\n static {\n this.ɵfac = function MatTableModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatTableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CdkTableModule, MatCommonModule]\n });\n }\n }\n return MatTableModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n */\nconst MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterPredicate,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nclass MatTableDataSource extends DataSource {\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n set data(data) {\n data = Array.isArray(data) ? data : [];\n this._data.next(data);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get filter() {\n return this._filter.value;\n }\n set filter(filter) {\n this._filter.next(filter);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort() {\n return this._sort;\n }\n set sort(sort) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n /**\n * Instance of the paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the paginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n */\n get paginator() {\n return this._paginator;\n }\n set paginator(paginator) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n constructor(initialData = []) {\n super();\n /** Stream emitting render data to the table (depends on ordered data changes). */\n this._renderData = new BehaviorSubject([]);\n /** Stream that emits when a new filter string is set on the data source. */\n this._filter = new BehaviorSubject('');\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\n this._internalPageChanges = new Subject();\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n this._renderChangesSubscription = null;\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n this.sortingDataAccessor = (data, sortHeaderId) => {\n const value = data[sortHeaderId];\n if (_isNumberValue(value)) {\n const numberValue = Number(value);\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we leave them as strings.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n }\n return value;\n };\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n this.sortData = (data, sort) => {\n const active = sort.active;\n const direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n return data.sort((a, b) => {\n let valueA = this.sortingDataAccessor(a, active);\n let valueB = this.sortingDataAccessor(b, active);\n // If there are data in the column that can be converted to a number,\n // it must be ensured that the rest of the data\n // is of the same type so as not to order incorrectly.\n const valueAType = typeof valueA;\n const valueBType = typeof valueB;\n if (valueAType !== valueBType) {\n if (valueAType === 'number') {\n valueA += '';\n }\n if (valueBType === 'number') {\n valueB += '';\n }\n }\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // one value exists while the other doesn't. In this case, existing value should come last.\n // This avoids inconsistent results when comparing values to undefined/null.\n // If neither value exists, return 0 (equal).\n let comparatorResult = 0;\n if (valueA != null && valueB != null) {\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n if (valueA > valueB) {\n comparatorResult = 1;\n } else if (valueA < valueB) {\n comparatorResult = -1;\n }\n } else if (valueA != null) {\n comparatorResult = 1;\n } else if (valueB != null) {\n comparatorResult = -1;\n }\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n });\n };\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches against the data\n */\n this.filterPredicate = (data, filter) => {\n // Transform the data into a lowercase string of all property values.\n const dataStr = Object.keys(data).reduce((currentTerm, key) => {\n // Use an obscure Unicode character to delimit the words in the concatenated string.\n // This avoids matches where the values of two columns combined will match the user's query\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\n // that has a very low chance of being typed in by somebody in a text field. This one in\n // particular is \"White up-pointing triangle with dot\" from\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\n return currentTerm + data[key] + '◬';\n }, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.indexOf(transformedFilter) != -1;\n };\n this._data = new BehaviorSubject(initialData);\n this._updateChangeSubscription();\n }\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n _updateChangeSubscription() {\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n const sortChange = this._sort ? merge(this._sort.sortChange, this._sort.initialized) : of(null);\n const pageChange = this._paginator ? merge(this._paginator.page, this._internalPageChanges, this._paginator.initialized) : of(null);\n const dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(map(([data]) => this._filterData(data)));\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\n }\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the data array\n * as provided.\n */\n _filterData(data) {\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterPredicate.\n // May be overridden for customization.\n this.filteredData = this.filter == null || this.filter === '' ? data : data.filter(obj => this.filterPredicate(obj, this.filter));\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n return this.filteredData;\n }\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n _orderData(data) {\n // If there is no active sort or direction, return the data without trying to sort.\n if (!this.sort) {\n return data;\n }\n return this.sortData(data.slice(), this.sort);\n }\n /**\n * Returns a paged slice of the provided data array according to the provided paginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n _pageData(data) {\n if (!this.paginator) {\n return data;\n }\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n _updatePaginator(filteredDataLength) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n if (!paginator) {\n return;\n }\n paginator.length = filteredDataLength;\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n this._internalPageChanges.next();\n }\n }\n });\n }\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription) {\n this._updateChangeSubscription();\n }\n return this._renderData;\n }\n /**\n * Used by the MatTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = null;\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatFooterRow, MatFooterRowDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRecycleRows, MatRow, MatRowDef, MatTable, MatTableDataSource, MatTableModule, MatTextColumn };\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\n\nimport { ContentImage, WindowEvent } from '@frontend/vanilla/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'vn-svg',\n templateUrl: './svg.component.html',\n})\nexport class SvgComponent implements OnInit {\n @ViewChild('svg') public svg: ElementRef<HTMLElement>;\n @Input() containerClass: string;\n @Input() displayMode = 'svg';\n @Input() image: ContentImage;\n @Input() viewBox: string;\n @Input() defaultAnimation: boolean;\n @Input() customAnimation: string;\n @Input() iconType: string;\n @Input() size: string;\n @Input() cssClass: string;\n @Input() animationClass: string;\n\n constructor(private httpClient: HttpClient) {}\n\n ngOnInit() {\n this.httpClient.get(this.image.src, { responseType: 'text' }).subscribe((value) => {\n const doc = new DOMParser().parseFromString(value, 'image/svg+xml');\n const svgImage = doc.getElementsByTagName('svg')[0]!;\n\n if (svgImage) {\n if (!svgImage.hasAttribute('viewBox') && this.viewBox) {\n svgImage.setAttribute('viewBox', this.viewBox);\n }\n\n if (this.displayMode === 'svg-icon') {\n this.setClass(svgImage);\n this.setStyle(svgImage);\n }\n }\n\n this.svg.nativeElement.appendChild(svgImage);\n });\n }\n\n setClass(svgImage: SVGElement) {\n svgImage.classList.add('th-icon');\n\n if (this.cssClass) {\n const classes = this.cssClass.split(',');\n classes.forEach((c) => svgImage.classList.add(c.trim()));\n }\n\n switch (this.iconType) {\n case 'stroke':\n svgImage.classList.add('th-icon--stk');\n if (this.defaultAnimation) {\n svgImage.classList.add('th-icon-animate-draw');\n }\n break;\n case 'stroke--bold':\n svgImage.classList.add('th-icon-stk', 'th-icon-stk--bold');\n break;\n case 'stroke--thin':\n svgImage.classList.add('th-icon-stk', 'th-icon-stk--thin');\n break;\n case 'filled':\n svgImage.classList.add('th-icon--fill');\n if (this.defaultAnimation) {\n svgImage.classList.add('th-icon-animate-fill');\n }\n break;\n }\n\n switch (this.size) {\n case 'big':\n svgImage.classList.add('th-icon--lg');\n break;\n case 'small':\n svgImage.classList.add('th-icon--sm');\n break;\n }\n }\n\n setStyle(svgImage: SVGElement) {\n if (this.image.height) {\n svgImage.style.setProperty('height', `${this.image.height}px`);\n }\n\n if (this.image.width) {\n svgImage.style.setProperty('width', `${this.image.width}px`);\n }\n\n if (this.customAnimation && !this.defaultAnimation) {\n const customStyle = this.customAnimation.split(';');\n\n customStyle.forEach((s) => {\n const style = s.split(':');\n\n if (style?.length > 0) {\n svgImage.style.setProperty(style[0]!.trim(), style[1]!);\n }\n });\n }\n }\n\n animate() {\n if (this.animationClass) {\n this.svg.nativeElement.classList.add(this.animationClass);\n this.svg.nativeElement.addEventListener(WindowEvent.AnimationEnd, () => this.svg.nativeElement.classList.remove(this.animationClass));\n }\n }\n}\n","<div [ngClass]=\"containerClass\" (click)=\"animate()\" #svg id=\"svg\"></div>\n","@if (src) {\n <div class=\"vn-img\">\n @if (width && height) {\n <img\n disableOptimizedSrcset\n [ngSrc]=\"src\"\n [attr.alt]=\"alt || title || null\"\n [priority]=\"priority\"\n [height]=\"height\"\n [width]=\"width\"\n [ngClass]=\"'vn-img__image-fluid' + (imageClass ? ' ' + imageClass : '')\" />\n }\n <!--Remove when width and height are always defined-->\n @if (!width || !height) {\n <img\n [src]=\"src\"\n [attr.alt]=\"alt || title || null\"\n [attr.height]=\"height || null\"\n [attr.width]=\"width || null\"\n [class]=\"'vn-img__image-fluid' + (imageClass ? ' ' + imageClass : '')\" />\n }\n <!--Image overlay text-->\n @if (intro || title || subtitle) {\n <div\n [class]=\"textClass + '__text-container'\"\n [ngClass]=\"{ 'text-center': textAlign?.toLowerCase() === 'center', 'text-right': textAlign?.toLowerCase() === 'right' }\">\n @if (intro) {\n <div\n [class]=\"textClass + '__intro'\"\n [innerHTML]=\"intro | trustAsHtml\"\n [ngClass]=\"{ 'text-sm': titleFontSize?.toLowerCase() === 'small' }\"></div>\n }\n @if (title) {\n <div\n [class]=\"textClass + '__title'\"\n [innerHTML]=\"title | trustAsHtml\"\n [ngClass]=\"{ 'text-sm': titleFontSize?.toLowerCase() === 'small' }\"></div>\n }\n @if (subtitle) {\n <div\n [class]=\"textClass + '__subtitle'\"\n [innerHTML]=\"subtitle | trustAsHtml\"\n [ngClass]=\"{ 'text-sm': titleFontSize?.toLowerCase() === 'small' }\"></div>\n }\n </div>\n }\n </div>\n}\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TrustAsHtmlPipe, NgOptimizedImage],\n selector: 'vn-image',\n templateUrl: 'image.html',\n styleUrls: ['../../../../themepark/themes/whitelabel/components/vn-img/styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ImageComponent {\n @Input() src: string;\n @Input() alt?: string;\n @Input() height?: number;\n @Input() width?: number;\n @Input() imageClass?: string;\n @Input() textClass?: string = 'generic';\n @Input() intro?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() titleFontSize?: string;\n @Input() textAlign?: string;\n @Input() priority: boolean | undefined;\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfig, ClientConfigProductName, ClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@ClientConfig({ key: 'vnBadge', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: badgeConfigFactory,\n deps: [ClientConfigService],\n})\nexport class BadgeConfig {\n cssClass: string;\n}\n\nexport function badgeConfigFactory(service: ClientConfigService) {\n return service.get(BadgeConfig);\n}\n","import { Directive, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { MenuItemCounter, MenuItemsService } from '@frontend/vanilla/core';\nimport { BadgeConfig } from '@frontend/vanilla/shared/badge';\n\n/**\n * @stable\n */\nexport enum BadgeType {\n Counter = 'counter',\n Icon = 'icon',\n}\n\n/**\n * @whatItDoes Displays a counter or icon for specified item.\n *\n * @howToUse\n *\n * ```\n * <span vnMenuItemBadge section=\"Header\" item=\"inbox\" badgeClass=\"badge-danger\" badgeType=\"counter\"></span>\n * ```\n *\n * @description\n *\n * {@link BadgeType.Counter} is displayed based on the value set by {@link MenuItemsService}.\n * {@link BadgeType.Icon} is displayed based on a class configured in {@link https://admin.dynacon.prod.env.works/services/198137/features/159289/keys/159291/valuematrix?_matchAncestors=true|DynaCon}.\n *\n * `badgeType` and `badgeClass` can also be set dynamically from {@link MenuItemsService.setCounter()}.\n *\n * @param section string to indicate in which feature the badge is part of: e.g. {@link MenuSection.Header}.\n * @param item string to indicate the badge name.\n * @param badgeClass string | array to indicate classes applied to the badge element. Default classes for {@link BadgeType.Counter}: `['badge', 'badge-circle', 'badge-t-r']`.\n * @param badgeType string | undefined to indicate the badge type: e.g. {@link BadgeType.Icon}; {@link BadgeType.Counter} by default. If `badgeType` is provided, badge will be always visible.\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: 'span[vnMenuItemBadge]',\n})\nexport class MenuItemBadgeDirective implements OnInit {\n @Input() section: string;\n @Input() item: string;\n @Input() badgeClass?: string | string[];\n @Input() badgeType?: string;\n\n private counter: MenuItemCounter | null;\n\n @HostBinding() get class(): string {\n // Default classes\n const classList = ['badge', 'badge-circle', 'badge-t-r'];\n\n // Classes set in the element input\n if (Array.isArray(this.badgeClass)) {\n classList.push(...this.badgeClass);\n } else if (this.badgeClass) {\n if (this.badgeClass.indexOf(' ') > 0) {\n classList.push(...this.badgeClass.split(' '));\n } else {\n classList.push(this.badgeClass);\n }\n }\n\n /** Classes set by {@link MenuItemsService.setCounter} */\n if (this.counter?.cssClass) {\n if (this.counter.cssClass.indexOf(' ') > 0) {\n classList.push(...this.counter.cssClass.split(' '));\n } else {\n classList.push(this.counter.cssClass);\n }\n }\n\n /** Classes configured in {@link https://admin.dynacon.prod.env.works/services/198137/features/159289/keys/159291/valuematrix?_matchAncestors=true} */\n if (this.badgeConfig.cssClass) {\n if (this.badgeConfig.cssClass.indexOf(' ') > 0) {\n classList.push(...this.badgeConfig.cssClass.split(' '));\n } else {\n classList.push(this.badgeConfig.cssClass);\n }\n }\n\n return classList.join(' ');\n }\n\n @HostBinding('textContent') get text() {\n const badgeType = this.counter?.type || this.badgeType || BadgeType.Counter;\n\n return badgeType === BadgeType.Counter ? this.counter?.count || '' : '';\n }\n\n @HostBinding() get hidden(): boolean {\n const badgeType = this.counter?.type || this.badgeType || BadgeType.Counter;\n\n switch (badgeType) {\n case BadgeType.Icon:\n return !this.counter?.cssClass;\n case BadgeType.Counter:\n return !this.counter?.count;\n default:\n return !this.counter?.count;\n }\n }\n\n constructor(\n private menuItemsService: MenuItemsService,\n private badgeConfig: BadgeConfig,\n ) {}\n\n ngOnInit() {\n this.counter = this.menuItemsService.getCounter(this.section, this.item);\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { UserService, UserUpdateEvent } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n/**\n * @stable\n */\nexport type AuthstateAction = 'hide' | 'show' | 'disabled';\n\n/**\n * Options for {@link AuthstateDirective}.\n *\n * @stable\n */\nexport interface AuthstateOptions {\n authenticated?: AuthstateAction;\n unauthenticated?: AuthstateAction;\n workflow?: AuthstateAction;\n}\n\n/**\n * @whatItDoes Shows, hides or disables an element based on user state.\n *\n * @howToUse\n *\n * ```\n * <a href=\"/page\" *vnAuthstate=\"{ authenticated: 'show', unauthenticated: 'hide', workflow: 'disable' }\">Link</a>\n * ```\n *\n * @description\n *\n * Same behavior as ngIf, but also with disabled option based on state of the user.\n *\n * Accepted user states:\n * - authenticated\n * - unauthenticated\n * - workflow\n *\n * Accepted actions:\n * - show\n * - hide\n * - disable\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnAuthstate]',\n})\nexport class AuthstateDirective implements OnInit, OnDestroy {\n @Input()\n set vnAuthstate(states: AuthstateOptions) {\n this.states = states;\n this.updateView();\n }\n\n private states: AuthstateOptions;\n private hasView: boolean = false;\n private element: HTMLElement;\n private disabled: boolean = false;\n private unsubscribe = new Subject<void>();\n\n constructor(\n private renderer: Renderer2,\n private template: TemplateRef<Object>,\n private user: UserService,\n private viewContainer: ViewContainerRef,\n ) {}\n\n ngOnInit() {\n this.user.events\n .pipe(\n filter((e) => e instanceof UserUpdateEvent),\n takeUntil(this.unsubscribe),\n )\n .subscribe(() => this.onUserstateChange());\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private toggle(show: boolean) {\n if (show && !this.hasView) {\n this.hasView = true;\n const viewRef = this.viewContainer.createEmbeddedView(this.template);\n this.element = viewRef.rootNodes[0];\n } else if (!show && this.hasView) {\n this.hasView = false;\n this.viewContainer.clear();\n }\n }\n\n private onUserstateChange() {\n this.updateView();\n }\n\n private updateView() {\n const state = this.user.workflowType > 0 ? 'workflow' : this.user.isAuthenticated ? 'authenticated' : 'unauthenticated';\n const mode: AuthstateAction = this.states ? (this.states[state] as AuthstateAction) : 'show';\n\n this.toggle(mode !== 'hide');\n\n if (mode === 'disabled') {\n this.disabled = true;\n this.renderer.addClass(this.element, 'disabled');\n } else if (this.disabled) {\n this.disabled = false;\n this.renderer.removeClass(this.element, 'disabled');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService, ViewTemplate } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnTooltips', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: tooltipsConfigFactory,\n})\nexport class TooltipsConfig extends LazyClientConfigBase {\n isOnboardingTooltipsEnabled: boolean;\n isTutorialTooltipsEnabled: boolean;\n tutorials: { [type: string]: ViewTemplate };\n onboardings: { [type: string]: ViewTemplate };\n}\n\nexport function tooltipsConfigFactory(service: LazyClientConfigService) {\n return service.get(TooltipsConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ViewTemplate } from '@frontend/vanilla/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Model for {@link TooltipsService}.\n *\n * @stable\n */\nexport interface Tooltips {\n [type: string]: Tooltip;\n}\n\n/**\n * Model for {@link Tooltip}.\n *\n * @stable\n */\nexport interface Tooltip {\n isActive: boolean;\n name: string;\n text: string | undefined;\n}\n\n/**\n * @whatItDoes Provides functionality for the {@link TooltipsComponent} for initializing; switching and closing the tooltips.\n *\n * @howToUse\n *\n * ```\n * tooltipsService.setTooltips(tooltipTemplates, elementTypes) // the tooltipTemplates is reference to a SiteCore item in 'App-v1.0/Tooltips/Onboarding' or 'App-v1.0/Tooltips/Tutorial'.\n * tooltipsService.getTooltip(currentItem)\n * tooltipsService.nextTooltip(currentItem)\n * tooltipsService.previousTooltip(currentItem)\n * tooltipsService.hasNext(currentItem)\n * tooltipsService.hasPrevious(currentItem)\n * tooltipsService.closeTooltip()\n * ```\n *\n * @description\n *\n *\n * @stable\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipsService {\n readonly activeTooltip = new BehaviorSubject<Tooltip | null>(null);\n\n private tooltips: Tooltips = {};\n private tooltipNames: string[] = [];\n\n addTooltip(item: string, tooltipTemplates: { [type: string]: ViewTemplate }) {\n if (item && !this.tooltips[item] && tooltipTemplates[item]) {\n this.tooltips[item] = {\n isActive: false,\n name: item,\n text: tooltipTemplates[item].text,\n };\n this.tooltipNames.push(item);\n }\n }\n\n getTooltip(currentItem: string): Tooltip | undefined {\n return this.tooltips[currentItem];\n }\n\n nextTooltip(currentItem: string) {\n const tooltip = this.tooltips[this.tooltipNames[this.tooltipNames.indexOf(currentItem) + 1]!];\n\n if (tooltip) {\n this.showTooltip(tooltip);\n }\n }\n\n previousTooltip(currentItem: string) {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) - 1];\n\n if (tooltipName) {\n this.showTooltip(this.tooltips[tooltipName]);\n }\n }\n\n hasNext(currentItem: string): boolean {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) + 1];\n\n return !!(tooltipName && this.tooltips[tooltipName]);\n }\n\n hasPrevious(currentItem: string): boolean {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) - 1];\n\n return !!(tooltipName && this.tooltips[tooltipName]);\n }\n\n removeTooltip(name?: string) {\n if (name && this.tooltips[name]) {\n delete this.tooltips[name];\n this.tooltipNames.splice(this.tooltipNames.indexOf(name), 1);\n }\n }\n\n closeTooltip() {\n this.clearTooltips();\n this.activeTooltip.next(null);\n }\n\n show() {\n const tooltipName = this.tooltipNames[0];\n\n if (tooltipName) {\n this.showTooltip(this.tooltips[tooltipName]);\n }\n }\n\n private showTooltip(tooltip?: Tooltip) {\n if (tooltip) {\n this.clearTooltips();\n tooltip.isActive = true;\n this.activeTooltip.next(tooltip);\n }\n }\n\n private clearTooltips = () => this.tooltipNames.forEach((name: string) => (this.tooltips[name]!.isActive = false));\n}\n","@if (tooltipsService.getTooltip(itemName)?.isActive) {\n <div class=\"ngxp__tooltip tooltip-info\" [attr.data-testid]=\"itemName\">\n <div class=\"float-ui-container ngxp__animation ngxp__inner\">\n <vn-icon (click)=\"tooltipsService.closeTooltip()\" name=\"theme-ex\" extraClass=\"ui-icon ui-close\" size=\"10\" />\n <div [vnDynamicHtml]=\"tooltipsService.getTooltip(itemName)?.text || ''\"></div>\n <div class=\"tooltips-nav\">\n @if (tooltipsService.hasPrevious(itemName)) {\n <span (click)=\"previous(itemName)\">{{ commonMessages.PopoverPreviousText }}</span>\n }\n @if (tooltipsService.hasNext(itemName)) {\n <span (click)=\"next(itemName)\">{{ commonMessages.PopoverNextText }}</span>\n } @else {\n <span (click)=\"tooltipsService.closeTooltip()\">{{ commonMessages.PopoverCloseText }}</span>\n }\n </div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { CommonMessages, DynamicHtmlDirective, ViewTemplate } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { delay } from 'rxjs/operators';\n\nimport { TooltipsService } from './tooltips.service';\n\n/**\n * @whatItDoes Shows a box with a text description similar to {@link PopperContentComponent}\n *\n * @howToUse\n *\n * ```\n * <vn-tooltips [tooltips]=\"tooltipsConfig.onboardings | tooltipsConfig.tutorials\" [types]=\"balanceTypes\" [index]=\"currentIndex\" />\n * ```\n *\n * @description\n *\n * Renders a single (onboarding) message or a collection of messages (tutorial with previous/next functionality)\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, IconCustomComponent],\n selector: 'vn-tooltips',\n templateUrl: 'tooltips.html',\n styles: [\n `\n .float-ui-container {\n display: block;\n opacity: 1;\n border: 0;\n }\n\n .tooltips-nav {\n float: right;\n font-weight: bold;\n }\n\n .ui-close {\n float: right;\n font-weight: bold;\n }\n\n .tooltips-nav > span {\n margin-left: 15px;\n cursor: pointer;\n }\n `,\n ],\n})\nexport class TooltipsComponent implements OnInit {\n @Input() itemName: string;\n @Input() tooltipItem: string;\n @Input() tooltips: { [type: string]: ViewTemplate };\n @Output() onNextClick = new EventEmitter<void>();\n @Output() onPreviousClick = new EventEmitter<void>();\n\n constructor(\n public tooltipsService: TooltipsService,\n public commonMessages: CommonMessages,\n private element: ElementRef,\n ) {}\n\n ngOnInit() {\n if (this.tooltips && this.tooltipItem) {\n this.tooltipsService.addTooltip(this.tooltipItem, this.tooltips);\n\n // Element have to be visible in order to scroll to\n this.tooltipsService.activeTooltip.pipe(delay(0)).subscribe(() => {\n const element = this.element?.nativeElement;\n\n if (!element) {\n return;\n }\n\n // Account for the highlighted element & tooltip height\n const top = element.offsetParent?.offsetTop + element.offsetHeight;\n\n if (!isNaN(top)) {\n window.scrollTo({ top, behavior: 'smooth' });\n }\n });\n }\n }\n\n next(itemName: string) {\n this.tooltipsService.nextTooltip(itemName);\n this.onNextClick.next();\n }\n\n previous(itemName: string) {\n this.tooltipsService.previousTooltip(itemName);\n this.onPreviousClick.next();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Logger, MenuActionsService, MenuContentItem } from '@frontend/vanilla/core';\n\n@Injectable({ providedIn: 'root' })\nexport class MenuItemClickHandlerService {\n private menuActionsService = inject(MenuActionsService);\n private log = inject(Logger);\n\n async handleMenuTrack(item: MenuContentItem) {\n await this.menuActionsService.trackClick(item, true).catch((error) => {\n this.log.error(`Error while tracking menu item click.`, error);\n });\n }\n\n async handleMenuAction(event: Event, item: MenuContentItem, origin: string, processClick: boolean | undefined) {\n if (processClick !== false) {\n await this.menuActionsService.processClick(event, item, origin, false).catch((error) => {\n this.log.error(`Error while tracking menu item click.`, error);\n });\n }\n }\n}\n","@if (renderHtmlText) {\n <span [class]=\"cssClass\" [ngClass]=\"additionalClass || undefined\" [innerHtml]=\"text | trustAsHtml\"> </span>\n}\n@if (!renderHtmlText) {\n <span [class]=\"cssClass\" [ngClass]=\"additionalClass || undefined\" [innerText]=\"text\"> </span>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n standalone: true,\n imports: [TrustAsHtmlPipe, CommonModule],\n selector: 'vn-menu-item-text-content',\n templateUrl: 'menu-item-text-content.html',\n})\nexport class MenuItemTextContentComponent {\n @Input() text: string;\n @Input() cssClass: string;\n @Input() additionalClass?: string | string[];\n @Input() renderHtmlText?: boolean;\n}\n","@if (item.type === 'text') {\n <ng-container *ngTemplateOutlet=\"plainText\" />\n} @else {\n <a\n class=\"menu-item-link\"\n [vnHtmlAttrs]=\"htmlAttributes\"\n [class.active]=\"isActive$ | async\"\n [ngClass]=\"linkClasses\"\n [attr.href]=\"item.url\"\n (click)=\"click($event)\"\n [attr.target]=\"item.target\"\n [attr.rel]=\"item.rel\"\n [attr.title]=\"item.toolTip\"\n *vnAuthstate=\"item.authstate\">\n @if (displayMode === DisplayMode.Icon) {\n @if (item.image) {\n <div class=\"image-icon\">\n <ng-container *ngTemplateOutlet=\"image\" />\n @if (badgePosition === 'icon') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n </div>\n } @else {\n @if (item.class) {\n <i [class]=\"item.class\" [ngClass]=\"iconClass\">\n @if (badgePosition === 'icon') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n </i>\n }\n }\n }\n @if (displayMode === DisplayMode.FastIcon) {\n <ng-container *ngTemplateOutlet=\"vnicon\" />\n }\n\n @if (displayMode === DisplayMode.SvgIcon && item.svgImage) {\n <ng-container *ngTemplateOutlet=\"svg\" />\n }\n @if (badgePosition === 'beforeText') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n\n <ng-container *ngTemplateOutlet=\"plainText\" />\n @if (itemDescription) {\n <vn-menu-item-text-content\n [text]=\"itemDescription\"\n [cssClass]=\"descriptionCssClass || 'menu-item-sub'\"\n [renderHtmlText]=\"renderHtmlText\"\n [attr.data-testid]=\"item.name\" />\n }\n @if (displayMode !== DisplayMode.Icon && item.image) {\n <ng-container *ngTemplateOutlet=\"image\" />\n }\n @if (badgePosition === 'afterText') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n @if (additionalIcon || item.parameters['additional-class']) {\n <span [ngClass]=\"additionalIcon || item.parameters['additional-class']\" class=\"ui-icon ui-icon-size-sm ml-auto additional-icon\"> </span>\n }\n @if (item.parameters['badge-text']) {\n <span\n [ngClass]=\"item.parameters.badgeTextClass || item.parameters['badge-text-class'] + ' ml-2 badge badge-pill'\"\n [innerHtml]=\"item.parameters['badge-text'] | trustAsHtml\">\n </span>\n }\n <!--popper-->\n @if (tooltipText) {\n <span [floatUi]=\"popper?.content || ''\" popperTrigger=\"none\"></span>\n <vn-popper-content showCloseLink=\"false\" [cssClass]=\"tooltipClass\" closeType=\"button\" #popper>\n <ng-container content>\n <div [vnDynamicHtml]=\"tooltipText || ''\"></div>\n </ng-container>\n </vn-popper-content>\n }\n </a>\n}\n\n<!--tooltip text-->\n@if (item.parameters.tooltip === 'true') {\n @if (item.toolTip) {\n <span [ngClass]=\"item.parameters.tooltipClass\" [innerHtml]=\"item.toolTip | trustAsHtml\"></span>\n }\n}\n\n<!--icon-->\n<ng-template #icon>\n @if (item.class) {\n <i [class]=\"item.class\" [ngClass]=\"iconClass\">\n @if (badgePosition === 'icon') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n </i>\n }\n</ng-template>\n\n<!--svg icon-->\n<ng-template #svg>\n <vn-svg\n [containerClass]=\"item.parameters.containerClass\"\n [cssClass]=\"item.cssClass\"\n [customAnimation]=\"item.customAnimation\"\n [defaultAnimation]=\"item.defaultAnimation\"\n [displayMode]=\"DisplayMode.SvgIcon\"\n [iconType]=\"item.iconType\"\n [image]=\"item.svgImage\"\n [size]=\"item.size\"\n [viewBox]=\"item.viewBox\" />\n</ng-template>\n\n<!--vn-icon-->\n<ng-template #vnicon>\n @if (iconName) {\n <vn-icon [name]=\"iconName\" />\n }\n @if (iconName2) {\n <vn-icon [name]=\"iconName2\" class=\"ui-icon ml-auto additional-icon\" />\n }\n @if (badgePosition === 'FastIcon') {\n <ng-container *ngTemplateOutlet=\"badge\" />\n }\n</ng-template>\n\n<!--image-->\n<ng-template #image>\n <vn-image\n [alt]=\"item.image.alt\"\n [height]=\"item.image.height\"\n [imageClass]=\"'menu-item-img' + (imageClass ? ' ' + imageClass : '')\"\n [priority]=\"!lazyLoad\"\n [src]=\"item.image.src\"\n [width]=\"item.image.width\">\n </vn-image>\n</ng-template>\n\n<!--badge-->\n<ng-template #badge>\n <span\n [badgeClass]=\"item.parameters?.badgeClass || badgeClass\"\n [badgeType]=\"item.parameters?.badgeType\"\n [item]=\"item.name\"\n [section]=\"section\"\n vnMenuItemBadge></span>\n @if (badgeText) {\n <span class=\"badge-text\">{{ badgeText }}</span>\n }\n</ng-template>\n\n<!--plain text-->\n<ng-template #plainText>\n @if (text || item.text) {\n <vn-menu-item-text-content\n cssClass=\"menu-item-txt\"\n [text]=\"text || item.text\"\n [additionalClass]=\"textClass\"\n [renderHtmlText]=\"renderHtmlText\"\n [attr.data-testid]=\"item.name\" />\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, inject } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n DeviceService,\n DslService,\n DynamicHtmlDirective,\n MenuContentItem,\n MenuDisplayMode,\n MenuItemsService,\n TimerService,\n TrackingService,\n WINDOW,\n WebAnalyticsEventType,\n toBoolean,\n} from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { PopperContentComponent } from '@frontend/vanilla/features/popper';\nimport { SvgComponent } from '@frontend/vanilla/features/svg';\nimport { AuthstateDirective } from '@frontend/vanilla/shared/auth';\nimport { HtmlAttrsDirective, TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { ImageComponent } from '@frontend/vanilla/shared/image';\nimport { TooltipsConfig } from '@frontend/vanilla/shared/tooltips';\nimport { NgxFloatUiModule } from 'ngx-float-ui';\nimport { Observable, firstValueFrom, of } from 'rxjs';\n\nimport { MenuItemBadgeDirective } from './menu-item-badge.directive';\nimport { MenuItemClickHandlerService } from './menu-item-click-handler.service';\nimport { MenuItemTextContentComponent } from './menu-item-text-content.component';\n\n/**\n * @whatItDoes Renders a configurable menu item.\n *\n * @description\n *\n * This is a generic component that renders menu items. The data is usually provided by `IMenuFactory` from the server.\n * There are inputs which allow you to set whether icon and/or arrow should be shown, various element classes and\n * how click should be handled (by default it invokes menu action based on the item). The badge counter and active state\n * is handled in {@link MenuItemsService} using a section name that groups several menu items and the item `name`.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [\n AuthstateDirective,\n CommonModule,\n DynamicHtmlDirective,\n HtmlAttrsDirective,\n ImageComponent,\n MenuItemBadgeDirective,\n MenuItemTextContentComponent,\n NgxFloatUiModule,\n PopperContentComponent,\n SvgComponent,\n TrustAsHtmlPipe,\n IconCustomComponent,\n ],\n selector: 'vn-menu-item',\n templateUrl: 'menu-item.html',\n\n host: {\n '[class.menu-item]': 'true',\n },\n})\nexport class MenuItemComponent implements OnInit, AfterViewInit {\n @ViewChild(PopperContentComponent) popperContent: PopperContentComponent;\n\n @Input() item: MenuContentItem;\n @Input() section: string;\n @Input({ transform: toMenuDisplayMode }) displayMode: MenuDisplayMode;\n @Input() badgePosition: 'icon' | 'beforeText' | 'afterText' | 'FastIcon' | undefined;\n @Input() badgeText: string | undefined;\n @Input() linkClass: string | string[];\n @Input() textClass: string | string[];\n @Input() iconClass: string | string[];\n @Input() badgeClass: string | string[];\n @Input() imageClass: string | string[];\n @Input() additionalIcon: string | string[];\n @Input() processClick: boolean | undefined;\n @Input() text: string | undefined;\n @Input() description: string | undefined;\n @Input() lazyLoadImage: boolean | undefined;\n @Input() addItemClassToLinkClasses: boolean = true;\n @Output() onClick = new EventEmitter<Event>();\n\n DisplayMode = MenuDisplayMode;\n linkClasses: { [key: string]: string };\n htmlAttributes: { [key: string]: string };\n lazyLoad: boolean;\n renderHtmlText: boolean | undefined;\n tooltipText: string | undefined;\n tooltipClass: string = 'tooltip-info';\n private tooltipType: string | undefined;\n iconName: string;\n iconName2: string | undefined;\n readonly #window = inject(WINDOW);\n\n constructor(\n private menuItemsService: MenuItemsService,\n private deviceService: DeviceService,\n private tooltipsConfig: TooltipsConfig,\n private cookieService: CookieService,\n private changeDetectorRef: ChangeDetectorRef,\n private dslService: DslService,\n private timerService: TimerService,\n private menuItemClickHandler: MenuItemClickHandlerService,\n private trackingService: TrackingService,\n ) {}\n\n @HostBinding('class') get class(): string {\n return this.item.parameters['menu-item-additional-class'] || '';\n }\n\n get isActive$(): Observable<boolean> {\n if (this.menuItemsService.isActive(this.section, this.item.name)) {\n return of(true);\n }\n\n if (this.item.parameters?.highlighted) {\n return this.dslService.evaluateExpression<boolean>(this.item.parameters.highlighted);\n }\n\n return of(false);\n }\n get isActive(): boolean {\n return this.menuItemsService.isActive(this.section, this.item.name);\n }\n\n get itemDescription(): string {\n return (\n this.menuItemsService.getDescription(this.section, this.item.name) ||\n this.description ||\n this.item.resources.description ||\n this.item.resources.subtitle ||\n ''\n );\n }\n\n get descriptionCssClass(): string | null {\n return this.menuItemsService.getDescriptionCssClass(this.section, this.item.name);\n }\n\n click(event: Event) {\n this.menuItemClickHandler.handleMenuTrack(this.item);\n this.menuItemClickHandler.handleMenuAction(event, this.item, this.section, this.processClick);\n\n if (toBoolean(this.item.parameters['save-url'])) {\n //TODO: Seems this is not used anywhere, remove it?\n this.cookieService.put(CookieName.PreviousPageUrl, this.#window.location.href);\n }\n\n if (toBoolean(this.item.parameters['disable-on-click'])) {\n this.linkClasses.disabled = 'true';\n }\n const textOnClick = this.item.parameters['text-on-click'];\n\n if (textOnClick) {\n this.text = textOnClick;\n }\n\n this.onClick.emit(event);\n }\n\n ngOnInit() {\n this.lazyLoad = !this.deviceService.isRobot && !!this.lazyLoadImage;\n this.renderHtmlText = toBoolean(this.item.parameters['render-html']);\n this.linkClasses = {};\n if (this.badgePosition !== 'FastIcon') {\n if (this.displayMode !== MenuDisplayMode.Icon && this.addItemClassToLinkClasses && this.item.class) {\n this.linkClasses[this.item.class] = 'true';\n }\n }\n if (this.linkClass) {\n (Array.isArray(this.linkClass) ? this.linkClass.slice(0) : [this.linkClass]).reduce((a, c) => {\n a[c] = 'true';\n\n return a;\n }, this.linkClasses);\n }\n\n const linkClass = this.item.parameters['link-class'];\n\n if (linkClass) {\n this.linkClasses[linkClass] = 'true';\n }\n\n this.imageClass = this.imageClass ?? this.item.parameters['image-class'];\n this.iconName = this.item.parameters.iconName ?? this.item.class;\n this.trackingService.trackEvents(this.item, WebAnalyticsEventType.load);\n this.iconName2 = this.item.parameters.iconName2;\n }\n\n async ngAfterViewInit() {\n await firstValueFrom(this.tooltipsConfig.whenReady);\n\n this.htmlAttributes = Object.fromEntries(\n Object.entries(this.item.parameters)\n .filter(([key]) => key.startsWith('attr.'))\n .map(([key, value]) => [key.replace('attr.', ''), value]),\n );\n\n if (this.tooltipsConfig.isOnboardingTooltipsEnabled) {\n this.timerService.setTimeout(() => {\n this.showOnboardingTooltips();\n }, 500);\n }\n }\n\n private showOnboardingTooltips() {\n this.tooltipClass = this.item.parameters['tooltip-class'] || this.tooltipClass;\n this.tooltipType = this.item.parameters.tooltip;\n\n if (this.tooltipType) {\n const tooltipsShown = this.cookieService.get(CookieName.OnBtt) || '';\n\n if (tooltipsShown.indexOf(this.tooltipType) > -1 || !this.tooltipsConfig.onboardings[this.tooltipType]) {\n return;\n }\n\n this.tooltipText = this.tooltipsConfig.onboardings[this.tooltipType]?.text;\n this.changeDetectorRef.detectChanges();\n this.popperContent?.content.show();\n\n const tooltipsArray = tooltipsShown.split(',');\n tooltipsArray.push(this.tooltipType);\n\n const expireDate = new Date();\n expireDate.setFullYear(expireDate.getFullYear() + 1);\n\n this.cookieService.put(CookieName.OnBtt, tooltipsArray.join(), { expires: expireDate });\n }\n }\n}\n\nfunction toMenuDisplayMode(value?: MenuDisplayMode): MenuDisplayMode {\n return value || MenuDisplayMode.Icon;\n}\n","import { Injectable } from '@angular/core';\n\nimport { CookieName, CookieService, DateTimeService, UserLoginEvent, UserLogoutEvent, UserService } from '@frontend/vanilla/core';\nimport { toNumber } from 'lodash-es';\nimport { first } from 'rxjs';\n\n/** @stable */\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountMenuOnboardingService {\n private get oneYearFromNow(): Date {\n const oneYearFromNow = this.dateTimeService.now();\n oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n return oneYearFromNow;\n }\n\n private _enabled: boolean;\n\n get enabled(): boolean {\n return this._enabled;\n }\n\n get isFirstLogin(): boolean {\n return this.enabled && this.loginCount === 1;\n }\n\n loginCount: number;\n tourStartedLoginCount: number | undefined;\n tourDismissed: boolean;\n\n constructor(\n private cookieService: CookieService,\n private dateTimeService: DateTimeService,\n private user: UserService,\n ) {}\n\n init(enabled: boolean) {\n if (!this._enabled) {\n this._enabled = enabled;\n this.loginCount = this.getLoginCount();\n this.tourStartedLoginCount = this.getTourStartedLoginCount();\n this.tourDismissed = this.getTourDismissed();\n\n if (this.user.isAuthenticated && !this.cookieService.get(CookieName.VnLogin)) {\n if (!this._enabled) return;\n this.incrementLoginCount();\n this.incrementTourStartedLoginCount();\n this.cookieService.put(CookieName.VnLogin, '1');\n }\n\n this.user.events.pipe(first((e) => e instanceof UserLoginEvent)).subscribe(() => {\n if (!this._enabled) return;\n this.incrementLoginCount();\n this.incrementTourStartedLoginCount();\n this.cookieService.put(CookieName.VnLogin, '1');\n });\n\n this.user.events.pipe(first((e) => e instanceof UserLogoutEvent)).subscribe(() => {\n this.cookieService.remove(CookieName.VnLogin);\n });\n }\n }\n\n private getLoginCount() {\n const loginCount = this.cookieService.get(CookieName.VnOlc) ?? '0';\n return toNumber(loginCount);\n }\n\n private getTourStartedLoginCount(): number | undefined {\n const count = this.cookieService.get(CookieName.VnOtslc);\n return count === undefined ? undefined : toNumber(count);\n }\n\n private getTourDismissed(): boolean {\n const tourDismissed = this.cookieService.get(CookieName.VnOtd);\n return tourDismissed === '1';\n }\n\n private incrementLoginCount() {\n const oneYearFromNow = this.oneYearFromNow;\n this.loginCount = this.getLoginCount();\n this.loginCount++;\n this.cookieService.put(CookieName.VnOlc, this.loginCount.toString(), { expires: oneYearFromNow });\n }\n\n private incrementTourStartedLoginCount() {\n this.tourStartedLoginCount = this.getTourStartedLoginCount();\n if (this.tourStartedLoginCount != undefined) {\n this.saveTourStartedLoginCount(this.tourStartedLoginCount + 1);\n this.tourStartedLoginCount++;\n }\n }\n\n saveTourStartedLoginCount(count: number) {\n this.cookieService.put(CookieName.VnOtslc, count.toString(), { expires: this.oneYearFromNow });\n this.tourStartedLoginCount = count;\n }\n\n saveTourCompleted() {\n this.cookieService.put(CookieName.VnOtc, '1', { expires: this.oneYearFromNow });\n }\n\n saveTourDismissed() {\n this.cookieService.put(CookieName.VnOtd, '1', { expires: this.oneYearFromNow });\n this.tourDismissed = true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigProductName,\n GenericListItem,\n LazyClientConfig,\n LazyClientConfigBase,\n LazyClientConfigService,\n MenuContentItem,\n} from '@frontend/vanilla/core';\n\nimport { AccountMenuContentMain, OnBoardingContent } from './account-menu.models';\n\n/** @stable */\n@LazyClientConfig({ key: 'vnAccountMenu', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: accountMenuConfigFactory,\n})\nexport class AccountMenuConfig extends LazyClientConfigBase {\n account: AccountMenuContentMain;\n resources: GenericListItem;\n vipLevels: MenuContentItem[];\n onBoarding: OnBoardingContent;\n}\n\nexport function accountMenuConfigFactory(service: LazyClientConfigService) {\n return service.get(AccountMenuConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigService,\n CookieName,\n CookieService,\n DeviceService,\n DslService,\n GenericListItem,\n Logger,\n MediaQueryService,\n MenuContentItem,\n UserLoginEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, first, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { AccountMenuConfig } from './account-menu.client-config';\n\n/** @stable */\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountMenuDataService {\n topItemsLoaded: BehaviorSubject<MenuContentItem[]> = new BehaviorSubject<MenuContentItem[]>([]);\n menuContentUpdated: Subject<void> = new Subject();\n private lookup = new Map<string, MenuContentItem>();\n private onWidgetUpdate: Subject<void> = new Subject();\n private itemHierarchy: any;\n private contentEvents = new BehaviorSubject<MenuContentItem | null>(null);\n private topItems: MenuContentItem[] = [];\n private unsubscribe = new Subject<void>();\n private singlePageModeEnabled: boolean = false;\n\n constructor(\n private menuContent: AccountMenuConfig,\n private dslService: DslService,\n private user: UserService,\n private clientConfigService: ClientConfigService,\n private log: Logger,\n private deviceService: DeviceService,\n private cookieService: CookieService,\n private media: MediaQueryService,\n ) {}\n\n /** Indicates widget item update */\n get widgetUpdate(): Observable<void> {\n return this.onWidgetUpdate;\n }\n\n get isDesktop() {\n return this.media.isActive('gt-sm');\n }\n\n /** Indicates that the menu will operate in router mode (e.g. it will open as a route rather than overlay) */\n get routerMode(): boolean {\n return this.deviceService.isMobilePhone;\n }\n\n get routerModeReturnUrl(): string {\n return this.cookieService.get(CookieName.VnMenuReturnUrl);\n }\n\n /** Translated strings from sitecore related to the account menu. */\n get resources(): GenericListItem {\n return this.version === 1 ? this.menuContent.resources : { messages: this.menuContent.account.root.resources };\n }\n\n get vipLevels(): MenuContentItem[] {\n return this.menuContent.vipLevels;\n }\n\n get hierarchy(): any {\n return this.itemHierarchy;\n }\n\n get version(): number {\n return this.menuContent.account.version;\n }\n\n get content(): Observable<MenuContentItem> {\n return this.contentEvents.pipe(\n filter(Boolean),\n distinctUntilChanged((previous, current) => JSON.stringify(previous) === JSON.stringify(current)),\n );\n }\n\n get topMenuItems(): MenuContentItem[] {\n return this.topItems;\n }\n\n get profilePageItemsPosition(): { [key: string]: number } {\n return this.menuContent.account.profilePageItemsPosition;\n }\n\n /** Indicates whether single page mode is enabled or not */\n get singlePageMode(): boolean {\n return this.singlePageModeEnabled;\n }\n\n set singlePageMode(singlePageMode: boolean) {\n this.singlePageModeEnabled = singlePageMode;\n }\n\n init() {\n this.dslService\n .evaluateContent(this.menuContent.account.root)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((c) => this.forceRefresh(c));\n\n this.user.events.pipe(first((e) => e instanceof UserLoginEvent)).subscribe(() =>\n this.clientConfigService.reload([AccountMenuConfig]).then(() => {\n this.menuContentUpdated.next();\n this.unsubscribe.next();\n this.unsubscribe.complete();\n this.forceRefresh(this.menuContent.account.root);\n this.dslService.evaluateContent(this.menuContent.account.root).subscribe((c) => this.forceRefresh(c));\n }),\n );\n\n this.topItemsLoaded\n .pipe(\n distinctUntilChanged((previous, current) => JSON.stringify(previous) === JSON.stringify(current)),\n switchMap((topItems) => {\n this.topItems = []; //Clear list before evaluating new content to avoid old items showing up till evaluation happens.\n return this.dslService.evaluateContent(topItems);\n }),\n )\n .subscribe((items) => {\n this.topItems = items;\n });\n }\n\n /** Refreshes account menu widgets section. */\n refreshWidgets() {\n this.onWidgetUpdate.next();\n }\n\n /** Sets the menu's return url cookie to the supplied url value. */\n setReturnUrlCookie(url: string) {\n this.cookieService.put(CookieName.VnMenuReturnUrl, url);\n }\n\n /** Remove the menu return url cookie. */\n removeReturnUrlCookie() {\n this.cookieService.remove(CookieName.VnMenuReturnUrl);\n }\n\n getItem(name: string): MenuContentItem | null {\n return this.lookup.get(name) || null;\n }\n\n private forceRefresh(c: MenuContentItem) {\n this.lookup.clear();\n this.itemHierarchy = {};\n\n this.initMenu(c, this.itemHierarchy);\n this.contentEvents.next(c);\n }\n\n private initMenu(item: MenuContentItem, hierarchy: any) {\n if (this.lookup.has(item.name)) {\n this.log.warn(`Menu contains multiple items with the same name: ${item.name}`);\n }\n\n this.lookup.set(item.name, item);\n\n if (item.children) {\n const childHierarchy = {};\n item.children.forEach((i) => this.initMenu(i, childHierarchy));\n hierarchy[item.name] = childHierarchy;\n } else {\n hierarchy[item.name] = null;\n }\n }\n}\n","import { MenuContentItem } from '@frontend/vanilla/core';\n\n/** @stable */\nexport const BOTTOM_DRAWER_HEIGHT = 50;\n\n/** @stable */\nexport enum AccountMenuTaskStatus {\n URGENT = 'URGENT',\n PENDING = 'PENDING',\n}\n\n/** @stable */\nexport enum DrawerPosition {\n Bottom = 0,\n Middle = 1,\n}\n\n/** @stable */\nexport interface DrawerPositionSettings {\n position: DrawerPosition;\n height: number;\n isAutomaticallyOpened?: boolean;\n}\n\n/** @stable */\nexport enum CashbackType {\n Poker = 'poker',\n Casino = 'casino',\n Coral = 'coral',\n}\n\n/** @stable */\nexport interface AccountMenuContentMain {\n cashbackType: string;\n ignoreVipLevel: boolean;\n isPaypalBalanceMessageEnabled: string;\n isPaypalReleaseFundsEnabled: string;\n onboarding: Onboarding;\n onboardingEnabled: boolean;\n pokerCashbackTournamentAwardTypes: string[];\n profilePageItemsPosition: { [key: string]: number };\n root: MenuContentItem;\n showHeaderBarClose: boolean;\n tournamentPokerCashbackSymbol: string;\n useLoyaltyBannerV2: boolean;\n version: number;\n vipLevels: string[];\n}\n\n/** @stable */\nexport interface OnBoardingContent {\n startTourScreen: MenuContentItem;\n tourItems: any;\n}\n\n/** @stable */\nexport interface Onboarding {\n showAccountMenuHotspotLoginCount: number;\n}\n","import { Injectable } from '@angular/core';\n\nimport { CookieDBService, CookieList, MenuContentItem } from '@frontend/vanilla/core';\nimport { toNumber } from 'lodash-es';\nimport { ReplaySubject } from 'rxjs';\n\nimport { AccountMenuDataService } from './account-menu-data.service';\nimport { AccountMenuTaskStatus } from './account-menu.models';\n\n/** @stable */\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountMenuTasksService {\n expanded: boolean;\n\n get totalCount(): number {\n return this.items.length;\n }\n\n get totalUrgentCount(): number {\n return this.items.filter((x) => x.parameters['status'] === AccountMenuTaskStatus.URGENT).length;\n }\n\n displayItems: ReplaySubject<MenuContentItem[]> = new ReplaySubject<MenuContentItem[]>();\n\n private items: MenuContentItem[] = [];\n private db: CookieList<string>;\n\n constructor(\n private accountMenuDataService: AccountMenuDataService,\n cookieDBService: CookieDBService,\n ) {\n this.db = cookieDBService.createList('am-hidden-tasks');\n this.accountMenuDataService.content.subscribe(() => {\n const item = this.accountMenuDataService.getItem('tasks');\n\n if (item && item.children) {\n this.items = this.items = this.items\n .filter((existingItem) => item.children.some((child) => child.name === existingItem.name))\n .concat(item.children.filter((child) => !this.items.some((existingItem) => existingItem.name === child.name)));\n this.refreshItems();\n }\n });\n }\n\n /** Hides task items. */\n hide(items: MenuContentItem[]) {\n items.forEach((item) => this.db.insert(item.name));\n this.refreshItems();\n }\n\n /** Shows all tasks. */\n showAllHidden() {\n this.db.deleteAll();\n this.refreshItems();\n }\n\n /** Indicates if there are hidden tasks. */\n hasHidden() {\n return this.db.getAll().length > 0;\n }\n\n /** Updates task item. */\n update(item: MenuContentItem) {\n this.items[this.items.indexOf(item)] = item;\n this.refreshItems();\n }\n\n /** Determines if item is urgent. */\n isUrgent(item: MenuContentItem): boolean {\n return item.parameters['status'] === AccountMenuTaskStatus.URGENT;\n }\n\n private refreshItems() {\n this.displayItems.next(\n this.items.filter((t) => !this.db.getAll().includes(t.name)).sort((a, b) => this.getItemOrder(a) - this.getItemOrder(b)),\n );\n }\n\n private getItemOrder(item: MenuContentItem): number {\n const order = toNumber(item.parameters['order'] ?? '10');\n const status = item.parameters['status'] ?? AccountMenuTaskStatus.PENDING;\n const statusMultiplier = status === AccountMenuTaskStatus.URGENT ? 1 : 100;\n\n return order * statusMultiplier;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Logger, MenuContentItem, NavigationService, Page, WINDOW } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { AccountMenuDataService } from './account-menu-data.service';\n\n/**\n * @whatItDoes Represents a virtual menu route.\n *\n * @stable\n */\nexport class MenuRoute {\n children: Map<string, MenuRoute> = new Map();\n parent: MenuRoute | null = null;\n\n constructor(public item: MenuContentItem) {}\n}\n\n/**\n * @whatItDoes Handles routing for account menu.\n *\n * @howToUse\n *\n * Inject to a child component of account menu.\n *\n * ```\n * accountMenuRouter.navigateToRoute('menu/whatever');\n * ```\n *\n * @stable\n */\n@Injectable()\nexport class AccountMenuRouter {\n get currentRoute(): Observable<MenuRoute | null> {\n return this.routeEvents;\n }\n\n get routerInitialized(): Observable<boolean> {\n return this.initRouterEvents;\n }\n\n private menuRouteTree: Map<string, MenuRoute> = new Map();\n private routeEvents: BehaviorSubject<MenuRoute | null> = new BehaviorSubject<MenuRoute | null>(null);\n private initRouterEvents: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n readonly #window = inject(WINDOW);\n\n constructor(\n private accountMenuDataService: AccountMenuDataService,\n private navigationService: NavigationService,\n private log: Logger,\n private page: Page,\n ) {\n this.accountMenuDataService.content.subscribe((c) => {\n this.menuRouteTree.clear();\n this.initRouter(c);\n this.initRouterEvents.next(true);\n\n const currentRoute = this.routeEvents.value;\n\n if (currentRoute) {\n const route = this.lookupRoute(currentRoute.item.menuRoute);\n\n if (route) {\n this.routeEvents.next(route);\n } else {\n this.routeEvents.next(this.menuRouteTree.get('menu') || null);\n }\n }\n });\n }\n\n /** Navigates to a virtual menu route. This is used to display sub levels of the menu tree. */\n navigateToRoute(menuRoute: string, navigateBack: boolean = false, parentMenuRoute: string | null = null) {\n if (this.accountMenuDataService.routerMode) {\n if (navigateBack && parentMenuRoute === null) {\n this.#window.history.back();\n } else {\n if (parentMenuRoute !== null) {\n this.navigationService.goTo(`/${this.page.lang}/${parentMenuRoute}`, { isBackNavigation: navigateBack });\n } else {\n this.navigationService.goTo(`/menu/${menuRoute}`, { isBackNavigation: navigateBack });\n }\n }\n } else {\n this.setRoute(menuRoute);\n }\n }\n\n /** @internal */\n setRoute(menuRoute: string) {\n const route = this.lookupRoute(menuRoute);\n if (route) {\n this.routeEvents.next(route);\n } else {\n this.log.warn(`Tried to navigate to non existent route ${menuRoute}`);\n }\n }\n\n private initRouter(item: MenuContentItem) {\n if (item.menuRoute) {\n const route = new MenuRoute(item);\n const fragments = item.menuRoute.toLowerCase().split('/');\n const parent = this.lookupRoute(fragments.slice(0, -1));\n\n if (parent) {\n route.parent = parent;\n const lastFragment = fragments[fragments.length - 1];\n\n if (lastFragment) {\n parent.children.set(lastFragment, route);\n }\n } else {\n if (fragments.length !== 1) {\n this.log.warn(`Detected menu root route ${item.menuRoute} with multiple fragments`);\n }\n\n if (fragments[0]) {\n this.menuRouteTree.set(fragments[0], route);\n }\n }\n }\n\n if (item.children) {\n item.children.forEach((i: MenuContentItem) => this.initRouter(i));\n }\n }\n\n private lookupRoute(fragments: string[] | string): MenuRoute | undefined {\n if (typeof fragments === 'string') {\n fragments = fragments.split('/');\n }\n\n let lookup = this.menuRouteTree;\n let route: MenuRoute | undefined;\n\n for (const fragment of fragments) {\n route = lookup.get(fragment);\n\n if (!route) {\n return;\n }\n\n lookup = route.children;\n }\n\n return route;\n }\n}\n","@if (isAvailable) {\n @if (content) {\n <div\n [ngClass]=\"{\n 'menu-wrapper': version === 1,\n 'am-wrapper': version > 1,\n 'am-v2': version === 2,\n 'am-v3': version === 3,\n 'am-v4': version === 4,\n 'am-v5': version === 5,\n 'ch': version === 3 || version === 5,\n }\">\n <ng-container *vnDynamicComponent=\"getItemComponent(content.layout); attr: { item: content, mode: mode }\" />\n </div>\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\n\nimport { AccountMenuService, DynamicComponentDirective, MenuContentItem } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, first, takeUntil } from 'rxjs/operators';\n\nimport { AccountMenuRouter, MenuRoute } from './account-menu-router';\n\n/**\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicComponentDirective],\n selector: 'vn-account-menu',\n templateUrl: 'account-menu.html',\n providers: [AccountMenuRouter],\n})\nexport class AccountMenuComponent implements OnInit, OnChanges, OnDestroy {\n @Input() route: string;\n @Input() mode: string = 'menu';\n\n get content(): MenuContentItem | null {\n return this.currentRoute && this.currentRoute.item;\n }\n get version() {\n return this.accountMenuService.version;\n }\n isAvailable: boolean = false;\n\n private unsubscribe = new Subject<void>();\n private currentRoute: MenuRoute | null;\n\n constructor(\n public accountMenuService: AccountMenuService,\n private accountMenuRouter: AccountMenuRouter,\n ) {}\n\n ngOnInit() {\n this.accountMenuRouter.currentRoute\n .pipe(\n takeUntil(this.unsubscribe),\n distinctUntilChanged((previous, current) => JSON.stringify(previous?.item) === JSON.stringify(current?.item)),\n )\n .subscribe((r) => (this.currentRoute = r));\n this.accountMenuService.whenReady.subscribe(() => (this.isAvailable = true));\n }\n\n ngOnChanges() {\n this.accountMenuRouter.routerInitialized.pipe(first((c) => c)).subscribe(() => this.accountMenuRouter.setRoute(this.route || 'menu'));\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n getItemComponent(type: string): Type<any> | null {\n return this.accountMenuService.getAccountMenuComponent(type);\n }\n}\n","/**\n * @stable\n */\nexport enum AnimateOverlayFrom {\n Left = 'left',\n Bottom = 'bottom',\n}\n\n/**\n * @stable\n */\nexport interface AnimatedOverlayStates {\n initial: string;\n off: string;\n on: string;\n}\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { AnimateOverlayFrom, AnimatedOverlayStates } from './overlay-factory.models';\n\n/**\n * @stable\n */\nexport type InjectorFactory = (ref: OverlayRef) => Injector;\n\n/**\n * @whatItDoes Provides a wrapper around Angular Overlay service.\n *\n * @howToUse\n *\n * ```\n * const overlay = this.overlayFactory.create(overlayConfig?);\n * ```\n *\n * If no config provided a default one will be used:\n * ```\n * {\n * hasBackdrop: true,\n * backdropClass: 'vn-backdrop',\n * panelClass: ['generic-modal-popup, popup-actions'],\n * scrollStrategy: this.overlay.scrollStrategies.block(),\n * positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n * type: 'generic-modal-overlay'\n * }\n * ```\n *\n * Available properties:\n * ```\n * overlayHandler.overlayRefs;\n * overlayHandler.overlayRefsSubject;\n * overlayHandler.scrollStrategies;\n * overlayHandler.position;\n * ```\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class OverlayFactory {\n get overlayRefs(): Map<string, OverlayRef> {\n return this.overlayReferences;\n }\n\n get overlayRefsSubject(): Observable<Map<string, OverlayRef> | null> {\n return this.overlayReferencesSubject;\n }\n\n get scrollStrategies(): ScrollStrategyOptions {\n return this.overlay.scrollStrategies;\n }\n\n get position(): OverlayPositionBuilder {\n return this.overlay.position();\n }\n\n private overlayReferences: Map<string, OverlayRef> = new Map();\n private overlayReferencesSubject = new BehaviorSubject<Map<string, OverlayRef> | null>(null);\n\n constructor(private overlay: Overlay) {}\n\n create(overlayConfig?: OverlayConfig): OverlayRef {\n const backdropClass = overlayConfig?.hasBackdrop === false ? undefined : 'vn-backdrop';\n const config: OverlayConfig = {\n hasBackdrop: true,\n ...(backdropClass ? { backdropClass } : {}),\n scrollStrategy: this.scrollStrategies.block(),\n positionStrategy: this.position.global().centerHorizontally().centerVertically(),\n panelClass: ['vn-overlay'],\n ...overlayConfig,\n };\n\n const overlayRef = this.overlay.create(config);\n const overlayClass = Array.isArray(overlayConfig?.panelClass) ? overlayConfig?.panelClass[0] : overlayConfig?.panelClass;\n\n this.overlayReferences.set(overlayClass || '', overlayRef);\n this.overlayReferencesSubject.next(this.overlayReferences);\n\n return overlayRef;\n }\n\n createAnimatedOverlayStates(animateFrom?: AnimateOverlayFrom): AnimatedOverlayStates | null {\n switch (animateFrom) {\n case AnimateOverlayFrom.Bottom:\n return { initial: 'bottom', on: 'top', off: 'bottom' };\n case AnimateOverlayFrom.Left:\n return { initial: 'left', on: 'right', off: 'left' };\n default:\n return null;\n }\n }\n\n dispose(overlay: OverlayRef | null) {\n overlay?.dispose();\n\n for (const [key, value] of this.overlayReferences.entries()) {\n if (value === overlay) {\n this.overlayReferences.delete(key);\n this.overlayReferencesSubject.next(this.overlayReferences);\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n LoginResponseHandlerService,\n LoginResponseOptions,\n LoginStoreService,\n ProductNavigationService,\n SharedFeaturesApiService,\n UserService,\n WorkflowHandleResponse,\n WorkflowResponse,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\n/**\n * @whatItDoes Provides options to get the user out of workflow mode.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkflowService {\n constructor(\n private api: SharedFeaturesApiService,\n private loginResponseHandler: LoginResponseHandlerService,\n private loginStore: LoginStoreService,\n private user: UserService,\n private productNavigationService: ProductNavigationService,\n ) {}\n\n /**\n * @whatItDoes Calls POS API `FinalizeWorkflow` method, executes login including redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalize(options?: LoginResponseOptions): Promise<WorkflowResponse> {\n return await this.execute(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'finalizeWorkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `SkipWorkflow` method, executes login including redirection.\n *\n * @description\n *\n * Skips the workflow.\n */\n async skip(options?: LoginResponseOptions): Promise<WorkflowResponse> {\n return await this.execute(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'skipworkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `workflowdata` and then finalize().\n *\n * @description\n *\n * Finalizes workflow with data.\n */\n async finalizeWithData(data: any, options?: LoginResponseOptions): Promise<WorkflowResponse> {\n await firstValueFrom(this.api.post('workflowdata', data));\n\n return await this.finalize(options);\n }\n\n /**\n * @whatItDoes Calls POS API `FinalizeWorkflow` method, executes login without redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalizeHandle(options?: LoginResponseOptions): Promise<WorkflowHandleResponse> {\n return await this.executeHandle(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'finalizeWorkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `workflowdata`, then `FinalizeWorkflow` method, executes login without redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalizeWithDataHandle(data: any, options?: LoginResponseOptions): Promise<WorkflowHandleResponse> {\n await firstValueFrom(this.api.post('workflowdata', data));\n\n return await this.finalizeHandle(options);\n }\n\n private async execute(action: string, options?: LoginResponseOptions): Promise<WorkflowResponse> {\n let response;\n\n try {\n response = await firstValueFrom(this.api.post(action, this.getParameters()));\n } catch (loginError: any) {\n this.productNavigationService.goTo(loginError?.redirectUrl);\n return { loginError: loginError };\n }\n\n await this.loginResponseHandler.handleResponse(response, options);\n\n return {}; // better not to return response here because handleResponse redirects. if they need it they need to use Handle method\n }\n\n private async executeHandle(action: string, options?: LoginResponseOptions): Promise<WorkflowHandleResponse> {\n let response;\n\n try {\n response = await firstValueFrom(this.api.post(action, this.getParameters()));\n } catch (error: any) {\n this.productNavigationService.goTo(error?.redirectUrl);\n\n return { loginError: error };\n }\n\n const loginRedirectInfo = await this.loginResponseHandler.handle(response, options);\n\n return { loginResponse: response, loginRedirectInfo: loginRedirectInfo };\n }\n\n private getParameters(): { loginType: string | null } {\n return {\n loginType: this.loginStore.LoginType,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService, MessageType } from '@frontend/vanilla/core';\n\nexport interface ProviderParameters {\n loginUrl: string;\n redirectUrl: string;\n clientId: string;\n appendNonce: boolean;\n welcomeDialog?: boolean;\n sdkUrl?: string;\n sdkVersion?: string;\n sdkCookie?: boolean;\n sdkLogin?: boolean;\n redirectQueryParams?: { [key: string]: string };\n}\n\n@LazyClientConfig({ key: 'vnLogin2', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: loginConfigFactory,\n})\nexport class LoginConfig extends LazyClientConfigBase {\n autoFocusUsername?: boolean;\n closeButtonTextCssClass: string;\n connectCardVersion: number;\n disableLoginOnFormInvalid: boolean;\n disableFeatureDataPrefetch: { [key: string]: string };\n enableLimitsToaster: boolean;\n fastLoginOptionsEnabled: boolean;\n fastLoginToggleEnabled: boolean;\n isDateOfBirthEnabled: boolean;\n isLoginWithMobileEnabled: boolean;\n loginMessages: { urlPattern: string; name: string; type: MessageType }[];\n loginOptions: string[];\n passwordHintsOnNthAttempt: number;\n prefillUsernameToggleEnabled: boolean;\n providers: { [key: string]: ProviderParameters };\n recaptchaEnterpriseEnabled: boolean;\n rememberMeEnabled: boolean;\n resetLoginFormErrorCodes: string[];\n selectedTabEnabled: boolean;\n showCloseButtonAsText: boolean;\n showRegisterButton: boolean;\n signInByEmail: boolean;\n titleCssClass: string;\n useOpenRegistrationEvent: boolean;\n useProviderProfile: boolean;\n v2: boolean;\n version: number;\n showLoginSpinner: boolean;\n}\n\nexport function loginConfigFactory(service: LazyClientConfigService) {\n return service.get(LoginConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { DslService, UserEvent, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { first } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { LoginConfig } from './login.client-config';\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginService {\n constructor(\n private userService: UserService,\n private loginConfig: LoginConfig,\n private dslService: DslService,\n ) {}\n\n runAfterLogin(source: string, callback: () => void) {\n this.loginConfig.whenReady.pipe(first()).subscribe(() => {\n if (this.userService.isAuthenticated) {\n this.runCallback(source, callback);\n }\n\n this.userService.events\n .pipe(filter((event: UserEvent) => event instanceof UserLoginEvent))\n .subscribe(() => this.runCallback(source, callback));\n });\n }\n\n private runCallback(source: string, callback: () => void) {\n const featureName =\n Object.keys(this.loginConfig.disableFeatureDataPrefetch).find((name: string) => source.toLowerCase().includes(name.toLowerCase())) || '';\n\n const dsl = this.loginConfig.disableFeatureDataPrefetch[featureName];\n\n if (dsl) {\n this.dslService.evaluateExpression<boolean>(dsl).subscribe((disabled: boolean) => {\n if (!disabled) {\n callback();\n }\n });\n } else {\n callback();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnHeaderBar', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: configFactory,\n})\nexport class HeaderBarConfig extends LazyClientConfigBase {\n workflowCloseAction: { [key: number]: WorkflowCloseAction };\n isEnabledCondition: string;\n disableCloseCondition: string;\n showBackButtonCondition: string;\n}\n\nexport function configFactory(service: LazyClientConfigService) {\n return service.get(HeaderBarConfig);\n}\n\nexport class WorkflowCloseAction {\n action: string;\n param?: any;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { AuthService, DslService, Logger, NavigationService, Page, UrlService, UserService, WINDOW } from '@frontend/vanilla/core';\nimport { AccountMenuDataService } from '@frontend/vanilla/shared/account-menu';\nimport { WorkflowService } from '@frontend/vanilla/shared/login';\nimport { ReplaySubject, first } from 'rxjs';\n\nimport { HeaderBarConfig } from './header-bar.client-config';\n\nexport interface HeaderBarCloseActionHandler {\n (origin: string, ...args: any[]): void | Promise<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HeaderBarService {\n private handlers = new Map<string, HeaderBarCloseActionHandler>();\n\n private readonly enabled$$ = new ReplaySubject<boolean>(1);\n private readonly disableClose$$ = new ReplaySubject<boolean>(1);\n private readonly showBackButton$$ = new ReplaySubject<boolean>(1);\n readonly enabled$ = this.enabled$$.asObservable();\n readonly disableClose$ = this.disableClose$$.asObservable();\n readonly showBackButton$ = this.showBackButton$$.asObservable();\n\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private workflow: WorkflowService,\n private navigation: NavigationService,\n private auth: AuthService,\n private logger: Logger,\n private accountMenuService: AccountMenuDataService,\n private urlService: UrlService,\n private user: UserService,\n private page: Page,\n private dslService: DslService,\n public config: HeaderBarConfig,\n ) {\n this.config.whenReady.pipe(first()).subscribe(() => {\n this.dslService.evaluateExpression<boolean>(this.config.isEnabledCondition).subscribe((enabled) => this.enabled$$.next(enabled));\n this.dslService\n .evaluateExpression<boolean>(this.config.disableCloseCondition)\n .subscribe((disableClose) => this.disableClose$$.next(disableClose));\n this.dslService\n .evaluateExpression<boolean>(this.config.showBackButtonCondition)\n .subscribe((showBackButton) => this.showBackButton$$.next(showBackButton));\n });\n }\n\n registerActions() {\n this.register('goToLastKnownProduct', () => this.navigation.goToLastKnownProduct());\n this.register('logout', () => this.logout());\n this.register('finalize', () => this.workflow.finalize());\n this.register('skip', () => this.workflow.skip());\n this.register('finalizeWorkflowWithData', (data: any) => this.workflow.finalizeWithData(data));\n }\n\n close() {\n if (this.accountMenuService.routerModeReturnUrl && this.user.workflowType === 0) {\n const parsedUrl = this.urlService.parse(this.accountMenuService.routerModeReturnUrl);\n if (parsedUrl.culture != this.page.lang) {\n parsedUrl.changeCulture(this.page.lang);\n }\n this.navigation.goTo(parsedUrl, { isBackNavigation: true });\n this.accountMenuService.removeReturnUrlCookie();\n return;\n }\n\n const workflowCloseAction = this.config.workflowCloseAction[this.user.workflowType];\n if (workflowCloseAction) {\n this.invoke(workflowCloseAction.action, workflowCloseAction.param ? [workflowCloseAction.param] : []);\n return;\n }\n\n if (this.user.workflowType > 0) {\n this.logger.error(`Workflow Id ${this.user.workflowType} is not mapped in header-bar configuration.`);\n this.logout();\n return;\n }\n\n this.navigation.goToLastKnownProduct();\n }\n\n back() {\n if (this.accountMenuService.routerModeReturnUrl || this._doc.referrer) {\n this.#window.history.back();\n return;\n }\n\n this.navigation.goToLastKnownProduct();\n }\n\n private invoke(fname: string | undefined, args?: any[]): Promise<void> {\n args = args || [];\n let fn: HeaderBarCloseActionHandler | undefined;\n if (fname) {\n fn = this.handlers.get(fname);\n }\n const [origin, ...restArgs] = args;\n if (fn instanceof Function) {\n const result = fn.apply(null, [origin, restArgs]);\n if (result?.then) {\n return result;\n } else {\n return Promise.resolve();\n }\n }\n\n return Promise.reject(`Handler for header bar action ${fname} not found.`);\n }\n\n private logout() {\n return this.auth\n .logout({ redirectAfterLogout: false })\n .then(() => this.navigation.goToLastKnownProduct({ forceReload: true }))\n .catch(() => this.navigation.goToLastKnownProduct({ forceReload: true }));\n }\n\n private register(name: string, fn: HeaderBarCloseActionHandler) {\n this.handlers.set(name, fn);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OnFeatureInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { HeaderBarConfig } from './header-bar.client-config';\nimport { HeaderBarService } from './header-bar.service';\n\n@Injectable()\nexport class HeaderBarBootstrapService implements OnFeatureInit {\n constructor(\n private headerBarService: HeaderBarService,\n private config: HeaderBarConfig,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.config.whenReady);\n this.headerBarService.registerActions();\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { HeaderBarBootstrapService } from './header-bar-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(HeaderBarBootstrapService)];\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, GenericListItem, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnConfirmPopup', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: confirmPopupConfigFactory,\n})\nexport class ConfirmPopupConfig extends LazyClientConfigBase {\n resources: GenericListItem;\n}\n\nexport function confirmPopupConfigFactory(service: LazyClientConfigService) {\n return service.get(ConfirmPopupConfig);\n}\n","@if (content(); as content) {\n <div class=\"generic-modal-wrapper actions-in-row\">\n <div class=\"generic-modal-title\">\n <div class=\"header-ctrl-wrapper\">\n <div class=\"header-ctrl d-flex justify-content-between align-items-center\">\n <div class=\"header-ctrl-l\">\n <vn-icon name=\"theme-left\" extraClass=\"ui-icon ui-icon-size-lg ui-back d-flex align-items-center\" />\n </div>\n <div class=\"header-ctrl-txt text-truncate\">{{ content.title }}</div>\n <div (click)=\"stay()\" class=\"header-ctrl-r\">\n <vn-icon name=\"theme-ex\" extraClass=\"ui-icon ui-icon-size-lg ui-close\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"generic-modal-content-wrapper\">\n <div class=\"generic-modal-content\" [innerHTML]=\"content.text\"></div>\n </div>\n <div class=\"generic-modal-actions\">\n <button class=\"btn btn-light btn-md\" (click)=\"leave()\">{{ content.leaveButton }}</button>\n <button class=\"btn btn-primary btn-md\" (click)=\"stay()\">{{ content.stayButton }}</button>\n </div>\n </div>\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, OnInit, computed, inject, input, signal } from '@angular/core';\n\nimport { EventsService, TrackingEventData, TrackingService, VanillaEventNames } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { firstValueFrom } from 'rxjs';\n\nimport { ConfirmPopupConfig } from './confirm-popup.client-config';\nimport { ConfirmPopupOptions } from './confirm-popup.models';\n\n/**\n * @whatItDoes Display a confirmation popup.\n *\n * @howToUse\n *\n * ```\n * <vn-confirm-popup [options]=\"options\" />\n * ```\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [IconCustomComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'vn-confirm-popup',\n templateUrl: 'confirm-popup.html',\n})\nexport class ConfirmPopupComponent implements OnInit {\n private readonly confirmPopupConfig = inject(ConfirmPopupConfig);\n private readonly eventsService = inject(EventsService);\n private readonly overlayRef = inject(OverlayRef);\n private readonly trackingService = inject(TrackingService);\n\n options = input<ConfirmPopupOptions>();\n messages = signal<{ [key: string]: string } | null>(null);\n content = computed(() => this.options()?.content ?? this.messages());\n\n async ngOnInit() {\n this.triggerEvent(this.options()?.trackingDataLoad);\n\n // if content passed we don't need to download config\n if (this.content()) return;\n await firstValueFrom(this.confirmPopupConfig.whenReady);\n\n this.messages.set(this.confirmPopupConfig.resources.messages);\n }\n\n leave() {\n this.triggerEvent(this.options()?.trackingDataClick, this.content()?.leaveButton);\n this.eventsService.raise({ eventName: VanillaEventNames.ConfirmPopupLeaveButton, data: { action: this.options()?.action } });\n this.close();\n }\n\n stay() {\n this.triggerEvent(this.options()?.trackingDataClick, this.content()?.stayButton);\n this.close();\n }\n\n private triggerEvent(trackData?: TrackingEventData, eventDetails?: string) {\n if (trackData) {\n if (eventDetails) {\n // add or replace component.EventDetails with clicked button text\n trackData.data = { ...trackData.data, 'component.EventDetails': eventDetails };\n }\n this.trackingService.triggerEvent(trackData.eventName, trackData.data);\n }\n }\n\n private close() {\n this.overlayRef.detach();\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, inject } from '@angular/core';\n\nimport { OverlayFactory } from '@frontend/vanilla/shared/overlay-factory';\n\nimport { ConfirmPopupComponent } from './confirm-popup.component';\nimport { ConfirmPopupOptions } from './confirm-popup.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfirmPopupService {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(OverlayFactory);\n private currentRef: OverlayRef | null;\n\n show(options: ConfirmPopupOptions) {\n if (this.currentRef) {\n return;\n }\n\n const overlayRef = this.overlay.create({\n backdropClass: 'vn-backdrop',\n panelClass: ['vn-confirm-popup-container', 'generic-modal-popup'],\n });\n\n overlayRef.detachments().subscribe(() => {\n this.overlay.dispose(overlayRef);\n this.currentRef = null;\n });\n\n const portal = new ComponentPortal(\n ConfirmPopupComponent,\n null,\n Injector.create({\n providers: [{ provide: OverlayRef, useValue: overlayRef }],\n parent: this.injector,\n }),\n );\n\n const componentRef = overlayRef.attach(portal);\n componentRef.setInput('options', options);\n this.currentRef = overlayRef;\n }\n}\n","export enum ConfirmPopupAction {\n Close = 'close',\n Back = 'back',\n}\n","@if (enabled) {\n <div class=\"header-ctrl-wrapper\">\n <div class=\"header-ctrl d-flex justify-content-between align-items-center\">\n <div class=\"header-ctrl-l\" [ngClass]=\"leftContentClass\">\n @if (showBack !== false) {\n <span class=\"ui-icon ui-icon-size-lg ui-back theme-left d-flex align-items-center\" (click)=\"onBackClick()\">\n @if (backButtonText) {\n <span class=\"txt-xs text-nowrap ml-2 back-button-text m-0\">{{ backButtonText }}</span>\n }\n </span>\n }\n <ng-content select=\"[left]\" />\n </div>\n @if (useLogoHeader) {\n <ng-content select=\"[header-bar-logo-slot]\"></ng-content>\n } @else if (title) {\n <div [ngClass]=\"titleCssClass\" class=\"header-ctrl-txt\">{{ title }}</div>\n }\n\n <div class=\"header-ctrl-r\" [ngClass]=\"{ 'header-ctrl-r__btn': closeButtonText }\">\n @if (!closeButtonText) {\n @if (showClose !== false) {\n <vn-icon name=\"theme-ex\" extraClass=\"ui-icon ui-icon-size-lg ui-close\" (click)=\"onCloseClick()\" />\n }\n } @else {\n @if (showClose !== false) {\n <span class=\"close-text btn btn-md\" [ngClass]=\"closeButtonTextCssClass\" (click)=\"onCloseClick()\">{{ closeButtonText }}</span>\n }\n }\n </div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventsService, SimpleEvent, TrackingEventData, TrackingService, VanillaEventNames } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { ConfirmPopupService } from '@frontend/vanilla/shared/confirm-popup';\nimport { filter } from 'rxjs/operators';\n\nimport { ConfirmPopupAction } from './header-bar.models';\nimport { HeaderBarService } from './header-bar.service';\n\n/**\n * @whatItDoes Display a header bar with a title and close/back buttons.\n *\n * @howToUse\n *\n * ```\n * <vn-header-bar [title]=\"someTitle\" (onBack)=\"back()\" (onClose)=\"close()\" />\n * ```\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, IconCustomComponent],\n selector: 'vn-header-bar',\n templateUrl: 'header-bar.html',\n})\nexport class HeaderBarComponent implements OnInit {\n @Input() title: string;\n @Input() titleCssClass: string;\n @Input() showBack?: boolean;\n @Input() showClose?: boolean;\n @Input() enabled?: boolean;\n @Input() backButtonText: string;\n @Input() closeButtonText: string;\n @Input() leftContentClass: string;\n @Input() closeButtonTextCssClass: string;\n @Input() useLogoHeader: boolean;\n\n showConfirmPopup = input<boolean>(false);\n confirmPopupTrackLoad = input<TrackingEventData>();\n confirmPopupTrackClick = input<TrackingEventData>();\n trackBackClickEvent = input<TrackingEventData>();\n trackCloseClickEvent = input<TrackingEventData>();\n @Output() onBack: EventEmitter<void> = new EventEmitter<void>();\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly headerBarService = inject(HeaderBarService);\n private readonly confirmPopupService = inject(ConfirmPopupService);\n private readonly eventsService = inject(EventsService);\n private readonly trackingService = inject(TrackingService);\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit() {\n if (this.enabled === undefined) {\n this.headerBarService.enabled$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((enabled) => {\n // if this component is turned into an OnPush component, we probably need cdRef#markForCheck here\n this.enabled = enabled;\n });\n }\n this.eventsService.newEvents\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n filter((e: SimpleEvent) => e.eventName === VanillaEventNames.ConfirmPopupLeaveButton),\n )\n .subscribe((e: SimpleEvent) => {\n switch (e.data?.action) {\n case ConfirmPopupAction.Close:\n this.onClose.emit();\n break;\n case ConfirmPopupAction.Back:\n this.onBack.emit();\n break;\n }\n });\n }\n\n onBackClick() {\n this.triggerEvent(this.trackBackClickEvent());\n this.showPopupOrEmit(this.onBack, ConfirmPopupAction.Back);\n }\n\n onCloseClick() {\n this.triggerEvent(this.trackCloseClickEvent());\n this.showPopupOrEmit(this.onClose, ConfirmPopupAction.Close);\n }\n\n private showPopupOrEmit(emitter: EventEmitter<void>, action: ConfirmPopupAction) {\n if (this.showConfirmPopup()) {\n const options = { action, trackingDataLoad: this.confirmPopupTrackLoad(), trackingDataClick: this.confirmPopupTrackClick() };\n this.confirmPopupService.show(options);\n } else {\n emitter.emit();\n }\n }\n\n private triggerEvent(trackData?: TrackingEventData) {\n if (trackData) {\n this.trackingService.triggerEvent(trackData.eventName, trackData.data);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, input } from '@angular/core';\n\nimport { TrackingEventData } from '@frontend/vanilla/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { HeaderBarConfig } from './header-bar.client-config';\nimport { HeaderBarComponent } from './header-bar.component';\nimport { HeaderBarService } from './header-bar.service';\n\n/**\n * @whatItDoes Shows header title bar, optionally with close and back button.\n * Close button is enabled by default.\n * If callback @onClose is specified calls it. If not, if user is in workflow, logs out the user and redirects to last known product. If user is not in workflow, redirects to last known product.\n * Back button is disabled by default. It can be enabled.\n * @stable\n */\n@Component({\n standalone: true,\n imports: [HeaderBarComponent, CommonModule],\n selector: 'lh-header-bar',\n templateUrl: 'header-bar.component.html',\n})\nexport class LhHeaderBarComponent implements OnInit, OnDestroy {\n /** Specifies if header bar is enabled */\n @Input() enabled?: boolean;\n /** Specifies if back button should be shown */\n @Input() showBackButton: boolean;\n /** Specifies if close button should be disabled */\n @Input() disableClose: boolean;\n /** Specifies title/content */\n @Input() content: string;\n /** CSS class passed to underlying vn-header-bar */\n @Input() titleCssClass: string;\n /** CSS class set on underlying vn-header-bar tag */\n @Input() headerCssClass: string;\n /** Specifies back button text passed to underlying vn-header-bar */\n @Input() backButtonText: string;\n /** Show close button as text */\n @Input() closeButtonText: string;\n /** CSS class set on underlying close text */\n @Input() closeButtonTextCssClass: string;\n /** CSS class set on underlying vn-header-bar left content section */\n @Input() leftContentClass: string;\n /** Indicates if confirmation popup should be shown when leaving the page */\n showConfirmPopup = input<boolean>(false);\n /** Data to be tracked when confirm popup is opened */\n confirmPopupTrackLoad = input<TrackingEventData>();\n /** Data to be tracked when button is clicked in confirm popup */\n confirmPopupTrackClick = input<TrackingEventData>();\n /** Data to be tracked when back is clicked */\n trackBackClickEvent = input<TrackingEventData>();\n /** Data to be tracked when close is clicked */\n trackCloseClickEvent = input<TrackingEventData>();\n /** Specifies callback when close button is clicked */\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n /** Specifies callback when back button is clicked */\n @Output() onBack: EventEmitter<any> = new EventEmitter();\n\n private unsubscribe = new Subject<void>();\n\n constructor(\n private headerBarService: HeaderBarService,\n public config: HeaderBarConfig,\n ) {}\n\n ngOnInit(): void {\n if (this.disableClose === undefined) {\n this.headerBarService.disableClose$.pipe(takeUntil(this.unsubscribe)).subscribe((disableClose) => {\n this.disableClose = disableClose;\n });\n }\n if (this.showBackButton === undefined) {\n this.headerBarService.showBackButton$.pipe(takeUntil(this.unsubscribe)).subscribe((showBackButton) => {\n this.showBackButton = showBackButton;\n });\n }\n }\n\n close() {\n if (this.onClose.observers.length > 0) {\n this.onClose.emit();\n return;\n }\n\n this.headerBarService.close();\n return;\n }\n\n back() {\n if (this.onBack.observers.length > 0) {\n this.onBack.emit();\n return;\n }\n\n this.headerBarService.back();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n}\n","<vn-header-bar\n [enabled]=\"enabled\"\n [title]=\"content\"\n [titleCssClass]=\"titleCssClass\"\n [showBack]=\"showBackButton\"\n (onBack)=\"back()\"\n [showClose]=\"!disableClose\"\n (onClose)=\"close()\"\n [backButtonText]=\"backButtonText\"\n [closeButtonText]=\"closeButtonText\"\n [class]=\"headerCssClass\"\n [closeButtonTextCssClass]=\"closeButtonTextCssClass\"\n [leftContentClass]=\"leftContentClass\"\n [showConfirmPopup]=\"showConfirmPopup()\"\n [confirmPopupTrackLoad]=\"confirmPopupTrackLoad()\"\n [confirmPopupTrackClick]=\"confirmPopupTrackClick()\"\n [trackBackClickEvent]=\"trackBackClickEvent()\"\n [trackCloseClickEvent]=\"trackCloseClickEvent()\">\n <ng-container left><ng-content select=\"[left]\" /></ng-container>\n</vn-header-bar>\n","import { Injectable, Type } from '@angular/core';\n\nimport { DynamicComponentsRegistry, VanillaDynamicComponentsCategory } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Specifies which component to use to render a page matrix template\n *\n * @howToUse\n *\n * ```\n * m2PageMatrix.registerComponent('pccustom', MyComponent);\n * ```\n *\n * Keep in mind that the template name can be overridden by `render` or `template` key in `parameters` collection.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PageMatrixService {\n constructor(private dynamicComponentsRegistry: DynamicComponentsRegistry) {}\n\n registerComponent(templateName: string, component: Type<any>) {\n this.dynamicComponentsRegistry.registerComponent(VanillaDynamicComponentsCategory.PageMatrix, templateName.toLowerCase(), component);\n }\n\n getComponent(templateName: string) {\n return this.dynamicComponentsRegistry.get(VanillaDynamicComponentsCategory.PageMatrix, templateName.toLowerCase());\n }\n}\n","import { ComponentRef, Directive, Input, OnChanges, OnDestroy, OnInit, Type, ViewContainerRef } from '@angular/core';\n\nimport { PageMatrixService as CorePageMatrixService, Logger } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PageMatrixService } from './page-matrix.service';\n\n/**\n * @whatItDoes\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnPageMatrix]',\n})\nexport class PageMatrixDirective<T = any> implements OnInit, OnChanges, OnDestroy {\n @Input() vnPageMatrix: T;\n\n templatesRegistered: boolean = false;\n\n private unsubscribe = new Subject<void>();\n private componentRef: ComponentRef<any>;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private pageMatrixService: PageMatrixService,\n private corePageMatrixService: CorePageMatrixService,\n private log: Logger,\n ) {}\n\n ngOnInit() {\n this.corePageMatrixService.whenReady.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.templatesRegistered = true;\n this.renderComponent();\n });\n }\n\n ngOnChanges() {\n this.renderComponent();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private renderComponent() {\n if (!this.templatesRegistered) {\n return;\n }\n\n this.viewContainerRef.clear();\n\n if (this.vnPageMatrix) {\n const type = this.resolveTemplate(this.vnPageMatrix);\n\n if (type) {\n this.componentRef = this.viewContainerRef.createComponent(type);\n this.componentRef.setInput('item', this.vnPageMatrix);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n }\n }\n\n private resolveTemplate(content: T | any): Type<any> | null {\n let templateName;\n\n if (content?.parameters) {\n templateName = content.parameters.render || content.parameters.template;\n }\n\n templateName = templateName || content.templateName;\n\n if (!templateName) {\n this.log.warn('templateName is not specified for content ', content);\n\n return null;\n }\n\n const component = this.pageMatrixService.getComponent(templateName);\n\n if (!component) {\n this.log.warn(`No component is registered to render template '${templateName}'`);\n\n return null;\n }\n\n return component;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { ContentItem, ExpandableMenuItem, trackByProp } from '@frontend/vanilla/core';\n\n/**\n * Base class for page matrix template components\n *\n * @stable\n */\n@Directive()\nexport abstract class PCComponent<T = any> {\n @Input() item: T;\n\n readonly trackByName = trackByProp<ContentItem>('name');\n readonly trackByText = trackByProp<ExpandableMenuItem>('text');\n\n protected createClass(componentClass: string): string {\n let itemClass = `pc-component ${componentClass}`;\n const additionalClass = (<any>this.item)?.class;\n\n if (additionalClass) {\n itemClass += ` ${additionalClass}`;\n }\n\n return itemClass;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\n\nimport { TimerService, WindowEvent } from '@frontend/vanilla/core';\n\n@Directive({\n standalone: true,\n selector: '[vnScrollMenu]',\n})\nexport class NavScrollDirective implements OnInit, OnDestroy {\n @Input() menuTimeOut: number = 0;\n @Input() navBarTopHeight: number;\n @Output() sectionChange = new EventEmitter<string>();\n @Output() scrollStop = new EventEmitter<void>();\n\n private currentSection: string;\n private timeoutId: NodeJS.Timeout;\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private elementRef: ElementRef,\n private timerService: TimerService,\n ) {}\n\n ngOnInit() {\n this._doc.addEventListener(WindowEvent.Scroll, this.scrollEventHandler, false);\n }\n\n ngOnDestroy() {\n this._doc.removeEventListener(WindowEvent.Scroll, this.scrollEventHandler, false);\n this.timerService.clearTimeout(this.timeoutId);\n }\n\n onScroll() {\n let currentSection: string = '';\n const children = this.elementRef.nativeElement.getElementsByClassName('menu-element');\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i] as HTMLElement;\n\n // Default as 114px as it's the value used in css for property --navbar-top-height. If configured on sitecore it must match the value of the css property.\n if (element.getBoundingClientRect().top <= (this.navBarTopHeight || 114)) {\n currentSection = element.id;\n }\n }\n if (currentSection !== this.currentSection) {\n this.currentSection = currentSection;\n this.sectionChange.next(this.currentSection);\n }\n }\n\n private scrollEventHandler = () => {\n this.onScroll();\n this.timerService.clearTimeout(this.timeoutId);\n\n this.timeoutId = this.timerService.setTimeout(() => {\n this.currentSection = '';\n this.scrollStop.next();\n }, this.menuTimeOut);\n };\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { HtmlNode, MetaTagsService } from '@frontend/vanilla/core';\n\nimport { PcContentItem } from './content.models';\nimport { PCComponent } from './pc-component';\n\n/**\n * Base class for page matrix page layout templates.\n *\n * @stable\n */\n@Directive()\nexport abstract class PMPage extends PCComponent<PcContentItem> implements OnInit, OnDestroy {\n private metaTagsService = inject(MetaTagsService);\n private htmlNode = inject(HtmlNode);\n\n protected constructor() {\n super();\n }\n\n ngOnInit() {\n this.setHtmlClass(true);\n this.writePageMetadata();\n }\n\n ngOnDestroy() {\n this.setHtmlClass(false);\n this.metaTagsService.whenReady.subscribe(() => this.metaTagsService.clearPageTags());\n }\n\n private writePageMetadata() {\n const tags: Record<string, string> = {};\n\n if (this.item.pageDescription) {\n tags.description = this.item.pageDescription;\n }\n\n if (this.item.pageMetaTags) {\n Object.assign(tags, this.item.pageMetaTags);\n }\n\n this.metaTagsService.whenReady.subscribe(() => this.metaTagsService.setPageTags(this.item.pageTitle, tags));\n }\n\n private setHtmlClass(set: boolean) {\n if (this.item.parameters?.htmlClass) {\n this.htmlNode.setCssClass(this.item.parameters.htmlClass, set);\n }\n }\n}\n","import { Directive, ElementRef, Input, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, inject } from '@angular/core';\n\nimport { Logger, Page, UrlService, WINDOW, WindowEvent } from '@frontend/vanilla/core';\n\nexport class ImageMqlHandler {\n private listener: (this: MediaQueryList, ev: MediaQueryListEvent) => any;\n\n constructor(\n public mql: MediaQueryList,\n public src: string,\n ) {}\n\n unsubscribe() {\n this.mql.removeEventListener(WindowEvent.Change, this.listener);\n }\n\n subscribe(fn: () => void) {\n this.listener = fn;\n this.mql.addEventListener(WindowEvent.Change, fn);\n }\n}\n\n/**\n * @whatItDoes Displays an image from sitecore in width profile based on screen size.\n *\n * @howToUse\n *\n * This component is used to render images (PCImage) from sitecore.\n *\n * You can also use it manually:\n *\n * ```\n * <img [vnProfilesSrc]=\"image\" [alt]=\"altText\" [vnProfilesWidth]=\"750\" />\n * ```\n *\n * @description\n *\n * A directive that changes src of images in profile widths based on screen size to save bandwidth.\n * In order to support resizing, images have to be saved in Sitecore database, not on filesystem.\n * To get a resized images from Sitecore, we are adding profile parameter to the URL:\n * http://faq.cms.bwin.prod/questions/381/how-can-i-use-the-image-resizer-feature-that-sitecore-cms-offers\n *\n * If you specify `vnProfilesWidth` (base width of the image), it will not load width profiles large than the base width.\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnProfilesSrc]',\n})\nexport class ProfilesDirective implements OnInit, OnChanges, OnDestroy {\n @Input() vnProfilesSrc: string;\n @Input() vnProfilesWidth?: number;\n @Input() vnProfilesSet?: string;\n readonly #window = inject(WINDOW);\n\n private handlers: ImageMqlHandler[];\n\n constructor(\n private zone: NgZone,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private page: Page,\n private log: Logger,\n private urlService: UrlService,\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n ngOnChanges() {\n if (this.handlers) {\n this.unsubscribe();\n this.init();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe();\n }\n\n private shouldIncludeWidth(width: number): boolean {\n if (!this.vnProfilesWidth) {\n return true; // Don't know original image width so can't tell if profile makes it smaller or larger\n }\n\n return this.vnProfilesWidth > width; // Don't include profiles that would upscale the image\n }\n\n private init() {\n const setName = this.vnProfilesSet || 'default';\n let set = this.page.imageProfiles[setName];\n\n if (!set) {\n this.log.warn(`Image profile set ${setName} is not defined, using default.`);\n set = this.page.imageProfiles.default;\n }\n\n const sources = set?.widthBreakpoints\n .filter((w: number) => this.shouldIncludeWidth(w))\n .map((w: number) => {\n const profileSrc = this.urlService.parse(this.vnProfilesSrc);\n profileSrc.search.set('p', `${set?.prefix}${w}`);\n\n return { media: `(max-width: ${w}px)`, src: `${profileSrc.absUrl()}` };\n });\n\n this.handlers = [];\n\n if (sources) {\n for (const source of sources) {\n const mql = this.#window.matchMedia(source.media);\n\n const handler = new ImageMqlHandler(mql, source.src);\n\n handler.subscribe(() => this.zone.run(() => this.setImage()));\n\n this.handlers.push(handler);\n }\n\n this.setImage();\n }\n }\n\n private setImage() {\n const source = this.handlers.find((s) => s.mql.matches);\n\n if (source) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'src', source.src);\n } else {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'src', this.vnProfilesSrc);\n }\n\n if (this.vnProfilesWidth) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'width', '' + this.vnProfilesWidth);\n }\n }\n\n private unsubscribe() {\n for (const handler of this.handlers) {\n handler.unsubscribe();\n }\n\n this.handlers = [];\n }\n}\n","<ng-template #content>\n @if (item.titleLink) {\n <a [href]=\"item.titleLink.url\" [vnHtmlAttrs]=\"item.titleLink.attributes\" class=\"pc-h-a\">{{ title }}</a>\n }\n @if (!item.titleLink) {\n {{ title }}\n }\n</ng-template>\n@switch (tag) {\n @case ('h1') {\n <h1 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h1>\n }\n @case ('h2') {\n <h2 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h2>\n }\n @case ('h3') {\n <h3 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h3>\n }\n @case ('h4') {\n <h4 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h4>\n }\n @case ('h5') {\n <h5 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h5>\n }\n @case ('h6') {\n <h6 [id]=\"item.name\" class=\"pc-h\" [ngClass]=\"titleClass\"><ng-container *ngTemplateOutlet=\"content\" /></h6>\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { ContentItem } from '@frontend/vanilla/core';\nimport { HtmlAttrsDirective } from '@frontend/vanilla/shared/browser';\n\n/**\n * @whatItDoes Renders generic header for a PC Component.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, HtmlAttrsDirective],\n selector: 'vn-pc-component-header-v2',\n templateUrl: 'pc-component-header.html',\n host: {\n '[class.pc-header]': 'true',\n },\n})\nexport class PCComponentHeaderV2Component implements OnInit {\n @Input() item: ContentItem;\n\n title: string | undefined;\n titleClass: string | undefined;\n tag: string;\n\n ngOnInit() {\n this.title = this.item.title;\n\n if (!this.title && this.item.titleLink) {\n this.title = this.item.titleLink.text;\n }\n\n this.tag = 'h3';\n\n if (this.item.parameters) {\n const tag = this.item.parameters['title-tag'];\n if (tag && /^h[1-6]$/.test(tag)) {\n this.tag = tag;\n }\n\n this.titleClass = this.item.parameters['title-class'];\n }\n }\n}\n","<div class=\"pc-menu-item-container\">\n <vn-menu-item class=\"pc-menu-item\" [item]=\"item\" [section]=\"section\" linkClass=\"pc-menu-link\" (onClick)=\"onClick($event)\" />\n @if (item.children && item.children.length) {\n <div class=\"pc-menu-item-indicator\">\n @if (!item.expanded) {\n <vn-icon name=\"theme-plus\" extraClass=\"ui-icon ui-icon-size-sm\" (click)=\"item.expanded = !item.expanded\" />\n } @else {\n <vn-icon name=\"theme-minus\" extraClass=\"ui-icon ui-icon-size-sm\" (click)=\"item.expanded = !item.expanded\" />\n }\n </div>\n }\n</div>\n@if (item.children) {\n <div class=\"pc-menu-submenu pc-menu-level-{{ level }}\" [class.collapsed]=\"!item.expanded\">\n @for (subItem of item.children; track trackByText($index, subItem)) {\n <ng-container *vnDynamicComponent=\"type; attr: { item: subItem, section: section, level: level + 1 }\" />\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Type } from '@angular/core';\n\nimport { DynamicComponentDirective, ExpandableMenuItem, MenuActionsService, MenuContentItem, trackByProp } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { MenuItemComponent } from '@frontend/vanilla/features/menus';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MenuItemComponent, DynamicComponentDirective, IconCustomComponent],\n selector: 'vn-pc-menu-item',\n templateUrl: 'pc-menu-item.html',\n})\nexport class PCMenuItemComponent {\n @Input() item: ExpandableMenuItem;\n @Input() section: string;\n @Input() level: number = 1;\n type: Type<PCMenuItemComponent> = PCMenuItemComponent;\n readonly trackByText = trackByProp<ExpandableMenuItem>('text');\n constructor(private menuActionService: MenuActionsService) {}\n\n onClick(event: Event) {\n const action = this.findFirstNonEmpty(this.item);\n if (action && action !== this.item) {\n this.menuActionService.processClick(event, action, this.section);\n }\n }\n\n private findFirstNonEmpty(item: MenuContentItem): MenuContentItem | undefined {\n if (item.url || item.clickAction) {\n return item;\n }\n\n if (item.children) {\n for (const child of item.children) {\n const nonEmpty = this.findFirstNonEmpty(child);\n if (nonEmpty) {\n return nonEmpty;\n }\n }\n }\n\n return;\n }\n}\n","@for (child of item.content; track trackByName($index, child)) {\n <ng-container *vnPageMatrix=\"child\" />\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n<div class=\"pc-txt\" [vnDynamicHtml]=\"item.text\"></div>\n","@if (!showCustomHeaderTemplate) {\n <lh-header-bar (onClose)=\"close()\" [content]=\"item.title\" />\n} @else {\n <div class=\"custom-header\" [ngClass]=\"customHeaderClass\">\n <div class=\"header-ctrl-l\">\n <vn-icon name=\"theme-arrow-left\" extraClass=\"ui-icon ui-icon-size-lg ui-back d-flex align-items-center\" (click)=\"onBackClick()\" />\n </div>\n @if (item.title) {\n <div class=\"header-ctrl-txt\">{{ item.title }}</div>\n }\n </div>\n}\n<div class=\"pc-text pc-component\" [ngClass]=\"item.class\">\n <div class=\"pc-txt\" [vnDynamicHtml]=\"item.text\"></div>\n</div>\n","@if (deviceService.isMobilePhone) {\n <lh-header-bar (onClose)=\"onHistoryBack()\" [content]=\"item.title\" />\n} @else {\n <div class=\"custom-header\" [ngClass]=\"customHeaderClass\">\n <div class=\"header-ctrl-l\">\n <vn-icon name=\"theme-arrow-left\" extraClass=\"ui-icon ui-icon-size-lg ui-back d-flex align-items-center\" (click)=\"onHistoryBack()\" />\n </div>\n @if (item.title) {\n <div class=\"header-ctrl-txt\">{{ item.title }}</div>\n }\n </div>\n}\n<div class=\"pc-text pc-component\" [ngClass]=\"item.class\">\n <div class=\"pc-txt\" [vnDynamicHtml]=\"item.text\"></div>\n</div>\n","@if (item.text) {\n <input class=\"pc-toggle-checker\" type=\"checkbox\" [attr.id]=\"id\" />\n <label class=\"pc-toggle-label\" [attr.for]=\"id\"\n >{{ item.title }} <vn-icon name=\"theme-up\" extraClass=\"pc-toggle__icon-up\"></vn-icon\n ><vn-icon name=\"theme-down\" extraClass=\"pc-toggle__icon-down\" />\n </label>\n <div class=\"pc-txt pc-toggle-txt\" [vnDynamicHtml]=\"item.text\"></div>\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n<ng-template #pic>\n @if (item.image) {\n <img [vnProfilesSrc]=\"item.image.src\" [vnProfilesWidth]=\"item.image.width\" [alt]=\"item.image.alt\" class=\"pc-img\" />\n }\n</ng-template>\n\n@if (item.iconName) {\n <vn-icon [name]=\"item.iconName\" />\n} @else {\n @if (item.imageLink) {\n <a [href]=\"item.imageLink.url\" [vnHtmlAttrs]=\"item.imageLink.attributes\" class=\"pc-img-a\">\n <ng-container *ngTemplateOutlet=\"pic\" />\n </a>\n } @else {\n @if (item.image) {\n <img [vnProfilesSrc]=\"item.image.src\" [vnProfilesWidth]=\"item.image.width\" [alt]=\"item.image.alt\" class=\"pc-img\" />\n }\n }\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n@if (item.image) {\n <ng-template #pic>\n @if (item.image) {\n <img [vnProfilesSrc]=\"item.image.src\" [vnProfilesWidth]=\"item.image.width\" [alt]=\"item.image.alt\" class=\"pc-img\" />\n }\n </ng-template>\n @if (item.imageLink) {\n <a [href]=\"item.imageLink.url\" [vnHtmlAttrs]=\"item.imageLink.attributes\" class=\"pc-img-a\">\n <ng-container *ngTemplateOutlet=\"pic\" />\n </a>\n } @else {\n @if (item.image) {\n <img [vnProfilesSrc]=\"item.image.src\" [vnProfilesWidth]=\"item.image.width\" [alt]=\"item.image.alt\" class=\"pc-img\" />\n }\n }\n}\n@if (item.text) {\n <div class=\"pc-txt\" [vnDynamicHtml]=\"item.text\"></div>\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n@if (item.video?.id; as src) {\n <div class=\"pc-video-wrapper\">\n <cloudflare-stream\n [controls]=\"!!item.controls\"\n [autoplay]=\"settings.autoplay\"\n [loop]=\"settings.loop\"\n [muted]=\"settings.muted\"\n [preload]=\"settings.preload\"\n [poster]=\"settings.poster\"\n [src]=\"src\"\n (play)=\"onPlay($event)\"\n (pause)=\"onPause()\">\n </cloudflare-stream>\n </div>\n}\n","<vn-pc-component-header-v2 [item]=\"item\" />\n@if (item.image) {\n <div class=\"pc-t-img-cont\">\n <ng-template #pic>\n @if (item.image) {\n <img\n [vnProfilesSrc]=\"item.image.src\"\n [vnProfilesWidth]=\"item.image.width\"\n [vnProfilesSet]=\"imageProfilesSet\"\n [alt]=\"item.image.alt\"\n class=\"pc-img\" />\n }\n </ng-template>\n @if (item.imageLink) {\n <a [href]=\"item.imageLink.url\" [vnHtmlAttrs]=\"item.imageLink.attributes\" class=\"pc-img-a\">\n <ng-container *ngTemplateOutlet=\"pic\" />\n </a>\n } @else {\n @if (item.image) {\n <img\n [vnProfilesSrc]=\"item.image.src\"\n [vnProfilesWidth]=\"item.image.width\"\n [vnProfilesSet]=\"imageProfilesSet\"\n [alt]=\"item.image.alt\"\n class=\"pc-img\" />\n }\n }\n </div>\n}\n@if (item.imageOverlay) {\n <div class=\"pc-t-img-opt\">\n <img\n [vnProfilesSrc]=\"item.imageOverlay.src\"\n [vnProfilesWidth]=\"item.imageOverlay.width\"\n [vnProfilesSet]=\"overlayImageProfilesSet\"\n [alt]=\"item.imageOverlay.alt\"\n [ngClass]=\"item.imageOverlayClass\" />\n </div>\n}\n<div class=\"pc-t-h-cont\">\n <ng-container *ngTemplateOutlet=\"title; context: { text: item.subtitle, tag: subtitleTag, class: subtitleClass }\" />\n <ng-container *ngTemplateOutlet=\"title; context: { text: item.summary, tag: summaryTag, class: summaryClass }\" />\n</div>\n@if (item.text) {\n <div class=\"pc-t-txt\" [vnDynamicHtml]=\"item.text\"></div>\n}\n@if (item.optionalText) {\n <div class=\"pc-t-txt-opt\" [vnDynamicHtml]=\"item.optionalText\"></div>\n}\n<ng-template #title let-text=\"text\" let-class=\"class\" let-tag=\"tag\">\n @if (text) {\n @switch (tag) {\n @case ('h1') {\n <h1 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h1>\n }\n @case ('h2') {\n <h2 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h2>\n }\n @case ('h3') {\n <h3 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h3>\n }\n @case ('h4') {\n <h4 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h4>\n }\n @case ('h5') {\n <h5 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h5>\n }\n @case ('h6') {\n <h6 class=\"pc-h\" [ngClass]=\"class\">{{ text }}</h6>\n }\n }\n }\n</ng-template>\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n@for (child of item.items; track trackByName($index, child)) {\n <ng-container *vnPageMatrix=\"child\" />\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n@for (child of item.items | slice: 0 : item.maxItems; track trackByName) {\n <ng-container *vnPageMatrix=\"child\" />\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n@if (item.menu) {\n <div class=\"pc-menu-items\">\n @for (menuItem of items; track trackByText($index, menuItem)) {\n <vn-pc-menu-item [item]=\"menuItem\" [section]=\"section\" [id]=\"menuItem.name\" />\n }\n </div>\n}\n","@if (item.title) {\n <vn-pc-component-header-v2 [item]=\"item\" />\n}\n<ng-container *vnPageMatrix=\"item.item\" />\n","@if (item.image) {\n <vn-image [src]=\"item.image.src\" [alt]=\"item.image.alt\" [width]=\"item.image.width\" [height]=\"item.image.height\" />\n}\n","<vn-swiper [swiperOptions]=\"swiperOptions\" [swiperClass]=\"swiperClass\">\n @for (child of item.items | slice: 0 : item.maxItems; track $index) {\n <div class=\"swiper-slide\">\n <ng-container *vnPageMatrix=\"child\" />\n </div>\n }\n</vn-swiper>\n","<div class=\"pc-navscroll-menu\" [style.visibility]=\"currentItem ? 'visible' : 'hidden'\">\n <div class=\"pc-navscroll-menu__inner\" id=\"pc-navscroll-menu-inner\">\n @for (child of item.menuItems; track trackByName($index, child)) {\n <div class=\"pc-navscroll-menu__item\" [ngClass]=\"{ 'pc-navscroll--active': currentItem === child.name }\" (click)=\"scrollTo(child.name)\">\n <span class=\"pc-navscroll-menu__item-text\">{{ child.title }}</span>\n <div class=\"pc-navscroll-menu__dot-wrapper\">\n <span class=\"pc-navscroll-menu__dot\"></span>\n </div>\n </div>\n }\n </div>\n</div>\n<div\n vnScrollMenu\n id=\"pc-scroll-menu-content\"\n [navBarTopHeight]=\"navBarTopHeight\"\n [menuTimeOut]=\"menuTimeOut\"\n (sectionChange)=\"sectionChanged($event)\"\n (scrollStop)=\"scrollStop()\"\n class=\"pc-scroll-menu__content\">\n @for (child of item.items; track trackByName($index, child)) {\n <ng-container *vnPageMatrix=\"child\" />\n }\n</div>\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, HostBinding, OnDestroy, OnInit, QueryList, ViewChildren, inject } from '@angular/core';\n\nimport { CloudflareStreamModule } from '@cloudflare/stream-angular';\nimport {\n DeviceService,\n DynamicHtmlDirective,\n ExpandableMenuItem,\n MediaQueryService,\n MenuItemsService,\n MenuSection,\n NavigationService,\n ProductHomepagesConfig,\n TrackingService,\n UrlService,\n WINDOW,\n toBoolean,\n} from '@frontend/vanilla/core';\nimport { HeaderBarService, LhHeaderBarComponent } from '@frontend/vanilla/features/header-bar';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { HtmlAttrsDirective } from '@frontend/vanilla/shared/browser';\nimport { ImageComponent } from '@frontend/vanilla/shared/image';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { cloneDeep, toNumber } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SwiperOptions } from 'swiper/types';\n\nimport { PcContentItem } from '../content.models';\nimport { PageMatrixDirective } from '../page-matrix.directive';\nimport { PCComponent } from '../pc-component';\nimport { NavScrollDirective } from '../pc-scrollmenu.directive';\nimport { PMPage } from '../pm-component';\nimport { ProfilesDirective } from '../profiles.directive';\nimport { PCComponentHeaderV2Component } from './pc-component-header.component';\nimport { PCMenuItemComponent } from './pc-menu-item.component';\n\n@Component({\n standalone: true,\n imports: [CommonModule, PageMatrixDirective],\n selector: 'vn-pm-1col-page',\n templateUrl: 'pm-1col-page.html',\n})\nexport class PM1ColPageComponent extends PMPage {\n constructor() {\n super();\n }\n\n @HostBinding() get class(): string {\n return ['pm-page', 'pm-1col', 'pm-simple-layout', this.item.pageClass].filter((c: string | undefined) => c).join(' ');\n }\n\n @HostBinding('attr.id') get id(): string | undefined {\n return this.item.pageId;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, PCComponentHeaderV2Component],\n selector: 'vn-pc-text',\n templateUrl: 'pc-text.html',\n})\nexport class PCTextComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-text');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, LhHeaderBarComponent, IconCustomComponent],\n selector: 'vn-pc-text-with-header-bar',\n templateUrl: 'pc-text-with-header-bar.html',\n})\nexport class PCTextWithHeaderBarComponent extends PCComponent<PcContentItem> implements OnInit {\n showCustomHeaderTemplate: boolean;\n customHeaderClass: string = '';\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private navigation: NavigationService,\n private media: MediaQueryService,\n private headerBarService: HeaderBarService,\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.item.parameters) {\n if (this.item.parameters['custom-header-media-query']) {\n this.showCustomHeaderTemplate = this.media.isActive(this.item.parameters['custom-header-media-query']);\n }\n if (this.item.parameters['custom-header-class']) {\n this.customHeaderClass = this.item.parameters['custom-header-class'];\n }\n }\n }\n\n onBackClick() {\n if (this._doc.referrer) {\n this.#window.history.back();\n } else {\n this.navigation.goToLastKnownProduct();\n }\n }\n\n close() {\n const welcomeOverlayUrl = this.item.parameters?.['welcome-overlay-url'];\n\n if (welcomeOverlayUrl && this.navigation?.previousUrl?.includes(welcomeOverlayUrl)) {\n this.#window.history.back();\n } else {\n this.headerBarService.close();\n }\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, LhHeaderBarComponent, IconCustomComponent],\n selector: 'vn-pc-header-for-mpp-page',\n templateUrl: 'pc-header-for-mpp-page.html',\n})\nexport class PCHeaderForMppPageComponent extends PCComponent<PcContentItem> implements OnInit {\n customHeaderClass: string = '';\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private navigation: NavigationService,\n private productHomepages: ProductHomepagesConfig,\n public deviceService: DeviceService,\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.item.parameters?.['custom-header-class']) {\n this.customHeaderClass = this.item.parameters['custom-header-class'];\n }\n }\n\n onHistoryBack() {\n if (this._doc.referrer) {\n this.#window.history.back();\n } else if (this.productHomepages.promo) {\n this.navigation.goTo(this.productHomepages.promo, { isBackNavigation: true });\n } else {\n this.navigation.goToLastKnownProduct();\n }\n }\n}\n\nlet pcToggleCount = 0;\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, IconCustomComponent],\n selector: 'vn-pc-toggle',\n templateUrl: 'pc-toggle.html',\n})\nexport class PCToggleComponent extends PCComponent<PcContentItem> implements OnInit {\n id: string;\n\n @HostBinding() get class(): string {\n return this.createClass('pc-toggle');\n }\n\n ngOnInit() {\n this.id = 'pctoggle_chbx_' + pcToggleCount;\n pcToggleCount++;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, HtmlAttrsDirective, ProfilesDirective, PCComponentHeaderV2Component, IconCustomComponent],\n selector: 'vn-pc-image',\n templateUrl: 'pc-image.html',\n})\nexport class PCImageComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-image');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ProfilesDirective, HtmlAttrsDirective, PCComponentHeaderV2Component, DynamicHtmlDirective],\n selector: 'vn-pc-image-text',\n templateUrl: 'pc-image-text.html',\n})\nexport class PCImageTextComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-image-text');\n }\n}\n\n/**\n * @whatItDoes Renders Cloudflare stream video component.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, CloudflareStreamModule, PCComponentHeaderV2Component],\n selector: 'vn-pc-video',\n templateUrl: 'pc-video.html',\n})\nexport class PCVideoComponent extends PCComponent<PcContentItem> implements OnInit {\n settings: {\n autoplay: boolean;\n loop: boolean;\n muted: boolean;\n preload: 'auto' | 'metadata' | 'none' | boolean;\n poster: string | undefined;\n } = {\n autoplay: false,\n loop: false,\n muted: false,\n preload: 'auto',\n poster: '',\n };\n private playing: boolean = false;\n\n constructor(\n private trackingService: TrackingService,\n private urlService: UrlService,\n ) {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-video');\n }\n\n @HostBinding() get style() {\n return {\n width: this.item.video?.width ? `${this.item.video.width}px` : null,\n height: this.item.video?.height ? `${this.item.video.height}px` : null,\n };\n }\n\n ngOnInit() {\n const videoSrc = this.item?.video?.src;\n\n if (!videoSrc) {\n return;\n }\n\n const queryParams = this.urlService.parse(videoSrc).search;\n\n queryParams.keys().forEach((key: string) => {\n const value = queryParams.get(key)?.toLowerCase();\n (this.settings as any)[key] = toBoolean(value) || value || (this.settings as any)[key];\n });\n\n // According to the browser policies, video cannot be auto-played with sound.\n // See: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide#autoplay_availability\n if (this.settings.autoplay) {\n this.settings.muted = true;\n }\n\n this.settings.poster = this.item.parameters?.poster;\n }\n\n onPlay(event: Event) {\n if (event.type === 'play' && !this.playing) {\n this.playing = true;\n\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'pc video',\n 'component.LabelEvent': 'pc video',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'not applicable',\n 'component.LocationEvent': 'public page',\n 'component.EventDetails': 'pc video play',\n 'component.URLClicked': 'not applicable',\n });\n }\n }\n\n onPause() {\n this.playing = false;\n\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'pc video',\n 'component.LabelEvent': 'pc video',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'not applicable',\n 'component.LocationEvent': 'public page',\n 'component.EventDetails': 'pc video pause',\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, HtmlAttrsDirective, ProfilesDirective, PCComponentHeaderV2Component],\n selector: 'vn-pc-teaser',\n templateUrl: 'pc-teaser.html',\n})\nexport class PCTeaserComponent extends PCComponent<PcContentItem> implements OnInit {\n imageProfilesSet: string | undefined;\n overlayImageProfilesSet: string | undefined;\n subtitleTag: string = 'h4';\n subtitleClass: string;\n summaryTag: string = 'h5';\n summaryClass: string;\n\n @HostBinding() get class(): string {\n return this.createClass('pc-teaser');\n }\n\n ngOnInit() {\n const subtitleClasses = ['pc-t-h-cont-sub'];\n const summaryClasses = ['pc-t-h-cont-sum'];\n\n if (this.item.parameters) {\n this.imageProfilesSet = this.item.parameters['image-profiles-set'];\n this.overlayImageProfilesSet = this.item.parameters['overlay-image-profiles-set'];\n\n const additionalSubtitleClass = this.item.parameters['subtitle-class'];\n const additionalSummaryClass = this.item.parameters['summary-class'];\n const subtitleTag = this.item.parameters['subtitle-tag'];\n const summaryTag = this.item.parameters['summary-tag'];\n\n if (additionalSubtitleClass) {\n subtitleClasses.push(additionalSubtitleClass);\n }\n\n if (additionalSummaryClass) {\n summaryClasses.push(additionalSummaryClass);\n }\n\n if (subtitleTag) {\n this.subtitleTag = subtitleTag;\n }\n\n if (summaryTag) {\n this.summaryTag = summaryTag;\n }\n }\n\n this.subtitleClass = subtitleClasses.join(' ');\n this.summaryClass = summaryClasses.join(' ');\n }\n}\n\n@Component({\n standalone: true,\n imports: [PCComponentHeaderV2Component, PageMatrixDirective, CommonModule],\n selector: 'vn-pc-container',\n templateUrl: 'pc-container.html',\n})\nexport class PCContainerComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-container');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCComponentHeaderV2Component, PageMatrixDirective],\n selector: 'vn-pc-component-folder',\n templateUrl: 'pc-component-folder.html',\n})\nexport class PCComponentFolderComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-folder');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCMenuItemComponent, PCComponentHeaderV2Component],\n selector: 'vn-pc-menu',\n templateUrl: 'pc-menu.html',\n})\nexport class PCMenuComponent extends PCComponent<PcContentItem> implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren(PCMenuItemComponent, { read: ElementRef }) pcMenuItems: QueryList<ElementRef>;\n section: string;\n items: ExpandableMenuItem[];\n private destroySubject = new Subject();\n private currentUrl: string;\n\n constructor(\n private urlService: UrlService,\n private navigationService: NavigationService,\n private menuItemsService: MenuItemsService,\n private elementRef: ElementRef,\n ) {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-menu');\n }\n\n ngOnInit() {\n this.section = `${MenuSection.PageMatrix}_${this.item.name}`;\n this.currentUrl = this.navigationService.location.baseUrl() + this.navigationService.location.path();\n }\n\n ngAfterViewInit() {\n if (this.item.menu) {\n this.items = cloneDeep(this.item.menu.children);\n const activeChain = this.findActiveChain(this.items, []);\n\n if (activeChain.length) {\n activeChain.forEach((i) => (i.expanded = true));\n const activeLeaf = activeChain[activeChain.length - 1];\n\n if (activeLeaf?.name) {\n this.menuItemsService.setActive(this.section, activeLeaf.name);\n }\n\n if (this.item.menu.parameters) {\n this.pcMenuItems.changes.pipe(takeUntil(this.destroySubject)).subscribe(() => {\n const pcMenu = this.pcMenuItems.find((x) => x.nativeElement.id === activeLeaf?.name);\n const boundingRect = pcMenu?.nativeElement.getBoundingClientRect();\n const scrollX = toBoolean(this.item.menu?.parameters['active-scroll-horizontal']) ? boundingRect.x : 0;\n const scrollY = toBoolean(this.item.menu?.parameters['active-scroll-vertical']) ? boundingRect.y : 0;\n\n if (scrollX || scrollY) {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n element.getElementsByClassName('pc-menu-items')[0]?.scrollBy({\n left: scrollX,\n top: scrollY,\n behavior: 'smooth',\n });\n }\n });\n }\n }\n }\n }\n\n ngOnDestroy() {\n this.destroySubject.next(null);\n this.destroySubject.complete();\n }\n\n private findActiveChain(items: ExpandableMenuItem[], chain: ExpandableMenuItem[]): ExpandableMenuItem[] {\n for (const child of items) {\n if (child.url) {\n const url = this.urlService.parse(child.url);\n\n if (this.currentUrl === url.baseUrl() + url.path()) {\n return [...chain, child];\n }\n }\n\n if (child.children) {\n const childChain = this.findActiveChain(child.children, [...chain, child]);\n\n if (childChain.length) {\n return childChain;\n }\n }\n }\n\n return [];\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCComponentHeaderV2Component, PageMatrixDirective],\n selector: 'vn-pc-regional-component',\n templateUrl: 'pc-regional-component.html',\n})\nexport class PCRegionalComponent extends PCComponent<PcContentItem> {\n @HostBinding() get class(): string {\n return this.createClass('pc-regional');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective],\n selector: 'vn-pc-raw-text',\n templateUrl: 'pc-raw-text.html',\n})\nexport class PCRawTextComponent extends PCComponent<PcContentItem> {\n @HostBinding('attr.class') get class(): string | undefined {\n return this.item.class;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ImageComponent],\n selector: 'vn-pc-raw-image',\n templateUrl: 'pc-raw-image.html',\n})\nexport class PCRawImageComponent extends PCComponent<PcContentItem> {\n @HostBinding('attr.class') get class(): string | undefined {\n return this.item.class;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PageMatrixDirective, SwiperComponent],\n selector: 'vn-pc-carousel',\n templateUrl: 'pc-carousel.html',\n})\nexport class PCCarouselComponent extends PCComponent<PcContentItem> implements OnInit {\n swiperClass: string | undefined;\n swiperOptions: SwiperOptions = {\n pagination: false,\n centeredSlides: true,\n };\n @HostBinding() get class(): string {\n return this.createClass('pc-carousel');\n }\n\n ngOnInit() {\n if (this.item.parameters) {\n this.swiperOptions.loop = !!toBoolean(this.item.parameters.loop);\n this.swiperOptions.autoplay = toBoolean(this.item.parameters.autoplay)\n ? {\n delay: toNumber(this.item.parameters.interval || 3000),\n disableOnInteraction: false,\n stopOnLastSlide: true,\n pauseOnMouseEnter: !!toBoolean(this.item.parameters.pauseOnHover),\n }\n : false;\n this.swiperOptions.navigation = !!toBoolean(this.item.parameters.arrows);\n this.swiperOptions.pagination = !!toBoolean(this.item.parameters.dots);\n this.swiperOptions.slidesPerView = toNumber(this.item.parameters.slidesPerView || 1);\n this.swiperOptions.slidesPerGroup = this.slidesPerGroup(\n Number(this.item.parameters?.slidesPerGroup),\n this.item.items?.length || 0,\n this.swiperOptions.loop,\n );\n }\n\n if (this.item.class) {\n this.swiperClass = `${this.item.class}`;\n }\n }\n\n /*\n For the swiper to be able to loop correctly, the 'slidesPerGroup' value should be a factor of the total\n 'slidesCount'. This method adjusts the 'slidesPerGroup' by decrementing it until 'slidesCount' is divisible by\n 'slidesPerGroup' without a remainder.\n */\n private slidesPerGroup(paramVal: number, slidesCount: number, loop: boolean): number {\n let slidesPerGroup = toNumber(paramVal || 1);\n\n if (loop) {\n while (slidesCount % slidesPerGroup) {\n slidesPerGroup--;\n }\n }\n\n return slidesPerGroup;\n }\n}\n\nconst DEFAULT_MENU_TIMEOUT = 3000;\n\n@Component({\n standalone: true,\n imports: [NavScrollDirective, CommonModule, PageMatrixDirective],\n selector: 'vn-pc-scrollmenu',\n templateUrl: 'pc-scrollmenu.html',\n})\nexport class PCScrollMenuComponent extends PCComponent<PcContentItem> implements OnInit {\n currentItem: string;\n navBarTopHeight: number;\n menuTimeOut: number;\n private readonly _doc = inject(DOCUMENT);\n\n constructor() {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-scrollmenu');\n }\n\n ngOnInit() {\n const navBarTopHeight = this.item.parameters?.navBarTopHeight;\n const menuTimeoutMs = this.item.parameters?.menuTimeOut || DEFAULT_MENU_TIMEOUT;\n this.navBarTopHeight = toNumber(navBarTopHeight);\n this.menuTimeOut = toNumber(menuTimeoutMs);\n }\n\n sectionChanged(sectionId: string) {\n this.currentItem = sectionId;\n }\n\n scrollStop() {\n this.currentItem = '';\n }\n\n scrollTo(section: string) {\n const element = this._doc.getElementById(section)!;\n element.scrollIntoView({ behavior: 'smooth' });\n }\n}\n","<div [vnDynamicHtml]=\"item.text\"></div>\n","import { Component, DoCheck, ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { CustomElement, DslService, DynamicHtml, EmbeddableComponentsService } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[data-content-filter]',\n template: '<ng-content />',\n})\nexport class ContentFilterComponent implements OnInit, OnDestroy, DoCheck {\n private unsubscribe = new Subject<void>();\n private dynamicHtml: DynamicHtml | null;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private dslService: DslService,\n private embeddableComponentsService: EmbeddableComponentsService,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n const element: CustomElement = this.elementRef.nativeElement as CustomElement;\n const condition = element.originalAttributes.get('data-content-filter')!;\n const style = element.originalAttributes.get('style') || '';\n const content = element.originalHtmlString;\n this.elementRef.nativeElement.setAttribute('data-content-filter', condition);\n\n this.dslService\n .evaluateExpression(condition)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r: any) => {\n if (this.dynamicHtml) {\n this.dynamicHtml.destroy();\n }\n\n if (r) {\n this.elementRef.nativeElement.setAttribute('style', style);\n this.dynamicHtml = this.embeddableComponentsService.createDynamicHtml(this.elementRef.nativeElement, this.injector, content);\n } else {\n this.elementRef.nativeElement.setAttribute('style', 'display: none');\n this.dynamicHtml = this.embeddableComponentsService.createDynamicHtml(this.elementRef.nativeElement, this.injector, '');\n }\n });\n }\n\n ngDoCheck() {\n if (this.dynamicHtml) {\n this.dynamicHtml.detectChanges();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n\n if (this.dynamicHtml) {\n this.dynamicHtml.destroy();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PageMatrixService as CorePageMatrixService, EmbeddableComponentsService, OnFeatureInit } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\n\nimport * as pc2 from './components-v2/pc.components';\nimport { ContentFilterComponent } from './content-filter.component';\nimport { PageMatrixService } from './page-matrix.service';\n\n@Injectable()\nexport class PageMatrixBootstrapService implements OnFeatureInit {\n constructor(\n private pageMatrixService: PageMatrixService,\n private corePageMatrixService: CorePageMatrixService,\n private embeddableComponentsService: EmbeddableComponentsService,\n ) {}\n\n onFeatureInit() {\n this.embeddableComponentsService.registerEmbeddableComponent(IconCustomComponent, 100);\n this.embeddableComponentsService.registerEmbeddableComponent(ContentFilterComponent, 100);\n this.pageMatrixService.registerComponent('pm1colpage', pc2.PM1ColPageComponent);\n this.pageMatrixService.registerComponent('pctext', pc2.PCTextComponent);\n this.pageMatrixService.registerComponent('pc-text-with-header-bar', pc2.PCTextWithHeaderBarComponent);\n this.pageMatrixService.registerComponent('pc-header-for-mpp-page', pc2.PCHeaderForMppPageComponent);\n this.pageMatrixService.registerComponent('pcimage', pc2.PCImageComponent);\n this.pageMatrixService.registerComponent('pcimagetext', pc2.PCImageTextComponent);\n this.pageMatrixService.registerComponent('pc teaser', pc2.PCTeaserComponent);\n this.pageMatrixService.registerComponent('pccomponentfolder', pc2.PCComponentFolderComponent);\n this.pageMatrixService.registerComponent('pcregionalcomponent', pc2.PCRegionalComponent);\n this.pageMatrixService.registerComponent('pccontainer', pc2.PCContainerComponent);\n this.pageMatrixService.registerComponent('pc-toggle', pc2.PCToggleComponent);\n this.pageMatrixService.registerComponent('pc menu', pc2.PCMenuComponent);\n this.pageMatrixService.registerComponent('rawimage', pc2.PCRawImageComponent);\n this.pageMatrixService.registerComponent('rawtext', pc2.PCRawTextComponent);\n this.pageMatrixService.registerComponent('pccarousel', pc2.PCCarouselComponent);\n this.pageMatrixService.registerComponent('pcvideo', pc2.PCVideoComponent);\n this.pageMatrixService.registerComponent('pcscrollmenu', pc2.PCScrollMenuComponent);\n\n this.corePageMatrixService.set(this.pageMatrixService);\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { PageMatrixBootstrapService } from './page-matrix-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(PageMatrixBootstrapService)];\n}\n","import { Component, Input, OnChanges, OnDestroy } from '@angular/core';\n\nimport { ClientConfigProductName, ContentItem, ContentService } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PageMatrixDirective } from './page-matrix.directive';\n\n/**\n * @whatItDoes Renders page matrix on the client based on JSON or Sitecore path\n *\n * @howToUse\n *\n * If you already have content loaded:\n * ```\n * <vn-page-matrix [content]=\"content\" />\n * ```\n *\n * If you would like the component to load any content asynchronously:\n * ```\n * <vn-page-matrix path=\"App-v1.0/Partials/Page\" />\n * ```\n *\n * @description\n *\n * To load the content, you can either use JsonSerializer with supported templates to get it as part of\n * whatever response or client config (the correct serialization is used out of the box)\n * or use {@link ContentService} or just specify a content path to load from.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [PageMatrixDirective],\n selector: 'vn-page-matrix',\n template: '<ng-container *vnPageMatrix=\"contentItem\" />',\n host: {\n '[class.page-matrix]': 'true',\n },\n})\nexport class PageMatrixComponent implements OnChanges, OnDestroy {\n @Input() path: string;\n @Input() content: ContentItem;\n @Input() product?: ClientConfigProductName;\n\n contentItem: ContentItem;\n\n private unsubscribe = new Subject<void>();\n\n constructor(private contentService: ContentService) {}\n\n ngOnChanges() {\n this.setContent();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private setContent() {\n if (!this.content && !this.path) {\n return;\n }\n\n if (this.content) {\n this.contentItem = this.content;\n } else if (this.path) {\n this.contentService\n .getJsonFiltered<ContentItem>(this.path, this.product)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((data: ContentItem) => {\n this.contentItem = data;\n\n const text = data.text?.replace(/\\\\+n/g, '');\n\n if (text) {\n this.contentItem.text = text;\n }\n });\n }\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nimport { ConfigProviderService } from '@casinocore/platform/core';\n\n/*how this pipe can be used:\n\n<div [ngClass]=\"content.textTranslations.sharedList[race.additionalParams | prize: true]\">hello</div>\n\n*/\n\n@Pipe({\n name: 'prize',\n standalone: true,\n})\nexport class PrizePipe implements PipeTransform {\n constructor(\n private currencyPipe: CurrencyPipe,\n private configProvider: ConfigProviderService,\n ) {}\n\n transform(value: any, givePrizeType: boolean, prizeString?: string): any {\n //for the results page\n if (value.value && !value.totaL_PRIZE && !value.totaL_NUMBER_OF_PRIZE) {\n value.totaL_PRIZE = value.value;\n }\n if (givePrizeType) {\n if (value && value.awardType) return value?.awardType?.toLowerCase() == 'coins' ? '' : value?.awardType?.toLowerCase();\n else if (!value.awardType && prizeString) {\n //added for results and leaderboard from results history as additional params with award type are not available there ( as results contains user specific data and not promo specific and leaderboard does not contains value in additional params)\n const prizes = JSON.parse(prizeString);\n let isHomogeneous = true;\n const prizeType = prizes && prizes[0] && prizes[0].AwardType;\n prizes.every((prize: any) => {\n if (prize.AwardType !== prizeType) {\n isHomogeneous = false;\n return false;\n }\n return true;\n });\n if (isHomogeneous) return prizeType && prizeType?.toLowerCase();\n else return 'mixed-awards';\n } else {\n return 'mixed-awards';\n }\n } else {\n const configs = this.configProvider.provideSlotRacesConfig();\n // as per new changes from CRM, bonus promos can have cash as the bonus award. For that we need to diplay award value as cash with currency. Added toggle to avoid issue in case of different rollout dates between CRM and Casino Portal\n if (!configs.displayBonusAsText) {\n if (\n value &&\n (!value.currency ||\n !value.currency.length ||\n !value.awardType ||\n (value.awardType &&\n (value.awardType?.toLowerCase() == 'freespins' ||\n value?.awardType?.toLowerCase() == 'free_spin' ||\n value?.awardType?.toLowerCase() == 'golden_chip' ||\n value.awardType?.toLowerCase() == 'coins')))\n ) {\n return value && Number(value.totaL_PRIZE || value.totaL_NUMBER_OF_PRIZE);\n } else {\n return this.currencyPipe.transform(value && value.totaL_PRIZE, value && value.currency, 'symbol-narrow', '1.2-2');\n }\n } else if (value && value.awardType && value.awardType?.toLowerCase().indexOf('coins') > -1) {\n return value && Number(value.totaL_PRIZE ? value.totaL_PRIZE : 0);\n } else {\n if (value && value.awardType && value.awardType?.toLowerCase().indexOf('cash') > -1) {\n return this.currencyPipe.transform(value && value.totaL_PRIZE, value && value.currency, 'symbol-narrow', '1.2-2');\n }\n return value && Number(value.totaL_PRIZE || value.totaL_NUMBER_OF_PRIZE);\n }\n }\n //on request, the prizes are now supposed to be picked only from API\n }\n}\n","<div class=\"example-container madgrid-align-proparty\" id=\"container-1-{{ showTopThree }}\" [ngStyle]=\"{ height: height + 'px' }\">\n <table mat-table [dataSource]=\"visibleStats\" [ngClass]=\"{ 'sr-alternate-colors': !showTopThree }\">\n <caption class=\"hide-caption\"></caption>\n <ng-container matColumnDef=\"rank\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardHeaderBgColor,\n 'color': leaderboardConfigs?.leaderboardHeaderTextColor,\n }\">\n {{ leaderboardConfigs?.rankTitleText }}\n </th>\n <td mat-cell class=\"casino-sr-rank\" *matCellDef=\"let transaction\" [ngStyle]=\"{ color: leaderboardConfigs?.leaderboardContentTextColor }\">\n {{ transaction?.rank }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"prize\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardHeaderBgColor,\n 'color': leaderboardConfigs?.leaderboardHeaderTextColor,\n }\">\n <i\n class=\"sr-prize-icon\"\n [ngClass]=\"\n race?.additionalParams\n ? leaderboardConfigs?.sharedList[(race?.additionalParams | prize: true)]\n : results && results?.awardType?.toLowerCase() != 'coins'\n ? leaderboardConfigs?.sharedList[({} | prize: true : results?.content?.promotion?.prizes)]\n : ''\n \"></i>\n <span\n class=\"srp-coin-reward\"\n *ngIf=\"race?.additionalParams?.awardType?.toLowerCase() == 'coins' || results?.awardType?.toLowerCase() == 'coins'\">\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n </span>\n </span>\n <span class=\"leader-board-prize-align\">{{ leaderboardConfigs?.prizeTitleText }}</span>\n </th>\n <td mat-cell *matCellDef=\"let transaction\">\n <div class=\"casino-Bonus\" *ngIf=\"transaction.prize; else coinblock\">\n {{ transaction.prize }}\n <div class=\"srp-coin-reward\" *ngIf=\"transaction?.isDisplayCoin\">\n <span class=\"theme-plus\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ transaction.coinValue }}</span>\n </span>\n </div>\n </div>\n <ng-template #coinblock>\n <div class=\"casino-Bonus\" *ngIf=\"transaction?.isDisplayCoin\">\n <div class=\"srp-coin-reward\">\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ transaction.coinValue }}</span>\n </span>\n </div>\n </div>\n </ng-template>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"prize-img\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardHeaderBgColor,\n 'color': leaderboardConfigs?.leaderboardHeaderTextColor,\n }\"></th>\n <td mat-cell class=\"srl-prize-td\" *matCellDef=\"let transaction\" [ngStyle]=\"{ color: leaderboardConfigs?.leaderboardContentTextColor }\">\n <div class=\"srl-prize-container\">\n <div class=\"brown_trophy\" [innerHtml]=\"transaction?.icon | trustAsHtml\"></div>\n </div>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"player\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardHeaderBgColor,\n 'color': leaderboardConfigs?.leaderboardHeaderTextColor,\n }\">\n {{ leaderboardConfigs?.playerTitleText }}\n </th>\n <td mat-cell *matCellDef=\"let transaction\" [ngStyle]=\"{ color: leaderboardConfigs?.leaderboardContentTextColor }\">\n {{ transaction?.playerName }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"points\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardHeaderBgColor,\n 'color': leaderboardConfigs?.leaderboardHeaderTextColor,\n }\">\n {{ leaderboardConfigs?.pointsTitleText }}\n </th>\n <td\n mat-cell\n class=\"casino-sr-points\"\n *matCellDef=\"let transaction\"\n [ngStyle]=\"{ color: leaderboardConfigs?.leaderboardContentTextColor }\">\n {{ transaction?.points }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" [ngClass]=\"{ 'header-font-10': enableResultsHistoryPage && results }\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"{\n 'sticky': row.playerName === userName,\n 'player-position-bg-color': leaderboardConfigs?.leaderboardPlayerPositionBgColorNotNull,\n 'player-position-text-color': leaderboardConfigs?.leaderboardPlayerPositionTextColorNotNull,\n 'player-position-award-type-bg-color': leaderboardConfigs?.leaderboardPlayerPositionAwardTypeBgColorNotNull,\n 'player-position-award-type-text-color': leaderboardConfigs?.leaderboardPlayerPositionAwardTypeTextColorNotNull,\n }\"\n id=\"{{ showTopThree }}-{{ row?.playerName }}\"></tr>\n </table>\n</div>\n\n<div class=\"example-container-2\" *ngIf=\"!userIsVisible && userEnrolled && !showTopThree && playerStats\">\n <table mat-table [dataSource]=\"playerStats\">\n <caption calss=\"display-none\"></caption>\n <ng-container matColumnDef=\"rank\">\n <th></th>\n <td\n mat-footer-cell\n *matFooterCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionTextColor,\n }\">\n {{ playerStats?.rank }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"prize\">\n <th></th>\n <td\n mat-footer-cell\n *matFooterCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionTextColor,\n }\">\n <div\n class=\"casino-Bonus-sticky casino-Bonus\"\n *ngIf=\"playerStats?.prize\"\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionAwardTypeBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionAwardTypeTextColor,\n }\">\n {{ playerStats?.prize }}\n </div>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"prize-img\">\n <th></th>\n <td\n mat-footer-cell\n class=\"srl-prize-td\"\n *matFooterCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionTextColor,\n }\">\n <div class=\"srl-prize-container\">\n <div class=\"brown_trophy\" *ngIf=\"playerStats?.icon\" [innerHtml]=\"playerStats?.icon | trustAsHtml\"></div>\n </div>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"player\">\n <th></th>\n <td\n mat-footer-cell\n *matFooterCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionTextColor,\n }\">\n {{ playerStats?.playerName }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"points\">\n <th></th>\n <td\n mat-footer-cell\n *matFooterCellDef\n [ngStyle]=\"{\n 'background-color': leaderboardConfigs?.leaderboardPlayerPositionBgColor,\n 'color': leaderboardConfigs?.leaderboardPlayerPositionTextColor,\n }\">\n {{ playerStats?.points }}\n </td>\n </ng-container>\n <tr mat-footer-row *matFooterRowDef=\"displayedColumns\"></tr>\n </table>\n</div>\n","import { CurrencyPipe, NgClass, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { MatTableModule } from '@angular/material/table';\n\nimport {\n ConfigProviderService,\n LEADERBOARD_COLUMNS_DISPLAYED,\n Leaderboard,\n Race,\n SitecoreContent,\n SlotRacesLive,\n SlotRacesResponseError,\n SlotRacesService,\n UrlUtilityService,\n} from '@casinocore/platform/core';\nimport { ClaimsService, TimerService, UserService } from '@frontend/vanilla/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { Observable, Subject, Subscription, fromEvent } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { PrizePipe } from '../shared/prize.pipe';\nimport { ILeaderboardItem, ILeaderboardSitecoreConfigurations } from './leaderboard-sitecore-configurations';\n\n@Component({\n selector: 'cc-slot-races-leaderboard',\n templateUrl: 'leaderboard.component.html',\n styleUrl: 'leaderboard.component.scss',\n standalone: true,\n imports: [NgStyle, MatTableModule, NgClass, NgIf, TrustAsHtmlPipe, PrizePipe],\n providers: [CurrencyPipe],\n})\nexport class SlotRacesLeaderboardComponent implements OnInit, OnChanges, OnDestroy {\n @Input() showTopThree: boolean = false;\n @Input() coinImg: string;\n @Input() race: Race;\n @Input() results: any;\n @Input() lobbyType: string;\n readonly displayedColumns = LEADERBOARD_COLUMNS_DISPLAYED;\n stats: any = [];\n playerStats: any;\n prizesString: string;\n currencyCode: string;\n visibleStats: any;\n leaderboardPollingInterval: number;\n leaderboardPollingStarted: boolean;\n pollingInterval: any;\n slotRacesConfig: any;\n userIsVisible: boolean = true;\n userEnrolled: boolean;\n userName: string;\n height: any;\n dataUpdateSubscription: Subscription;\n enableResultsHistoryPage: boolean = false;\n private leaderboardVisiblePublisher = new Subject<void>();\n leaderboardVisible: Observable<void> = this.leaderboardVisiblePublisher.asObservable();\n leaderboardSubscription: Subscription;\n heightResult: any;\n leaderboardConfigs: ILeaderboardSitecoreConfigurations = {\n leaderboardHeaderBgColor: '',\n leaderboardHeaderTextColor: '',\n leaderboardContentTextColor: '',\n leaderboardAwardTypeBgColor: '',\n leaderboardAwardTypeTextColor: '',\n leaderboardPlayerPositionBgColor: '',\n leaderboardPlayerPositionTextColor: '',\n leaderboardPlayerPositionAwardTypeBgColor: '',\n leaderboardPlayerPositionAwardTypeTextColor: '',\n playerTitleText: '',\n rankTitleText: '',\n prizeTitleText: '',\n pointsTitleText: '',\n coinEconomy: '',\n leaderboardCtaTitleText: '',\n leaderboardPlayerPositionBgColorNotNull: false,\n leaderboardPlayerPositionTextColorNotNull: false,\n leaderboardPlayerPositionAwardTypeBgColorNotNull: false,\n leaderboardPlayerPositionAwardTypeTextColorNotNull: false,\n sharedList: {},\n };\n private scrollSubscription: Subscription;\n private leaderboardVisibleSubscription: Subscription;\n coinObj: any;\n\n constructor(\n private timerService: TimerService,\n private userService: UserService,\n private slotRacesService: SlotRacesService,\n private claimsService: ClaimsService,\n private currencyPipe: CurrencyPipe,\n private configProviderService: ConfigProviderService,\n private urlUtilityService: UrlUtilityService,\n ) {\n this.userName = this.userService.screenname ? this.userService.screenname : this.userService.id || '';\n }\n\n ngOnInit() {\n this.slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n this.leaderboardPollingInterval = this.slotRacesConfig.leaderboardPollingInterval;\n this.enableResultsHistoryPage = this.slotRacesConfig.enableResultsHistoryPage;\n this.subscribeToDataUpdates();\n if (!this.results) {\n this.currencyCode = (this.race.additionalParams && this.race.additionalParams.currency) || this.claimsService.get('currency')!;\n this.userEnrolled = !(this.race.ctaList.indexOf('OPTIN') > -1);\n } else if (this.enableResultsHistoryPage && this.results) {\n let configMap = this.results?.configMaps ? this.results?.configMaps[0] : this.results?.configMap;\n this.currencyCode = this.results && configMap && configMap.currency ? configMap.currency : this.claimsService.get('currency');\n this.userEnrolled = true;\n }\n\n if (this.showTopThree) {\n if (this.race.rankDetails && this.race.rankDetails.length > 0) {\n let leaderboard: Leaderboard = { rankDetails: this.race.rankDetails, content: this.race.content };\n this.setStats(leaderboard);\n }\n } else {\n this.pollLeaderBoard();\n }\n\n this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n if (content) {\n this.getSitecoreConfigurations(content);\n }\n });\n\n this.leaderboardVisibleSubscription = this.leaderboardVisible.subscribe(() => {\n this.onLeaderboardInit();\n });\n }\n\n ngOnChanges() {\n if (this.showTopThree) {\n if (this.race.rankDetails && this.race.rankDetails.length > 0) {\n let leaderboard: Leaderboard = { rankDetails: this.race.rankDetails, content: this.race.content };\n this.setStats(leaderboard);\n }\n }\n }\n\n pollLeaderBoard() {\n if (!this.results) {\n if (!this.leaderboardPollingStarted) {\n this.leaderboardPollingStarted = true;\n this.getLeaderboard(this.race.promoId, this.race.slotUniqueId, false);\n this.pollingInterval = this.timerService.setIntervalOutsideAngularZone(() => {\n if (!this.urlUtilityService.getAppCurrentProduct()) return;\n this.getLeaderboard(this.race.promoId, this.race.slotUniqueId, false);\n }, this.leaderboardPollingInterval);\n }\n } else if (this.enableResultsHistoryPage && this.results) {\n let configMap = this.results?.configMaps ? this.results?.configMaps[0] : this.results?.configMap;\n if (configMap) {\n this.getLeaderboard(+configMap.promoId, +configMap.slotId, true);\n }\n }\n }\n\n getLeaderboard(promoId: number, slotId: number, fromResultsHistory: boolean): void {\n let maxRows = this.enableResultsHistoryPage && this.results ? 0 : this.slotRacesConfig.maxLeaderboardRows;\n //history results api irrespective of maxrows all rows r returned\n this.leaderboardSubscription = this.slotRacesService.getLeaderboard(promoId, slotId, maxRows, fromResultsHistory).subscribe(\n (leaderboard: Leaderboard) => {\n if (leaderboard.rankDetails && leaderboard.rankDetails.length) {\n this.setStats(leaderboard);\n }\n this.coinObj = this.slotRacesService.bindCoinImg(leaderboard, this.coinImg);\n },\n (error: SlotRacesResponseError) => {\n this.slotRacesService.addErrorMessage(error.errorCode);\n },\n );\n }\n\n setStats(data: Leaderboard) {\n this.slotRacesConfig = this.slotRacesConfig ?? this.configProviderService.provideSlotRacesConfig();\n let prizes: any = [];\n this.stats = data.rankDetails;\n if (this.enableResultsHistoryPage && this.results) {\n this.stats = this.stats.filter((stat: any) => stat.rank <= this.slotRacesConfig.maxLeaderboardRows);\n }\n if (data.content && data.content.promotion && data.content.promotion.prizes) {\n this.prizesString = data.content.promotion.prizes;\n }\n if (this.prizesString) {\n prizes = JSON.parse(this.prizesString);\n }\n if (data.content?.promotion?.beatBanker) {\n let beatBankerContent = JSON.parse(data.content.promotion.beatBanker);\n beatBankerContent.forEach((beatBanker: any) => {\n beatBanker.isBeatBanker = true;\n });\n prizes = prizes.concat(beatBankerContent);\n }\n\n this.stats.forEach((item: any) => {\n let award = prizes.find((prize: any) => Number(item.rank) >= Number(prize.FromRank) && Number(item.rank) < Number(prize.ToRank)) || {};\n this.fetchConfigMaps(item, award);\n });\n this.setPlayerStat(this.userName);\n if (this.showTopThree) {\n this.visibleStats = this.stats.slice(0, 3);\n } else {\n this.visibleStats = this.stats;\n }\n if (this.showTopThree) {\n this.height = this.calculateHeight(this.visibleStats.length);\n }\n this.leaderboardVisiblePublisher.next(this.visibleStats.length);\n }\n\n fetchConfigMaps(item: any, award: any = null) {\n item.points = Math.trunc(item?.points).toString();\n item?.configMaps?.forEach((configMap: any) => {\n if (configMap && configMap.awardType && configMap.value) {\n item.icon = award?.Icon;\n if (configMap.awardType?.toLowerCase() != 'coins') {\n if (!this.slotRacesConfig.displayBonusAsText) {\n //leaderboard capsule is supposed to show bonus value instead of just \"bonus\" as text\n if (\n configMap.awardType?.toLowerCase() == 'freespins' ||\n configMap.awardType?.toLowerCase() == 'free_spin' ||\n !configMap.currency ||\n !configMap.currency.length\n ) {\n item.prize = Number(configMap.value);\n } else {\n item.prize = this.currencyPipe.transform(\n configMap.value,\n configMap.currency || this.currencyCode,\n 'symbol-narrow',\n '1.2-2',\n );\n }\n } else {\n item.prize =\n configMap.awardType?.toLowerCase() === 'bonus'\n ? configMap.awardType?.toLowerCase()\n : configMap && configMap.awardType && configMap.awardType?.toLowerCase().indexOf('cash') > -1\n ? this.currencyPipe.transform(configMap.value, configMap.currency || this.currencyCode, 'symbol-narrow', '1.2-2')\n : Number(configMap?.value);\n }\n }\n if (configMap.awardType?.toLowerCase() == 'coins') {\n item.isDisplayCoin = true;\n item.coinValue = item.isDisplayCoin ? configMap.value : '';\n }\n }\n });\n }\n\n setPlayerStat(name: string) {\n if (this.stats) {\n this.playerStats = this.stats.find((player: any) => player.playerName == name);\n if (!this.playerStats && this.race && !this.results) {\n let playerDetails = this.race.rankDetails.find((player: any) => player.playerName == name);\n if (playerDetails) {\n this.fetchConfigMaps([playerDetails]);\n this.stats.push(playerDetails);\n }\n this.playerStats = playerDetails ? playerDetails : {};\n } else if (this.enableResultsHistoryPage && !this.playerStats && this.results) {\n let playerDetails: ILeaderboardItem = {\n rank: this.results.rank,\n playerName: this.userName,\n points: this.results.points,\n prizeIcon: this.results.prizeIcon,\n prize: this.results.awardValue == '-' ? undefined : this.results.awardValue,\n };\n if (playerDetails) {\n this.stats.push(playerDetails);\n }\n this.playerStats = playerDetails ? playerDetails : {};\n }\n }\n }\n\n onLeaderboardInit() {\n const content = document.querySelector('.casino-sr-mat-dialog');\n if (content) {\n const scroll$ = fromEvent(content, 'scroll').pipe(map(() => content));\n if (this.visibleStats) {\n this.setUserVisibility(this.visibleStats.length, content);\n }\n this.scrollSubscription = scroll$.subscribe(() => {\n let leaderboardContainer = document.querySelector('.casino-sr-mat-dialog cc-slot-races-leaderboard');\n if (leaderboardContainer && leaderboardContainer.getBoundingClientRect().bottom > 0 && this.visibleStats) {\n this.setUserVisibility(this.visibleStats.length, content);\n }\n });\n }\n }\n\n setUserVisibility(count: number, container: any) {\n let element = document.getElementById('false-' + this.playerStats.playerName);\n if (element && container) {\n this.userIsVisible = this.isElementInViewport(container, element);\n }\n this.height = this.calculateHeight(count);\n }\n\n isElementInViewport(container: any, element: any) {\n let elementRect = element.getBoundingClientRect();\n let containerRect = container.getBoundingClientRect();\n return (\n elementRect.top >= containerRect.top &&\n elementRect.left >= containerRect.left &&\n elementRect.bottom <= containerRect.bottom &&\n elementRect.right <= containerRect.right\n );\n }\n\n calculateHeight(count: number) {\n if (!this.showTopThree) {\n let userRankGreaterThanThreshold = this.slotRacesConfig.maxLeaderboardRows < this.playerStats.rank;\n if (this.userEnrolled) {\n if (this.userIsVisible || userRankGreaterThanThreshold) {\n this.heightResult = 40 * (count + 1);\n } else {\n this.heightResult = 40 * count;\n }\n } else {\n this.heightResult = false;\n }\n } else {\n this.heightResult = 160;\n }\n return this.heightResult;\n }\n\n getSitecoreConfigurations(content: SitecoreContent) {\n if (content && content.textTranslations) {\n if (content.textTranslations.sharedList) {\n this.leaderboardConfigs.sharedList = content.textTranslations.sharedList;\n }\n if (content.textTranslations.versionedList) {\n this.leaderboardConfigs.playerTitleText = content.textTranslations.versionedList.PlayerTitle || 'Player';\n this.leaderboardConfigs.prizeTitleText = content.textTranslations.versionedList.PrizeIconTitle || 'Prize';\n this.leaderboardConfigs.pointsTitleText = content.textTranslations.versionedList.PointsTitle || 'Points';\n this.leaderboardConfigs.rankTitleText = content.textTranslations.versionedList.RankTitle || 'Rank';\n }\n if (content.textTranslations.sharedList) {\n if (content.textTranslations.sharedList.leaderboardHeaderBgColor !== '') {\n this.leaderboardConfigs.leaderboardHeaderBgColor = content.textTranslations.sharedList.leaderboardHeaderBgColor;\n }\n if (content.textTranslations.sharedList.leaderboardHeaderTextColor !== '') {\n this.leaderboardConfigs.leaderboardHeaderTextColor = content.textTranslations.sharedList.leaderboardHeaderTextColor;\n }\n if (content.textTranslations.sharedList.leaderboardContentTextColor !== '') {\n this.leaderboardConfigs.leaderboardContentTextColor = content.textTranslations.sharedList.leaderboardContentTextColor;\n }\n if (content.textTranslations.sharedList.leaderboardAwardTypeBgColor !== '') {\n this.leaderboardConfigs.leaderboardAwardTypeBgColor = content.textTranslations.sharedList.leaderboardAwardTypeBgColor;\n }\n if (content.textTranslations.sharedList.leaderboardAwardTypeTextColor !== '') {\n this.leaderboardConfigs.leaderboardAwardTypeTextColor = content.textTranslations.sharedList.leaderboardAwardTypeTextColor;\n }\n if (content.textTranslations.sharedList.leaderboardPlayerPositionBgColor !== '') {\n this.leaderboardConfigs.leaderboardPlayerPositionBgColorNotNull = true;\n this.leaderboardConfigs.leaderboardPlayerPositionBgColor = content.textTranslations.sharedList.leaderboardPlayerPositionBgColor;\n document.documentElement.style.setProperty(\n '--player-position-bg-color',\n this.leaderboardConfigs.leaderboardPlayerPositionBgColor,\n );\n }\n if (content.textTranslations.sharedList.leaderboardPlayerPositionTextColor !== '') {\n this.leaderboardConfigs.leaderboardPlayerPositionTextColorNotNull = true;\n this.leaderboardConfigs.leaderboardPlayerPositionTextColor =\n content.textTranslations.sharedList.leaderboardPlayerPositionTextColor;\n document.documentElement.style.setProperty(\n '--player-position-text-color',\n this.leaderboardConfigs.leaderboardPlayerPositionTextColor,\n );\n }\n if (content.textTranslations.sharedList.leaderboardPlayerPositionAwardTypeBgColor !== '') {\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeBgColorNotNull = true;\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeBgColor =\n content.textTranslations.sharedList.leaderboardPlayerPositionAwardTypeBgColor;\n document.documentElement.style.setProperty(\n '--player-position-award-type-bg-color',\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeBgColor,\n );\n }\n if (content.textTranslations.sharedList.leaderboardPlayerPositionAwardTypeTextColor !== '') {\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeTextColorNotNull = true;\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeTextColor =\n content.textTranslations.sharedList.leaderboardPlayerPositionAwardTypeTextColor;\n document.documentElement.style.setProperty(\n '--player-position-award-type-text-color',\n this.leaderboardConfigs.leaderboardPlayerPositionAwardTypeTextColor,\n );\n }\n }\n }\n }\n\n subscribeToDataUpdates(): void {\n if (this.showTopThree) {\n this.dataUpdateSubscription = this.slotRacesService.liveRacesData.subscribe((liveRaces: SlotRacesLive) => {\n if (liveRaces && liveRaces.liveNow && liveRaces.liveNow.length) {\n let updatedRace = liveRaces.liveNow.find((r) => r.promoId === this.race.promoId && r.slotUniqueId === this.race.slotUniqueId);\n if (updatedRace && updatedRace.rankDetails && updatedRace.rankDetails.length > 0) {\n let leaderboard: Leaderboard = { rankDetails: updatedRace.rankDetails, content: updatedRace.content };\n this.setStats(leaderboard);\n }\n }\n });\n }\n }\n\n ngOnDestroy() {\n if (this.pollingInterval) {\n this.timerService.clearInterval(this.pollingInterval);\n }\n if (this.leaderboardSubscription) {\n this.leaderboardSubscription.unsubscribe();\n }\n if (this.leaderboardVisibleSubscription) {\n this.leaderboardVisibleSubscription.unsubscribe();\n }\n if (this.scrollSubscription) {\n this.scrollSubscription.remove(this.scrollSubscription);\n this.scrollSubscription.unsubscribe();\n }\n if (this.dataUpdateSubscription) {\n this.dataUpdateSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"casino-coineconmy-overlay\" *ngIf=\"showConfirmPopup\">\n <div class=\"purchase-popup\">\n <h2>{{ messages?.Purchase }}</h2>\n <a class=\"close theme-close-small\" (click)=\"closeDialog('close')\"></a>\n <div class=\"content\">{{ messages?.Play }}</div>\n <div class=\"btn-section\">\n <!-- <button class=\"btn btn-secondary btn-md\" (click)=\"closeDialog('cancel')\">{{ messages?.Cancel }}</button>\n <button class=\"btn btn-primary btn-md\" (click)=\"onConfirmClick($event)\">{{ messages?.Confrim }}</button> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'secondary'\"\n [size]=\"'medium'\"\n [csDecoratorClass]=\"'btn-secondary btn-md'\"\n [cta_text]=\"messages?.Cancel\"\n (click)=\"closeDialog('cancel')\"></cs-slotrace-cta>\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [size]=\"'medium'\"\n [csDecoratorClass]=\"'btn-md'\"\n [cta_text]=\"messages?.Confrim\"\n (click)=\"onConfirmClick($event)\"></cs-slotrace-cta>\n </div>\n </div>\n</div>\n<div class=\"casino-lobby-container-main\" *ngIf=\"!showConfirmPopup\">\n <div class=\"casino-slotraces-notification-toster-container-coin\">\n <div class=\"casino-slotraces-notification-toster-body\">\n <div class=\"sry\">{{ messages?.InSufficientBalToasterMsg }}</div>\n <span class=\"mes\">{{ messages?.InsufficientCoinBalance }}</span>\n <!-- <div class=\"btn btn-md btn-primary cls\" (click)=\"closeDialog('toasterClose')\">{{ messages?.CloseBtnText }}</div> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [size]=\"'medium'\"\n [cta_text]=\"messages?.CloseBtnText\"\n [csDecoratorClass]=\"'btn-md cls'\"\n (click)=\"closeDialog('toasterClose')\">\n </cs-slotrace-cta>\n </div>\n </div>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DesignSystemEnablerService } from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\n\n@Component({\n selector: 'cc-coin-economy-confirm-popup',\n templateUrl: 'coin-economy-confirm-popup.component.html',\n standalone: true,\n imports: [NgIf, DecoratorClassDirective, SlotRaceCtaComponent],\n})\nexport class CoinEconomyConfirmPopupComponent {\n messages: any;\n showConfirmPopup: boolean;\n isLegacy: boolean = false;\n\n constructor(\n private dialogRef: MatDialogRef<CoinEconomyConfirmPopupComponent>,\n private dsEnablerService: DesignSystemEnablerService,\n @Inject(MAT_DIALOG_DATA) data: any,\n ) {\n this.messages = data?.messages;\n this.showConfirmPopup = data?.showConfirmPopup;\n }\n\n ngOnInit() {\n this.isLegacy = !this.dsEnablerService.isEnabled();\n }\n\n onConfirmClick(event: any) {\n this.dialogRef.close({ type: 'confirm', event: event });\n }\n\n closeDialog(ctaText: string) {\n this.dialogRef.close({ type: ctaText });\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { SlotRacesService } from '@casinocore/platform/core';\n\n@Component({\n selector: 'cc-notification-popup',\n templateUrl: 'notification-popup.component.html',\n standalone: true,\n})\nexport class NotificationPopUpComponent implements OnInit {\n notificationOnMsg: string;\n notificationOffMsg: string;\n constructor(\n private dialogRef: MatDialogRef<NotificationPopUpComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private slotRacesService: SlotRacesService,\n ) {}\n\n ngOnInit() {\n if (this.data.status === true) {\n this.notificationOnMsg = this.data.messages.NotificationMsgOnText;\n } else {\n this.notificationOffMsg = this.data.messages.NotificationMsgOffText;\n }\n\n const timeout = this.slotRacesService.notificationPopupTimeout();\n\n setTimeout(() => {\n this.close();\n }, timeout);\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","<div class=\"casino-lobby-container-main\">\n <div class=\"casino-slotraces-notification-toster-container\">\n <div class=\"casino-slotraces-notification-toster-body\">\n <span class=\"mes\">{{ notificationOffMsg }}{{ notificationOnMsg }}</span>\n <i class=\"theme-ex\" (click)=\"close()\"></i>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/*how this pipe can be used:\n\n<div *ngFor=\"let result of results | resultsType:showAll\">hello</div>\n\n*/\n\n@Pipe({\n name: 'timeformat',\n standalone: true,\n})\nexport class TimeFormatPipe implements PipeTransform {\n transform(timespan: number): any {\n if (timespan > 1000) {\n const seconds = Math.floor(timespan / 1000),\n minutes = Math.floor(seconds / 60),\n hours = Math.floor(minutes / 60);\n return `${('0' + hours).slice(-2)}:${('0' + (minutes % 60)).slice(-2)}:${('0' + (seconds % 60)).slice(-2)}`;\n } else {\n return '00:00:00';\n }\n }\n}\n","<div class=\"tourney-icon-container\" *ngIf=\"isMultiIcon; else singleIcon\" [style.cursor]=\"isClickable ? 'pointer' : 'inherit'\" (click)=\"ctaClick()\">\n <mat-grid-list cols=\"2\" rowHeight=\"1:1\">\n <mat-grid-tile *ngFor=\"let gameIcon of gameVariantIconList; last as isLast; let i = index\" [colspan]=\"gameIcon.colspan\">\n <img\n class=\"tourney-icon\"\n src=\"{{ gameIcon.src }}\"\n [draggable]=\"isDraggable\"\n alt=\"{{ gameVariantList[i] }}\"\n (error)=\"onGameIconError(gameIcon.src)\" />\n <div class=\"tourney-icon-overlay\" *ngIf=\"isLast && overlayApplicable\">+{{ overlayCount }}</div>\n </mat-grid-tile>\n </mat-grid-list>\n</div>\n<ng-template #singleIcon>\n <div\n class=\"coineconomy-imgs\"\n [style.cursor]=\"isClickable && attachClickEvent() ? 'pointer' : 'inherit'\"\n (click)=\"attachClickEvent() ? ctaClick() : {}\">\n <img\n class=\"img-coineconomy\"\n alt=\"{{ promoAlt }}\"\n src=\"{{ singleIconSrc }}\"\n [draggable]=\"isDraggable\"\n (error)=\"onGameIconError(singleIconSrc)\" />\n <div\n class=\"sr-card-jackpot\"\n *ngIf=\"showJackpotRibbon && jackpotValue && jackpotValue.length\"\n [ngStyle]=\"{ background: jpRibbonStyles?.jpBgColor }\">\n <span class=\"sr-card-jp-value\" [ngStyle]=\"{ color: jpRibbonStyles?.jpTextColor }\">{{ jackpotValue }}</span>\n </div>\n </div>\n</ng-template>\n","import { NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\nimport {\n CasinoLobbyService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n ITournamentIcon,\n JackpotDataService,\n} from '@casinocore/platform/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cc-slot-races-icon',\n templateUrl: 'tournament-icon.component.html',\n standalone: true,\n imports: [NgIf, MatGridListModule, NgFor, NgStyle],\n})\nexport class TournamentIconComponent implements OnInit, OnDestroy {\n @Input() isDraggable: boolean = true;\n @Input() promoIcon: any;\n @Input() gameVariantList: string[];\n @Input() position: number;\n @Input() source: string;\n @Input() lobbyType: string;\n @Input() category: any;\n @Input() isClickable: boolean;\n @Input() isFreeTourney: boolean = false;\n @Input() isLive: boolean = false;\n @Input() spinProgress: any = {};\n @Input() cta: string[];\n\n @Output() openPickGameOverlay = new EventEmitter();\n @Output() launchSelectedGame = new EventEmitter<any>();\n\n defaultSrc: string;\n isMultiIcon: boolean = false;\n subIconCount: number = 1;\n displayJackpotRibbon: boolean = true;\n overlayCount: number = 0;\n overlayApplicable: boolean = false;\n gameVariantIconList: ITournamentIcon[] = [];\n singleIconSrc: string;\n promoAlt: string;\n gameConfig: any;\n activeCategory: string;\n jackpotDataSubscription: Subscription;\n jackpotTickingSubscription: Subscription;\n jackpotValue: string;\n jackpotConfig: any;\n showJackpots: boolean;\n enableJPTicking: boolean;\n showJackpotRibbon: boolean;\n jpBgColor: any;\n jpTextCOlor: any;\n jpRibbonStyles: { jpBgColor: string; jpTextColor: string };\n\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly jackpotDataService = inject(JackpotDataService);\n private readonly casinoLobbyService = inject(CasinoLobbyService);\n private readonly casinoStyles = inject(CasinoStylesService);\n\n constructor() {\n this.gameConfig = this.configProviderService.provideGameConfig();\n }\n\n ngOnInit() {\n //no promo icon to be shown for promos that have single games\n const feature: any = this.configProviderService.provideFeaturesConfig();\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n this.promoIcon = this.gameVariantList && this.gameVariantList.length ? this.promoIcon : null;\n this.activeCategory = this.category && this.category.categoryInfo && this.category.categoryInfo.categoryid;\n this.jackpotConfig = this.configProviderService.provideJackpotConfig();\n this.showJackpots = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, this.jackpotConfig.showJackpotOnGameTilesLobbyType);\n this.enableJPTicking = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, this.jackpotConfig.enableJpTickingForLobbyType);\n if (this.promoIcon && this.gameVariantList && this.promoIcon.src && this.promoIcon.alt !== 'DoNotDisplay') {\n this.singleIconSrc = this.promoIcon.src;\n this.promoAlt = this.promoIcon.alt;\n } else {\n if (this.gameVariantList && this.gameVariantList.length) {\n if (this.gameVariantList.length > 1) {\n this.isMultiIcon = true;\n this.initIconAttributes();\n } else {\n this.singleIconSrc = this.casinoLobbyService.getImagePath(this.gameVariantList[0], 'square');\n }\n }\n }\n this.showJackpotRibbon = this.showJackpots && !this.isMultiIcon && !this.promoIcon;\n if (!this.configProviderService.provideSlotRacesConfig().enableJpRibbonOnFreeTourney) {\n this.showJackpotRibbon = !this.isFreeTourney && this.showJackpotRibbon;\n }\n if (this.showJackpotRibbon) {\n this.jackpotDataSubscription = this.jackpotDataService.jackpotFeedObservable.subscribe((jackpots: any) => {\n if (jackpots) {\n this.setJackpotValue(jackpots.get(this.gameVariantList[0]));\n }\n });\n if (this.enableJPTicking) {\n this.jackpotTickingSubscription = this.jackpotDataService.jpTickingObservable.subscribe((jackpots: any) => {\n if (jackpots) {\n this.setJackpotValue(jackpots.get(this.gameVariantList[0]));\n }\n });\n }\n }\n if (feature.enableGameIconTheming) this.singleIconSrc = this.casinoStyles.appendTheme(this.singleIconSrc, this.gameVariantList?.[0]);\n }\n\n setJackpotValue(jackpot: any) {\n this.jackpotValue = jackpot && jackpot.amount;\n const enableRibbonConfig = this.configProviderService.provideJackpotConfig().enableRibbonConfig;\n if (enableRibbonConfig) {\n this.jpRibbonStyles = this.jackpotDataService.getJackpotRibbonStyles(this.jackpotValue);\n }\n }\n\n initIconAttributes() {\n if (this.gameVariantList.length > 4) {\n this.subIconCount = 4;\n this.overlayCount = this.gameVariantList.length - 3;\n this.overlayApplicable = true;\n } else {\n this.subIconCount = this.gameVariantList.length;\n }\n this.generateIconList();\n }\n\n generateIconList() {\n for (let i = 0; i < this.subIconCount; i++) {\n const feature: any = this.configProviderService.provideFeaturesConfig();\n const colspan: number = this.subIconCount === 2 || (this.subIconCount === 3 && i + 1 === 1) ? 2 : 1;\n let iconType = colspan == 2 ? 'landscape' : 'square';\n let icon = this.casinoLobbyService.getImagePath(this.gameVariantList[i], iconType);\n if (feature.enableGameIconTheming) icon = this.casinoStyles.appendTheme(icon, this.gameVariantList?.[i]);\n this.gameVariantIconList.push({\n src: icon,\n colspan: colspan,\n });\n }\n if (this.gameVariantIconList.length === 1) {\n this.singleIconSrc = this.gameVariantIconList[0].src;\n this.gameVariantIconList = []; //never use 'undefined' as assignment value\n }\n }\n\n ctaClick() {\n if (this.isClickable) {\n if (this.isMultiIcon || this.promoIcon) {\n this.openPickGameOverlay.emit();\n } else {\n this.launchSelectedGame.emit({ game: this.gameVariantList && this.gameVariantList[0], position: this.position });\n }\n }\n setTimeout(() => {\n this.ctaClickOverlayTopAllignment();\n }, 0);\n }\n\n onGameIconError(src: any): void {\n this.defaultSrc = src;\n }\n\n ngOnDestroy() {\n if (this.jackpotDataSubscription) {\n this.jackpotDataSubscription.unsubscribe();\n }\n if (this.jackpotTickingSubscription) {\n this.jackpotTickingSubscription.unsubscribe();\n }\n }\n\n attachClickEvent() {\n if (\n this.isFreeTourney &&\n (!this.isLive ||\n (this.isLive &&\n ((this.cta && this.cta.length) || (this.cta && !this.cta.length && this.spinProgress.current == this.spinProgress.total))))\n )\n return false;\n else return true;\n }\n ctaClickOverlayTopAllignment() {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition) {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n const contentMessageElement: HTMLElement = document.querySelector('.content-messages-header-top .content-message-container')!;\n const srtc_overlay: HTMLElement = document.querySelector('.cdk-overlay-container')!;\n srtc_overlay.style.top = contentMessageElement.clientHeight + 'px';\n }\n }\n }\n}\n","<div\n class=\"casino-sr-card-widget\"\n *ngIf=\"race\"\n [ngClass]=\"[cardbackgroundimage != '' ? 'no-blur' : '', expandCard ? '' : 'collapse', race && race.beatBanker ? 'casino-beat-the-banker' : '']\"\n [ngStyle]=\"\n showimage\n ? { color: cardTextColor }\n : promobackgroundcolor != ''\n ? { color: cardTextColor, background: promobackgroundcolor }\n : { color: cardTextColor, background: cardbackgroundcolor }\n \">\n <div class=\"theme-info\" *ngIf=\"showRaceInfo\" (click)=\"emitRaceInfo()\"></div>\n <img alt=\"game-name1\" *ngIf=\"showimage\" src=\"{{ backgroundImageSrc }}\" />\n <div class=\"slot-list\" *ngIf=\"showCardMenu\">\n <div class=\"list-item time\">{{ race.startTimeAMPM }}</div>\n <div class=\"list-item red-dot\" [ngClass]=\"first ? (last ? 'red-dot-first red-dot-last' : 'red-dot-first') : last ? 'red-dot-last' : ''\"></div>\n <div class=\"list-item game-name\">{{ cardTitle }}</div>\n <div class=\"list-item theme-minus\" (click)=\"hideRaceCard()\"></div>\n </div>\n\n <div class=\"sr-card-game-title\" *ngIf=\"race.isLive\">\n <div class=\"race-title\">{{ cardTitle }}</div>\n <div class=\"expandcollaps\" [ngClass]=\"{ expanded: expandCard, collapsed: !expandCard }\" (click)=\"addOrremoveCollapseClass()\"></div>\n </div>\n <div\n class=\"sr-card-upcoming-game-title\"\n *ngIf=\"(!race.isLive && (!showRaceInfo || fromPickGameOverlay)) || (!race.isLive && showPlaceholderCard)\">\n {{ cardTitle }}\n </div>\n <div class=\"sr-card-container-top\">\n <div class=\"btn-section expandshow\" *ngIf=\"enableOptin || race.isLive || (race.subType && race.subType.toLowerCase() != 'free_play_tech')\">\n <!-- <button [disabled]=\"\n fromPickGameOverlay\n ? race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit &&\n race.ctaList.indexOf('OPTIN') > -1\n ? true\n : race.isLive\n ? race.ctaList.indexOf('OPTIN_EXPIRED') > -1 ||\n (race.subType &&\n (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech') &&\n spinCount <= 0)\n ? true\n : false\n : race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n \" class=\"btn btn-primary sr-playbtn\" (click)=\"ctaAction()\">\n {{\n race.ctaList.length === 0\n ? playNowText\n : race?.isOptinWithCoins\n ? messages.OptinWithText\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit\n ? messages.OptinLimitReached\n : race.subType && (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() ===\n 'free_play_tech')\n ? messages.Optin4Free\n : messages.Optin\n }}\n <ng-container\n *ngIf=\"race?.isOptinWithCoins && (race.ctaList.indexOf('OPTIN') > -1 || race.ctaList.indexOf('OPTIN_EXPIRED') > -1)\">\n <span class=\"sr-card-total-coin\">\n <span>{{ race?.coinsForOptin }}</span>\n <img class=\"coin-img\" [src]=\"coinImg\" alt=\"Coin Image\" />\n </span>\n </ng-container>\n </button> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [casinoDsClass]=\"'cs-srPlayBtn'\"\n [disabled]=\"\n fromPickGameOverlay\n ? race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit &&\n race.ctaList.indexOf('OPTIN') > -1\n ? true\n : race.isLive\n ? race.ctaList.indexOf('OPTIN_EXPIRED') > -1 ||\n (race.subType &&\n (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech') &&\n spinCount <= 0)\n ? true\n : false\n : race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n \"\n [cta_text]=\"prepareCardCtaText()[0]\"\n [coinsForOptin]=\"prepareCardCtaText()[1]\"\n [csDecoratorClass]=\"'sr-playbtn'\"\n [imgSrc]=\"coinImg\"\n (click)=\"ctaAction()\">\n </cs-slotrace-cta>\n </div>\n <div class=\"sr-card-game-icon\">\n <cc-slot-races-icon\n [category]=\"category\"\n [promoIcon]=\"race?.content?.promotion?.promoIcon\"\n [lobbyType]=\"lobbyType\"\n [spinProgress]=\"race?.spinProgress\"\n [gameVariantList]=\"race.gameVariantList\"\n [position]=\"position\"\n [source]=\"containerLocation\"\n [cta]=\"race.ctaList\"\n [isClickable]=\"!fromPickGameOverlay\"\n [isLive]=\"race.isLive\"\n [isFreeTourney]=\"race.subType && (race.subType.toLowerCase() == 'free_to_play' || race.subType.toLowerCase() == 'free_play_tech')\"\n (openPickGameOverlay)=\"emitPickGameOverlay()\"\n (launchSelectedGame)=\"launchGame()\">\n </cc-slot-races-icon>\n </div>\n <div class=\"sr-card-total-prize\" [ngClass]=\"{ 'sr-max-bet': displayMaxBet }\">\n <div class=\"sr-card-total-prize-box\">\n <span class=\"total-prize\">{{ messages.TotalPrizes }}</span>\n <i class=\"sr-prize-icon\" [ngClass]=\"content?.textTranslations?.sharedList[(race?.additionalParams | prize: true)]\"></i>\n <span class=\"sr-card-total-coin\" *ngIf=\"race?.additionalParams?.awardType?.toLowerCase() == 'coins'\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n </span>\n <span class=\"sr-card-total-prize-value\">\n {{ race?.additionalParams | prize: false }}\n </span>\n <ng-container *ngIf=\"coinObj?.isDisplayCoin\">\n <span class=\"theme-plus\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinObj?.coinSrc\" />\n </span>\n </ng-container>\n </div>\n\n <div class=\"sr-card-counter-bet-box\" [ngClass]=\"{ 'sr-card-counter-bet-box-max': displayMaxBet }\">\n <div class=\"time-section\">\n <span class=\"ends\">{{ race.isLive ? messages.EndsIn : messages.StartsIn }}</span>\n <div class=\"sr-card-counter\" *ngIf=\"timeSpan < 86400000 || !race.isLive; else elseblock\">\n {{ timeSpan | timeformat }}\n </div>\n <ng-template #elseblock>\n <div class=\"sr-card-counter\">\n {{ Days }} <span>{{ messages.Days }}</span>\n </div>\n </ng-template>\n </div>\n <span\n *ngIf=\"\n !race.subType ||\n !(race.subType && (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech'))\n \">\n <div class=\"bet-section\">\n <span class=\"min-bet\" *ngIf=\"!enableMaxBet\">{{ messages.MinimumBet }}</span>\n <div class=\"src-card-min-bet\" *ngIf=\"!enableMaxBet\">\n {{ race?.criteriaDtls?.total | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}\n </div>\n <span class=\"min-bet\" *ngIf=\"enableMaxBet\">{{ messages.MinBet }}</span>\n <div class=\"src-card-min-bet\" *ngIf=\"enableMaxBet\">\n {{ race?.criteriaDtls?.min | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}\n </div>\n </div>\n <div class=\"bet-section\" *ngIf=\"displayMaxBet\">\n <span class=\"min-bet\">{{ messages.MaxBet }}</span>\n <div class=\"src-card-min-bet\">\n {{ race?.criteriaDtls?.max | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}\n </div>\n </div>\n </span>\n <span *ngIf=\"(race.subType && race.subType.toLowerCase() === 'free_to_play') || race.subType.toLowerCase() === 'free_play_tech'\">\n <div class=\"bet-section\">\n <span class=\"min-bet\">{{ messages.MinBet }}</span>\n <div class=\"src-card-min-bet\">\n {{ messages.Free2Play }}\n </div>\n </div>\n </span>\n </div>\n </div>\n </div>\n\n <div\n class=\"casino-beat-the-banker-container\"\n *ngIf=\"race && race.beatBanker\"\n [ngStyle]=\"{ background: bottombackground }\"\n [ngClass]=\"[isprogressBarEnabled && !(race.ctaList.indexOf('OPTIN') > -1) ? 'btb-progress-bar' : '']\">\n <div class=\"scrore-text\">{{ messages.beatBankerTitle }}</div>\n\n <div class=\"casino-beat-the-banker-progress-bar\">\n <mat-slider\n class=\"casino-beat-the-banker-progress-bar-color\"\n *ngIf=\"isprogressBarEnabled && !(race.ctaList.indexOf('OPTIN') > -1 || race.ctaList.indexOf('OPTIN_EXPIRED') > -1)\"\n [disabled]=\"true\"\n [max]=\"minPoints\">\n <input matSliderThumb [value]=\"currentPoints\" />\n </mat-slider>\n </div>\n <div\n class=\"freespins-count\"\n *ngIf=\"isprogressBarEnabled && !(race.ctaList.indexOf('OPTIN') > -1 || race.ctaList.indexOf('OPTIN_EXPIRED') > -1)\">\n {{ currentPoints }}<span>/{{ minPoints }} Pts</span>\n </div>\n <div\n class=\"freespins-count\"\n *ngIf=\"!(isprogressBarEnabled && !(race.ctaList.indexOf('OPTIN') > -1 || race.ctaList.indexOf('OPTIN_EXPIRED') > -1))\">\n <span>{{ minPoints }} Pts</span>\n </div>\n </div>\n <div class=\"sr-card-progress-bar\" *ngIf=\"race.isLive\">\n <mat-slider class=\"sr-progress-bar-color\" [disabled]=\"true\" [max]=\"sliderMaxValue\">\n <input matSliderThumb [value]=\"progressValue\" />\n </mat-slider>\n </div>\n <div\n class=\"sr-card-container-bottom\"\n [ngStyle]=\"{ background: bottombackground }\"\n [ngClass]=\"{ 'optin-limit': race.subType && race.subType.toLowerCase() === 'free_play_tech' }\">\n <div class=\"pleyer-count\">\n <span class=\"cs-sr-players\">{{ messages.PlayerTitle }}</span>\n <div class=\"sr-card-player-count\">\n {{\n race.subType && race.subType.toLowerCase() === 'free_play_tech' && race.optinLimit !== 0\n ? playerCount + '/' + race.optinLimit\n : playerCount\n }}\n </div>\n </div>\n <div class=\"time-sec\">\n <span class=\"duration\">{{ messages.Duration }}</span>\n <div class=\"sr-card-race-duration\" [innerHtml]=\"slotRaceDuration\"></div>\n </div>\n <div class=\"spin-section\">\n <span class=\"spin-limit\">\n {{\n race.spinProgress && race.spinProgress.current > 0\n ? race.subType && race.subType.toLowerCase() === 'free_play_tech'\n ? messages.ChipsLeft\n : messages.SpinsLeft\n : race.subType && race.subType.toLowerCase() === 'free_play_tech'\n ? messages.ChipsLimit\n : messages.SpinsLimit\n }}\n </span>\n <div class=\"sr-card-spins-count\">{{ spinCount }}</div>\n </div>\n\n <div class=\"btn-section\" *ngIf=\"enableOptin || race.isLive || (race.subType && race.subType.toLowerCase() != 'free_play_tech')\">\n <!-- <button *ngIf=\"\n race.isNotify || race.isLive || !enableRaceNotification || (!race.isLive && !(race.ctaList.length == 0) && enableRaceNotification)\n \" [disabled]=\"\n fromPickGameOverlay\n ? race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit &&\n race.ctaList.indexOf('OPTIN') > -1\n ? true\n : race.isLive\n ? race.ctaList.indexOf('OPTIN_EXPIRED') > -1 ||\n (race.subType &&\n (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech') &&\n spinCount <= 0)\n ? true\n : false\n : race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n \" class=\"btn btn-primary sr-playbtn\" (click)=\"ctaAction()\">\n {{\n race.ctaList.length === 0\n ? playNowText\n : race?.isOptinWithCoins\n ? messages.OptinWithText\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit\n ? messages.OptinLimitReached\n : race.subType && (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() ===\n 'free_play_tech')\n ? messages.Optin4Free\n : messages.Optin\n }}\n <ng-container\n *ngIf=\"race?.isOptinWithCoins && (race.ctaList.indexOf('OPTIN') > -1 || race.ctaList.indexOf('OPTIN_EXPIRED') > -1)\">\n <span class=\"sr-card-total-coin\">\n <span>{{ race?.coinsForOptin }}</span>\n <img class=\"coin-img\" [src]=\"coinImg\" alt=\"Coin Image\" />\n </span>\n </ng-container>\n </button> -->\n @if (race.isNotify || race.isLive || !enableRaceNotification || (!race.isLive && !(race.ctaList.length == 0) && enableRaceNotification)) {\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [casinoDsClass]=\"'cs-srPlayBtn'\"\n [disabled]=\"\n fromPickGameOverlay\n ? race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n : race.subType &&\n race.subType.toLowerCase() === 'free_play_tech' &&\n race.optinLimit !== 0 &&\n playerCount === race.optinLimit &&\n race.ctaList.indexOf('OPTIN') > -1\n ? true\n : race.isLive\n ? race.ctaList.indexOf('OPTIN_EXPIRED') > -1 ||\n (race.subType &&\n (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech') &&\n spinCount <= 0)\n ? true\n : false\n : race.ctaList.indexOf('OPTIN') > -1\n ? false\n : true\n \"\n [cta_text]=\"prepareCardCtaText()[0]\"\n [coinsForOptin]=\"prepareCardCtaText()[1]\"\n [csDecoratorClass]=\"'sr-playbtn'\"\n [imgSrc]=\"coinImg\"\n (click)=\"ctaAction()\">\n </cs-slotrace-cta>\n }\n </div>\n\n <div\n class=\"btn btn-primary notification-btn\"\n *ngIf=\"!race.isNotify && enableRaceNotification && !race.isLive && !(race.ctaList.indexOf('OPTIN') > -1)\"\n [ngClass]=\"[race.notificationStatus ? slotRacesSharedList.notificationBellOnIcon : slotRacesSharedList.notificationBellOffIcon]\"\n (click)=\"onNotificationClick(!race.notificationStatus)\"></div>\n </div>\n</div>\n","import { CurrencyPipe, NgClass, NgIf, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSliderModule } from '@angular/material/slider';\n\nimport {\n CacheManagerService,\n CasinoCoreGamelaunchService,\n CasinoLobbyService,\n CasinoManager,\n ConfigProviderService,\n DesignSystemEnablerService,\n GameLaunch,\n OpenLoginDialog,\n Race,\n SitecoreContent,\n SlotRacesLive,\n SlotRacesResponseError,\n SlotRacesService,\n SlotRacesTrackingService,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\nimport { ClaimsService, MessageQueueService, UserService } from '@frontend/vanilla/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { CoinEconomyConfirmPopupComponent } from '../../coin-economy-confirm-popup/coin-economy-confirm-popup.component';\nimport { NotificationPopUpComponent } from '../../notification-popup/notification-popup.component';\nimport { PrizePipe } from '../../shared/prize.pipe';\nimport { TimeFormatPipe } from '../../shared/time-format.pipe';\nimport { TournamentIconComponent } from '../../tournament-icon/tournament-icon.component';\n\n@Component({\n selector: 'cc-slot-race-card',\n templateUrl: 'card.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n NgIf,\n NgClass,\n NgStyle,\n TournamentIconComponent,\n MatSliderModule,\n CurrencyPipe,\n PrizePipe,\n TimeFormatPipe,\n SlotRaceCtaComponent,\n DecoratorClassDirective,\n ],\n providers: [CurrencyPipe],\n})\nexport class SlotRaceCardComponent implements OnInit, OnDestroy, OnChanges {\n @Input() race: Race;\n @Input() coinImg: string;\n @Input() selectedOption: string;\n // @Input() sourceInfo:SourceInfo;\n @Input() showRaceInfo: boolean = false;\n @Input() showCardMenu: boolean = false;\n @Input() first: boolean;\n @Input() last: boolean;\n @Input() position: number;\n @Input() showPlaceholderCard: boolean = false;\n @Input() lobbyType: string;\n @Input() category: any;\n @Input() fromPickGameOverlay: boolean = false;\n @Input() firstItem: boolean = false;\n @Input() targetedPlayerCount: number;\n @Input() enableOptin: boolean;\n @Input() raceNotificationStatus: boolean = false;\n @Output() openRaceInfo = new EventEmitter<Race>();\n @Output() closeRaceInfo = new EventEmitter<any>();\n @Output() hideCard = new EventEmitter();\n @Output() gameLaunched = new EventEmitter();\n @Output() openPickGameOverlay = new EventEmitter();\n @Output() closePickGameOverlay = new EventEmitter<any>();\n @Output() openNotificationOverlay = new EventEmitter();\n notificationStatus: boolean;\n timeSpan: number = 0;\n Days: number = 0;\n millisec: number = 86400000;\n durationdays: number;\n sliderMaxValue: number;\n bottombackground: string;\n progressValue: number = 0;\n duration: number;\n gameIconSrc: string;\n backgroundImageSrc: string;\n cardbackgroundimage: string;\n cardbackgroundcolor: string;\n optinExpiryTimeOut: any;\n cardTextColor: string;\n currencyCode: string;\n spinsText: string;\n spinsCount: number = 0;\n forceOptinSubscription: any;\n forceCoinBalanceSubscription: Subscription;\n playerCount: number;\n spinCount: number;\n isprogressBarEnabled: boolean;\n showCoinBalancePopup: boolean = false;\n optInSubscription: Subscription;\n optInWithCoinsSubscription: Subscription;\n timerSubscription: Subscription;\n dataUpdateSubscription: Subscription;\n notificationSubscription: Subscription;\n raceNotifySubscription: Subscription;\n messages: { [item: string]: string } = {};\n slotRacesSharedList: { [item: string]: string } = {};\n contentSubscription: Subscription;\n notificationStatusSubcription: Subscription;\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n showimage: boolean = true;\n activeCategory: string;\n displayMaxBet: boolean = false;\n enableMaxBet: boolean = false;\n isNotify: boolean;\n playNowText: string;\n cardTitle: string;\n containerLocation: string;\n promobackgroundimage: string;\n promobackgroundcolor: string;\n isSubCategory: boolean;\n expandCard: boolean;\n enableBetterVisualization: boolean;\n enableRaceNotification: boolean;\n slotRacesConfig: any;\n currentPoints: any;\n minPoints: any;\n configs: any = {};\n beatBankerPromoIcon: string;\n private destroy$ = new Subject<void>();\n coinObj: any;\n showToasterMessage: boolean;\n isLegacy: boolean = false;\n\n constructor(\n private slotRacesService: SlotRacesService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private claimsService: ClaimsService,\n private casinoManager: CasinoManager,\n private messageQueue: MessageQueueService,\n private user: UserService,\n private openLoginDialog: OpenLoginDialog,\n private configProviderService: ConfigProviderService,\n private slotRacesTracking: SlotRacesTrackingService,\n private cacheManager: CacheManagerService,\n private dialog: MatDialog,\n private casinoLobbyService: CasinoLobbyService,\n private dsEnablerService: DesignSystemEnablerService,\n ) {}\n\n ngOnInit() {\n this.configs = this.configProviderService.provideSlotRacesConfig();\n this.isSubCategory = this.category?.categoryInfo?.subcategoryid ? true : false;\n this.activeCategory = this.category && this.category.categoryInfo && this.category.categoryInfo.categoryid;\n this.currencyCode = (this.race?.additionalParams && this.race?.additionalParams.currency) || this.claimsService.get('currency')!;\n this.currentPoints = parseFloat(this.race?.beatBanker?.currPoints);\n this.minPoints = this.race?.beatBanker?.minPoints;\n this.sliderMaxValue = this.race?.endDate.getTime() - this.race?.startDate.getTime();\n this.playerCount = this.race?.targetedPlayerCount;\n this.spinCount = this.race?.spinProgress && this.race?.spinProgress.total;\n this.cardTitle =\n this.race?.gameVariantList && this.race?.gameVariantList.length > 1\n ? this.race.content?.promotion?.promoName\n ? this.race.content.promotion.promoName\n : this.race.gameId\n : this.race?.content?.promotion?.promoName?.startsWith('#')\n ? this.race.content.promotion.promoName.replace('#', '').trim()\n : this.race.gameId;\n this.containerLocation = this.showRaceInfo ? 'Page Conatiner' : 'Overlay';\n this.containerLocation = this.containerLocation.concat('|Slot Races');\n this.slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n this.enableBetterVisualization = this.slotRacesConfig.enableBetterVisualization;\n this.enableRaceNotification = this.slotRacesConfig.enableRaceNotification;\n this.setIconSrc();\n this.forceOptin();\n this.subscribeToDataUpdates();\n this.initializeTimerCountdown();\n this.setOptinExpiryTimeOut();\n this.subscribeToNotifyStatus();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n this.slotRacesSharedList = content && content.textTranslations ? content.textTranslations.sharedList : {};\n this.playNowText =\n this.messages && (this.race.gameVariantList && this.race.gameVariantList.length > 1 ? this.messages.PickGame : this.messages.PlayNow);\n this.duration = Math.ceil(this.sliderMaxValue / (1000 * 60));\n this.coinObject();\n this.updateCardSitecoreData();\n this.forceCoinRaceBalance();\n });\n this.enableMaxBet = this.configProviderService.provideSlotRacesConfig().enableMaxBet;\n this.displayMaxBet = this.enableMaxBet && this.race.criteriaDtls.max;\n this.isLegacy = !this.dsEnablerService.isEnabled();\n if (!this.coinImg) this.coinImg = this.content?.coinEconomy?.image?.src;\n }\n\n private subscribeToNotifyStatus() {\n this.notificationStatusSubcription = this.slotRacesService.notifyObservable.subscribe((response: any) => {\n if (\n !(this.race?.ctaList.indexOf('OPTIN') > -1) &&\n response &&\n this.race?.promoId === response?.promoId &&\n this.race?.slotUniqueId === response?.slotUniqueId\n ) {\n this.race.notificationStatus = response.status;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.firstItem) {\n this.expandCard = true;\n }\n if (changes?.targetedPlayerCount?.currentValue) {\n this.playerCount = changes.targetedPlayerCount.currentValue;\n }\n this.coinObject();\n this.subscribeToNotifyStatus();\n if (!this.coinImg) this.coinImg = this.content?.coinEconomy?.image?.src;\n }\n coinObject() {\n this.coinObj = this.slotRacesService.bindCoinImg(this.race, this.coinImg);\n if (this.coinObj?.isDisplayCoin) this.coinObj.coinSrc = this.content?.coinEconomy?.image?.src;\n }\n\n get slotRaceDuration() {\n if (this.duration < 1440) {\n return `${this.duration} <span>${this.messages.Minutes}</span>`;\n } else {\n const days = Math.floor(this.duration / 1440);\n return `${days} <span>${this.messages.Days}</span>`;\n }\n }\n\n ngOnDestroy() {\n if (this.optinExpiryTimeOut) {\n clearTimeout(this.optinExpiryTimeOut);\n }\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n }\n if (this.forceOptinSubscription) {\n this.forceOptinSubscription.unsubscribe();\n }\n this.forceCoinBalanceSubscription?.unsubscribe();\n if (this.optInSubscription) {\n this.optInSubscription.unsubscribe();\n }\n if (this.optInWithCoinsSubscription) {\n this.optInWithCoinsSubscription.unsubscribe();\n }\n if (this.dataUpdateSubscription) {\n this.dataUpdateSubscription.unsubscribe();\n }\n if (this.notificationSubscription) {\n this.notificationSubscription.unsubscribe();\n }\n if (this.notificationStatusSubcription) {\n this.notificationStatusSubcription.unsubscribe();\n }\n this.destroy$.complete();\n }\n\n setIconSrc(): void {\n this.gameIconSrc = this.casinoLobbyService.getImagePath(this.race?.gameVariantList[0], 'square');\n }\n\n ctaAction(): void {\n this.messageQueue.clear();\n\n if (this.race.ctaList.indexOf('OPTIN') > -1) {\n if (this.race?.isOptinWithCoins) {\n this.slotRacesTracking.track(\n 'click',\n this.race.gameId,\n this.activeCategory,\n this.messages?.OptinWithText ? this.messages?.OptinWithText + ' coin cta' : 'Optin With coin cta',\n );\n } else {\n const ctaText = this.getCTATextBasedOnRace(this.race);\n this.slotRacesTracking.track('click', this.race.gameId, this.activeCategory, ctaText + ' cta');\n }\n\n if (!this.user.isAuthenticated) {\n const race: any = this.race;\n race.lobbyType = this.lobbyType;\n if (race?.isOptinWithCoins) {\n sessionStorage.setItem('forceCoinBalance', JSON.stringify(race));\n } else {\n sessionStorage.setItem('ForceOptin', JSON.stringify(race));\n }\n this.openLoginDialog.open({ loginMessageKey: 'OptInPromotion' });\n if (!this.showRaceInfo) {\n this.closeRaceInfo.emit();\n }\n } else {\n if (this.race?.isOptinWithCoins) {\n if (!this.showCoinBalancePopup) {\n this.checkCoinBalace();\n }\n } else {\n this.optin();\n }\n }\n } else {\n if (this.race && this.race.gameVariantList && this.race.gameVariantList.length > 1 && !this.fromPickGameOverlay) {\n this.emitPickGameOverlay('cta');\n } else {\n this.launchGame();\n }\n }\n }\n\n getCTATextBasedOnRace(race: any) {\n if (race.subType && race.subType.toLowerCase() === 'free_play_tech' && race.optinLimit !== 0 && this.playerCount === race.optinLimit) {\n return this.messages.OptinLimitReached;\n }\n if (race.subType && (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech')) {\n return this.messages.Optin4Free;\n } else {\n return this.messages.Optin;\n }\n }\n closePopup(): void {\n this.showToasterMessage = false;\n }\n\n checkCoinBalace() {\n this.showCoinBalancePopup = true;\n if (this.race.isOptinWithCoins) {\n this.slotRacesService.GetCoinBalnce().subscribe(\n (coinBalRes: any) => {\n this.showConfirmToaster(coinBalRes);\n },\n () => {\n this.showCoinBalancePopup = false;\n },\n );\n }\n }\n\n showConfirmToaster(coinBalRes: any) {\n if ((this?.race?.coinsForOptin ?? 0) <= coinBalRes?.balance) {\n this.openConfirmToasterDialog(true);\n } else {\n this.showCoinBalancePopup = false;\n this.openConfirmToasterDialog(false);\n }\n }\n\n openConfirmToasterDialog(showConfirmPopup: boolean): void {\n const requiredModalData = {\n messages: this.messages,\n showConfirmPopup: showConfirmPopup,\n };\n if (showConfirmPopup) {\n this.slotRacesTracking.track('load', 'optin with coin', this.activeCategory + ',' + this.race.gameId, this.messages?.Purchase);\n } else {\n this.slotRacesTracking.track('load', 'optin with coin', this.activeCategory + ',' + this.race.gameId, 'oops! toaster popup');\n }\n\n const dialogRef = this.dialog.open(CoinEconomyConfirmPopupComponent, {\n data: requiredModalData,\n panelClass: 'casino-sr-confirm-toaster',\n });\n\n dialogRef.afterClosed().subscribe((event: any) => {\n this.showCoinBalancePopup = false;\n this.confirmPopupTracking(event?.type);\n if (event?.type == 'confirm') {\n this.optin(true);\n } else {\n this.slotRacesService.forceCoinBalancepublisher.next({});\n }\n });\n }\n\n confirmPopupTracking(ctaType: string) {\n if (ctaType == 'confirm') {\n this.slotRacesTracking.track('click', 'optin with coin', this.activeCategory + ',' + this.race.gameId, this.messages?.Confrim + ' cta');\n } else if (ctaType == 'close') {\n this.slotRacesTracking.track('close', 'optin with coin', this.activeCategory + ',' + this.race.gameId, 'confirmation popup');\n } else if (ctaType == 'cancel') {\n this.slotRacesTracking.track('click', 'optin with coin', this.activeCategory + ',' + this.race.gameId, this.messages?.Cancel + ' cta');\n } else if (ctaType == 'toasterClose') {\n this.slotRacesTracking.track('close', 'optin with coin', this.activeCategory + ',' + this.race.gameId, 'oops! toaster popup');\n }\n }\n\n launchGame(): void {\n const colorCode = this.cardbackgroundimage || (!this.cardbackgroundcolor && !this.cardbackgroundimage) ? 'Image' : this.cardbackgroundcolor;\n const containerDescription: string = 'Highlighted|' + colorCode;\n const game = this.cacheManager.getGameToStickersMap();\n const gameSticker = game[this.race.gameVariantList && this.race.gameVariantList[0]];\n let isNewGame = false;\n if (gameSticker && gameSticker.indexOf('New') > -1) {\n isNewGame = true;\n }\n this.gameLaunched.emit();\n const gameData = {\n gameId: this.race.gameVariantList && this.race.gameVariantList[0],\n gameVariantName: this.race.gameId,\n gameContainerDescription: containerDescription,\n gameContainerLocation: this.containerLocation,\n isSignPostedGame: isNewGame,\n lobbyType: this.lobbyType,\n };\n const launchModel = new GameLaunch();\n launchModel.game = gameData;\n launchModel.isTouch = this.casinoManager.isTouch();\n launchModel.gamePosition = this.position;\n launchModel.categoryType = this.activeCategory;\n launchModel.gameLaunchedFrom = 'slotraces';\n launchModel.gameSection = 'slotraces';\n launchModel.returnUrl = window.location.href;\n launchModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n launchModel.promoId = this.race?.promoId;\n launchModel.slotUniqueId = this.race?.slotUniqueId;\n this.gameLaunchService.launchGame(launchModel);\n }\n\n forceOptin(): void {\n this.forceOptinSubscription = this.slotRacesService.forceRace.subscribe((response: { race: Race }) => {\n if (response.race && response.race.promoId == this.race.promoId && response.race.slotUniqueId == this.race.slotUniqueId) {\n const index = this.race.ctaList.findIndex((i) => i === 'OPTIN');\n if (!this.race.isLive && this.enableRaceNotification && !this.race.isNotify) {\n this.openNotificationOverlay.emit(this.race);\n }\n if (index > -1) {\n this.race.ctaList.splice(index, 1);\n }\n this.slotRacesService.forcRacepublisher.next({});\n }\n });\n }\n\n forceCoinRaceBalance(): void {\n this.forceCoinBalanceSubscription = this.slotRacesService.forceCoinBalanceObs.subscribe((coinBalRes: any) => {\n if (\n coinBalRes &&\n coinBalRes.race &&\n coinBalRes.race.promoId == this.race.promoId &&\n coinBalRes.race.slotUniqueId == this.race.slotUniqueId &&\n coinBalRes?.coinBal?.balance\n ) {\n this.showConfirmToaster(coinBalRes.coinBal);\n }\n });\n }\n addOrremoveCollapseClass() {\n if (this.expandCard) {\n this.slotRacesTracking.track(\n 'Collapse (-) - CTA Clicked',\n this.race.gameId,\n this.activeCategory,\n 'User clicked on Collapse(-) to see the slot race details',\n );\n } else {\n this.slotRacesTracking.track(\n 'Expand (+) - CTA Clicked',\n this.race.gameId,\n this.activeCategory,\n 'User clicked on Expand(+) to see the slot race details',\n );\n }\n this.expandCard = !this.expandCard;\n }\n\n optin(coinBalanceOptin: boolean = false): void {\n this.optInSubscription = this.slotRacesService\n .updateOptinStatus(this.race.promoId, this.race.slotUniqueId, this.race.coinsForOptin)\n .subscribe(\n () => {\n const index = this.race.ctaList.findIndex((i) => i === 'OPTIN');\n this.race.ctaList.splice(index, 1);\n if (!this.race.isLive && this.enableRaceNotification && !this.race.isNotify) {\n this.openNotificationOverlay.emit(this.race);\n }\n if (coinBalanceOptin) {\n this.slotRacesService.forceCoinBalancepublisher.next({});\n }\n },\n (error: SlotRacesResponseError) => {\n if (coinBalanceOptin) {\n this.slotRacesService.forceCoinBalancepublisher.next({});\n }\n this.slotRacesService.addErrorMessage(error.errorCode);\n this.closePickGameOverlay.emit({ errorCode: error.errorCode });\n this.closeRaceInfo.emit({ errorCode: error.errorCode });\n },\n );\n }\n\n // optin expiry\n setOptinExpiryTimeOut(): void {\n if (this.race.ctaList.indexOf('OPTIN_EXPIRED') < 0) {\n const expiryTime: number = this.race && this.race.optinExpiryDate && this.race.optinExpiryDate.getTime();\n if (expiryTime && expiryTime < this.race.endDate.getTime() && expiryTime > Date.now()) {\n this.optinExpiryTimeOut = setTimeout(() => {\n const optinIndex = this.race.ctaList.indexOf('OPTIN');\n if (optinIndex > -1) {\n this.race.ctaList.splice(optinIndex, 1, 'OPTIN_EXPIRED');\n }\n }, expiryTime - Date.now());\n } else if (expiryTime && expiryTime < Date.now()) {\n const index = this.race.ctaList.indexOf('OPTIN');\n if (index > -1) {\n this.race.ctaList.splice(index, 1, 'OPTIN_EXPIRED');\n }\n }\n } else {\n if (this.optinExpiryTimeOut) {\n clearTimeout(this.optinExpiryTimeOut);\n }\n }\n }\n\n initializeTimerCountdown(): void {\n if (this.race.isLive) {\n this.timeSpan = this.race.endDate.getTime() - Date.now();\n if (this.timeSpan == 0) {\n this.race.isLive = false;\n this.slotRacesService.updateRacesArrays();\n }\n } else {\n this.timeSpan = this.race.startDate.getTime() - Date.now();\n }\n this.progressValue = Date.now() - this.race.startDate.getTime();\n this.timerSubscription = this.slotRacesService.globalTimerObservable.subscribe((response: any) => {\n if (this.timeSpan > 1000) {\n if (response && response.timerInterval) {\n if (this.race.isLive) {\n this.timeSpan = this.race.endDate.getTime() - Date.now();\n if (this.timeSpan > this.millisec) {\n this.Days = this.timeSpan / (1000 * 60 * 60 * 24);\n this.Days = Math.floor(this.Days);\n }\n } else {\n this.timeSpan = this.race.startDate.getTime() - Date.now();\n }\n this.progressValue = Date.now() - this.race.startDate.getTime();\n }\n } else {\n this.race.isLive = false;\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n }\n this.slotRacesService.updateRacesArrays();\n }\n });\n }\n\n updateCardSitecoreData(): void {\n this.bottombackground = this.messages.CardBottomColor ? this.messages.CardBottomColor : '';\n this.promobackgroundimage = this.race?.content?.promotion?.promoBackgroundImage?.src ?? '';\n this.promobackgroundcolor = this.race?.content?.promotion?.promoBackgroundColor ?? '';\n this.cardbackgroundimage = this.messages?.CardBackgroundImage ?? '';\n this.cardbackgroundcolor = this.messages?.CardBackgroundColor ?? '';\n this.cardTextColor = this.messages.CardTextColor ? this.messages.CardTextColor : '';\n if (this.promobackgroundimage) {\n this.showimage = true;\n this.backgroundImageSrc = this.promobackgroundimage;\n } else if (this.promobackgroundcolor) {\n this.showimage = false;\n } else if (this.cardbackgroundimage) {\n this.showimage = true;\n this.backgroundImageSrc = this.cardbackgroundimage;\n } else if (this.cardbackgroundcolor) {\n this.showimage = false;\n } else {\n this.showimage = true;\n this.backgroundImageSrc = this.casinoLobbyService.getImagePath(this.race?.gameVariantList[0], 'landscape');\n }\n }\n\n emitRaceInfo() {\n this.slotRacesTracking.track(\n 'Quick Info Overlay (I) - Clicked',\n this.race.gameId,\n this.activeCategory,\n 'User Clicked on (i) to open quick info overlay',\n );\n this.openRaceInfo.emit(this.race);\n setTimeout(() => {\n this.cardOverlayTopAllignment();\n }, 0);\n }\n\n hideRaceCard(): void {\n this.hideCard.emit();\n }\n\n subscribeToDataUpdates(): void {\n this.dataUpdateSubscription = this.slotRacesService.liveRacesData.subscribe((liveRaces: SlotRacesLive) => {\n if (liveRaces && liveRaces.liveNow && liveRaces.liveNow.length) {\n const updatedRace: Race = liveRaces.liveNow.find(\n (r) => r.promoId === this.race.promoId && r.slotUniqueId === this.race.slotUniqueId,\n )!;\n if (updatedRace) {\n this.isprogressBarEnabled = this.race.isLive && this.user.isAuthenticated && this.race.ctaList.indexOf('OPTIN_EXPIRED') < 0;\n this.playerCount = updatedRace.targetedPlayerCount;\n this.currentPoints = parseFloat(updatedRace?.beatBanker?.currPoints);\n this.spinCount =\n updatedRace.spinProgress && updatedRace.spinProgress.total && updatedRace.spinProgress.current > 0\n ? updatedRace.spinProgress.total - updatedRace.spinProgress.current\n : updatedRace.spinProgress.total;\n this.race.ctaList = updatedRace.ctaList;\n }\n }\n });\n }\n\n cardOverlayTopAllignment() {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition) {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n const contentMessageElement: HTMLElement = document.querySelector('.content-messages-header-top .content-message-container')!;\n const srtc_overlay: HTMLElement = document.querySelector('.cdk-overlay-container')!;\n srtc_overlay.style.top = contentMessageElement.clientHeight + 'px';\n }\n }\n }\n onNotificationClick(status: boolean) {\n this.notificationSubscription = this.slotRacesService.updateNotificationStatus(this.race.promoId, this.race.slotUniqueId, status).subscribe(\n (response: any) => {\n if (response) {\n this.race.notificationStatus = status;\n this.slotRacesService.setNotifyStatus(this.race.promoId, this.race.slotUniqueId, status);\n this.openDialog(this.race.notificationStatus);\n }\n },\n (error: SlotRacesResponseError) => {\n this.slotRacesService.addErrorMessage(error.errorCode);\n },\n );\n }\n openDialog(dialogResult: any): void {\n const requiredModalData = {\n messages: this.messages,\n status: dialogResult,\n };\n const dialogRef = this.dialog.open(NotificationPopUpComponent, {\n width: '790px',\n data: requiredModalData,\n panelClass: 'casino-sr-notification-toaster',\n });\n\n dialogRef.afterClosed().subscribe(() => {\n // console.log('The dialog was closed');\n });\n }\n\n emitPickGameOverlay(actionLocation: string = 'promo icon') {\n this.slotRacesTracking.track(\n `Pick Game - ${actionLocation} clicked`,\n this.race && this.race.content && this.race.content.promotion && this.race.content.promotion.promoName,\n this.activeCategory,\n `User opened the pick-game overlay from the ${actionLocation} for the Slots Race`,\n );\n this.openPickGameOverlay.emit(this.race);\n }\n\n prepareCardCtaText(): [string, number | undefined] {\n // race.ctaList.length === 0\n // ? playNowText\n // : race?.isOptinWithCoins\n // ? messages.OptinWithText\n // : race.subType &&\n // race.subType.toLowerCase() === 'free_play_tech' &&\n // race.optinLimit !== 0 &&\n // playerCount === race.optinLimit\n // ? messages.OptinLimitReached\n // : race.subType && (race.subType.toLowerCase() === 'free_to_play' || race.subType.toLowerCase() === 'free_play_tech')\n // ? messages.Optin4Free\n // : messages.Optin\n if (this.race?.isOptinWithCoins && (this.race.ctaList.indexOf('OPTIN') > -1 || this.race.ctaList.indexOf('OPTIN_EXPIRED') > -1)) {\n return ['', this.race?.coinsForOptin];\n } else {\n // return stringed_text;\n this.coinImg = this.content?.coinEconomy?.image?.src;\n return [\n this.race.ctaList.length === 0\n ? this.playNowText\n : this.race?.isOptinWithCoins\n ? this.messages.OptinWithText\n : this.race.subType &&\n this.race.subType.toLowerCase() === 'free_play_tech' &&\n this.race.optinLimit !== 0 &&\n this.playerCount === this.race.optinLimit\n ? this.messages.OptinLimitReached\n : this.race.subType &&\n (this.race.subType.toLowerCase() === 'free_to_play' || this.race.subType.toLowerCase() === 'free_play_tech')\n ? this.messages.Optin4Free // need to check for this at runtim, and adjust type acordingly\n : this.messages.Optin,\n undefined,\n ];\n }\n }\n}\n","import { NgClass } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { DesignSystemEnablerService, Race, SitecoreContent, SlotRacesResponseError, SlotRacesService } from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\nimport { Subscription } from 'rxjs';\n\nimport { SlotRaceCardComponent } from '../cards-wrapper/card/card.component';\nimport { NotificationPopUpComponent } from '../notification-popup/notification-popup.component';\n\n@Component({\n selector: 'cc-notification-overlay',\n templateUrl: 'notification-overlay.component.html',\n standalone: true,\n imports: [SlotRaceCardComponent, NgClass, SlotRaceCtaComponent, DecoratorClassDirective],\n})\nexport class NotificationOverlayComponent implements OnInit, OnDestroy {\n race: Race;\n lobbyType: string;\n category: any;\n notificationSubscription: Subscription;\n contentSubscription: Subscription;\n raceNotificationStatus: boolean;\n messages: { [item: string]: string } = {};\n slotRacesSharedList: { [item: string]: string } = {};\n isLegacy: boolean = false;\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n constructor(\n private dialogRef: MatDialogRef<NotificationOverlayComponent>,\n @Inject(MAT_DIALOG_DATA) data: any,\n private slotRacesService: SlotRacesService,\n private dialog: MatDialog,\n private dsEnablerService: DesignSystemEnablerService,\n ) {\n this.race = data.race;\n this.category = data.category;\n this.lobbyType = data.lobbyType;\n }\n\n ngOnInit() {\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n this.slotRacesSharedList = content && content.textTranslations ? content.textTranslations.sharedList : {};\n });\n this.isLegacy = !this.dsEnablerService.isEnabled();\n }\n close(dialogResult: any = {}) {\n this.dialogRef.close(dialogResult);\n this.openDialog(dialogResult);\n }\n notificationCheck(value: boolean) {\n this.notificationSubscription = this.slotRacesService.updateNotificationStatus(this.race.promoId, this.race.slotUniqueId, value).subscribe(\n (response: any) => {\n if (response) {\n this.raceNotificationStatus = value;\n this.slotRacesService.setNotifyStatus(this.race.promoId, this.race.slotUniqueId, value);\n this.close(value);\n }\n },\n (error: SlotRacesResponseError) => {\n this.slotRacesService.addErrorMessage(error.errorCode);\n this.close();\n },\n );\n }\n\n openDialog(dialogResult: any): void {\n const requiredModalData = {\n messages: this.messages,\n status: dialogResult,\n };\n const dialogRef = this.dialog.open(NotificationPopUpComponent, {\n width: '790px',\n data: requiredModalData,\n panelClass: 'casino-sr-notification-toaster',\n });\n\n dialogRef.afterClosed().subscribe(() => {});\n }\n ngOnDestroy() {\n if (this.notificationSubscription) {\n this.notificationSubscription.unsubscribe();\n }\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"casino-lobby-container-main\">\n <div class=\"casino-sr-notification-message\">\n <div class=\"notification-body\">\n <div class=\"col-md-12 notification-header\">\n <div>{{ messages.NotificationMsgHeader }}</div>\n <div class=\"notification-close\" (click)=\"close()\"><i class=\"theme-ex\"></i></div>\n </div>\n <div class=\"col-md-12 notification-footer\">\n <cc-slot-race-card\n [race]=\"race\"\n [category]=\"category\"\n [lobbyType]=\"lobbyType\"\n [position]=\"0\"\n [raceNotificationStatus]=\"raceNotificationStatus\">\n </cc-slot-race-card>\n </div>\n <div class=\"col-md-12 notification-text\">\n <p>{{ messages.NotificationDescription }}</p>\n <p class=\"small-text\">{{ messages.notificationDiscriptionTwo }}</p>\n </div>\n\n <div class=\"col-md-12 notification-btn-container\">\n <p>\n <!-- <button class=\"no btn btn-md btn-light\" (click)=\"notificationCheck(false)\">\n {{ messages.NotificationOFF }} <i class=\"alert-icon\"\n [ngClass]=\"slotRacesSharedList.notificationBellOffIcon\"></i>\n </button>\n <button class=\"yes btn btn-md btn-primary\" (click)=\"notificationCheck(true)\">\n {{ messages.NotificationON }} <i class=\"alert-icon\"\n [ngClass]=\"slotRacesSharedList.notificationBellOnIcon\"></i>\n </button> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'secondary'\"\n [variant]=\"'filled'\"\n [size]=\"'large'\"\n [csDecoratorClass]=\"'no btn-md btn-light'\"\n [startIconClass]=\"slotRacesSharedList.notificationBellOffIcon\"\n [cta_text]=\"messages.NotificationOFF\"\n (click)=\"notificationCheck(false)\">\n </cs-slotrace-cta>\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [size]=\"'large'\"\n [csDecoratorClass]=\"'yes btn-md'\"\n [startIconClass]=\"slotRacesSharedList.notificationBellOnIcon\"\n [cta_text]=\"messages.NotificationON\"\n (click)=\"notificationCheck(true)\">\n </cs-slotrace-cta>\n </p>\n </div>\n </div>\n </div>\n</div>\n","<div class=\"casino-lobby-container-main\">\n <div class=\"casino-slot-races-pick-game casino-race-info-container\">\n <div class=\"race-info-title-container\">\n <span mat-dialog-title class=\"race-info-title\">{{ messages.PickGameOverlayTitle }}</span>\n <span class=\"theme-ex race-info-close\" (click)=\"close()\"></span>\n </div>\n <div>\n <cc-slot-race-card\n [fromPickGameOverlay]=\"true\"\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [enableOptin]=\"raceinfoopt\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"false\"\n [showPlaceholderCard]=\"false\"\n [position]=\"1\"\n [coinImg]=\"coinImg\"\n (openRaceInfo)=\"openRaceInfoDialog()\"\n (openNotificationOverlay)=\"openNotificationDialog()\"\n (closePickGameOverlay)=\"close($event)\"></cc-slot-race-card>\n </div>\n <div class=\"cs-sr-overlay-games-section\">\n <mat-grid-list rowHeight=\"1:1\" [cols]=\"breakpoint()\" [gutterSize]=\"'10px'\">\n <mat-grid-tile *ngFor=\"let game of race.gameVariantList; let i = index\">\n <cc-slot-races-icon\n class=\"cc-slot-races-icon\"\n [gameVariantList]=\"[game]\"\n [lobbyType]=\"lobbyType\"\n [category]=\"category\"\n [source]=\"'Overlay|Slot Races'\"\n [position]=\"i\"\n [isClickable]=\"\n !race.isLive &&\n race.subType &&\n (race.subType.toLowerCase() == 'free_to_play' || race.subType.toLowerCase() == 'free_play_tech')\n ? false\n : true\n \"\n [isLive]=\"race.isLive\"\n [cta]=\"race.ctaList\"\n [spinProgress]=\"race?.spinProgress\"\n [isFreeTourney]=\"\n race.subType && (race.subType.toLowerCase() == 'free_to_play' || race.subType.toLowerCase() == 'free_play_tech')\n \"\n (launchSelectedGame)=\"launchGame($event)\"></cc-slot-races-icon>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n </div>\n</div>\n","import { NgFor } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit, computed } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\nimport {\n CacheManagerService,\n CasinoCoreGamelaunchService,\n CasinoManager,\n ConfigProviderService,\n GameLaunch,\n Race,\n SitecoreContent,\n SlotRacesService,\n} from '@casinocore/platform/core';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { SlotRaceCardComponent } from '../cards-wrapper/card/card.component';\nimport { TournamentIconComponent } from '../tournament-icon/tournament-icon.component';\n\n@Component({\n selector: 'cc-slot-races-pick-game',\n templateUrl: 'pick-game-overlay.component.html',\n standalone: true,\n imports: [SlotRaceCardComponent, MatGridListModule, NgFor, TournamentIconComponent],\n})\nexport class PickGameOverlayComponent implements OnInit, OnDestroy {\n race: Race;\n isLive: boolean;\n isUpcoming: boolean;\n lobbyType: string;\n category: any;\n raceinfoopt: any;\n messages: { [item: string]: string } = {};\n contentSubscription: Subscription;\n liveRacesSubscription: Subscription;\n activeCategory: string;\n isMobileView: boolean;\n coinImg: string;\n\n readonly breakpoint = computed(() => {\n return this.deviceService.isMobileWidth() ? 3 : 4;\n });\n\n constructor(\n private dialogRef: MatDialogRef<PickGameOverlayComponent>,\n @Inject(MAT_DIALOG_DATA) data: any,\n private slotRacesService: SlotRacesService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private deviceService: DeviceService,\n private cacheManager: CacheManagerService,\n ) {\n this.race = data.race;\n this.isLive = !!this.race.isLive;\n this.isUpcoming = !this.isLive;\n this.category = data.category;\n this.lobbyType = data.lobbyType;\n this.raceinfoopt = data.enableOptin;\n this.coinImg = data.coinImg;\n }\n\n ngOnInit() {\n this.activeCategory = this.category && this.category.categoryInfo && this.category.categoryInfo.categoryid;\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n });\n this.liveRacesSubscription = this.slotRacesService.liveRacesData.subscribe((data) => {\n if (data) {\n this.updateRaceStatus(data);\n }\n });\n }\n\n close(dialogResult: any = {}) {\n this.dialogRef.close(dialogResult);\n }\n\n openRaceInfoDialog(): void {\n this.close({ openRaceInfo: true });\n }\n openNotificationDialog() {\n this.close({ openNotificationOverlay: true });\n }\n launchGame(event: any) {\n let containerLocation: string = 'Overlay|Slot Races';\n let containerDescription: string = 'Highlighted|Image';\n let game = this.cacheManager.getGameToStickersMap();\n let gameSticker = game[event.game];\n let isNewGame = false;\n if (gameSticker && gameSticker.indexOf('New') > -1) {\n isNewGame = true;\n }\n let gameData = {\n gameId: event.game,\n gameVariantName: event.game,\n gameContainerDescription: containerDescription,\n gameContainerLocation: containerLocation,\n isSignPostedGame: isNewGame,\n lobbyType: this.lobbyType,\n };\n let launchModel = new GameLaunch();\n launchModel.game = gameData;\n launchModel.isTouch = this.casinoManager.isTouch();\n launchModel.lobbyType = this.lobbyType;\n launchModel.gamePosition = event.position;\n launchModel.categoryType = this.activeCategory;\n launchModel.gameLaunchedFrom = 'slotraces';\n launchModel.gameSection = 'slotraces';\n launchModel.returnUrl = window.location.href;\n launchModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n launchModel.promoId = this.race?.promoId;\n launchModel.slotUniqueId = this.race?.slotUniqueId;\n this.gameLaunchService.launchGame(launchModel);\n }\n\n updateRaceStatus(data: any) {\n let liveRaces: any[];\n liveRaces = data.liveNow;\n let isLiveRace = liveRaces.some((race: Race) => {\n if (race.promoId == this.race.promoId && race.slotUniqueId == this.race.slotUniqueId) {\n this.race.isLive = true;\n }\n return this.race.isLive;\n });\n let isUpcomingRace = !isLiveRace;\n if (this.isLive !== isLiveRace || this.isUpcoming !== isUpcomingRace) {\n this.close();\n }\n }\n\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n if (this.liveRacesSubscription) {\n this.liveRacesSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n let featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition && this.deviceService.isTouch) {\n this.slotRaceGameOverlayTopAllignment();\n }\n }\n slotRaceGameOverlayTopAllignment() {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n let contentMessageElement: HTMLElement = document.querySelector('.content-messages-header-top .content-message-container')!;\n let sr_overlay: HTMLElement = document.querySelector('.casino-slot-races-pick-game casino-race-info-container')!;\n sr_overlay.style.top = contentMessageElement.clientHeight + 'px';\n }\n }\n}\n","<div class=\"casino-betathebanker-prize-container\">\n <div class=\"bt-info-container\">\n <div class=\"info-title\">{{ messages.beatBankerTitle }}</div>\n <div class=\"info-label\">{{ messages.beatBankerDiscription }}</div>\n </div>\n\n <div class=\"points-and-revards\">\n <div class=\"bt-points\">\n <span>{{ minPoints }} Pts</span>\n </div>\n <div class=\"rewards\">\n <span class=\"reward1\">{{ messages.beatBankerRevardText }}</span>\n <span class=\"reward2\" *ngIf=\"race?.displayCash\">{{\n prizeValueForBeatBanker?.Description ? prizeValueForBeatBanker?.Description : prizeValueForBeatBanker?.value\n }}</span>\n <div class=\"srp-coin-reward\" *ngIf=\"race?.isDisplayCoin\">\n <span class=\"theme-plus\" *ngIf=\"race?.displayCash\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ race?.coinValue }}</span>\n </span>\n </div>\n </div>\n </div>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cc-beat-the-banker-notification',\n templateUrl: './beat-the-banker-notification.html',\n standalone: true,\n imports: [NgIf],\n})\nexport class BeatTheBankerNotificationComponent implements OnInit {\n @Input() race: any;\n @Input() prizeValueForBeatBanker: any;\n @Input() coinImg: any;\n minPoints: any;\n contentSubscription: Subscription;\n beatBankerPromoIcon: string;\n messages: { [item: string]: string } = {};\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n constructor(private slotRacesService: SlotRacesService) {}\n\n ngOnInit() {\n this.minPoints = this.race?.beatBanker?.minPoints;\n this.displayCoinInBTB();\n\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n });\n }\n\n displayCoinInBTB() {\n if (this.race?.beatBanker && this.race.beatBanker?.isCoinAward == 'YES') {\n this.race.isDisplayCoin = true;\n this.race.coinValue = this.race.beatBanker?.totalCoins ? this.race.beatBanker.totalCoins : this.race.beatBanker?.value;\n }\n if (this.race?.beatBanker?.awardType.toLowerCase() != 'coins') {\n this.race.displayCash = true;\n if (!this.prizeValueForBeatBanker) {\n this.prizeValueForBeatBanker = this.race.beatBanker;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n}\n","<div *ngIf=\"race\" [ngClass]=\"[race.beatBanker ? 'casino-beat-the-banker-prize' : '']\">\n <div class=\"casino-lobby-container-main\">\n <mat-expansion-panel\n #dropdown\n hideToggle=\"true\"\n [expanded]=\"isExpanded\"\n [ngClass]=\"isExpansionDisabled\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-title\" *ngIf=\"showHeader\">\n <div class=\"srp-title-container\">\n {{ title }}\n </div>\n </mat-panel-title>\n <mat-panel-description *ngIf=\"isCollapsible\">\n <mat-icon *ngIf=\"!panelOpenState\">\n <span class=\"theme-plus\"></span>\n </mat-icon>\n\n <mat-icon *ngIf=\"panelOpenState\">\n <span class=\"theme-minus\"></span>\n </mat-icon>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div>\n <div class=\"casino-srp-container\">\n <div class=\"casino-beat-the-banker\" *ngIf=\"race.beatBanker\">\n <cc-beat-the-banker-notification\n [prizeValueForBeatBanker]=\"prizeValueForBeatBanker\"\n [race]=\"race\"\n [coinImg]=\"coinImg\"></cc-beat-the-banker-notification>\n </div>\n <mat-grid-list\n cols=\"3\"\n rowHeight=\"113px\"\n gutterSize=\"0\"\n class=\"srp-grid-list\"\n *ngIf=\"prizesOne?.length\"\n [ngStyle]=\"{ width: prizesOneWidth + 'px' }\">\n <mat-grid-tile\n class=\"srp-grid-tile\"\n *ngFor=\"let prize of prizesOne\"\n [ngClass]=\"{ 'prize-tile-small': !isMobile, 'prize-tile-large': isMobile }\">\n <ng-container *ngFor=\"let item of prize; let i = index\">\n <div *ngIf=\"item.awardType != 'COINS'\">\n <div class=\"srp-img\" *ngIf=\"item.Icon\" [innerHtml]=\"item.Icon | trustAsHtml\"></div>\n <div class=\"srp-rank\">{{ item.rank }}</div>\n <div class=\"srp-prize\" [innerHtml]=\"item.Description | trustAsHtml\"></div>\n </div>\n <div *ngIf=\"item.awardType == 'COINS' || item?.isBeatBanker || item?.isCoinAward\" [ngClass]=\"item?.beatBankerClass\">\n <div class=\"srp-coin-reward\" *ngIf=\"item.isDisplayCoin\">\n <div class=\"srp-img\" *ngIf=\"item.Icon && item?.showCoinPrize\" [innerHtml]=\"item.Icon | trustAsHtml\"></div>\n <div class=\"srp-rank\" *ngIf=\"item?.showCoinPrize\">{{ item.rank }}</div>\n <div class=\"coins-divs\">\n <span class=\"theme-plus\" *ngIf=\"!item?.showCoinPrize\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ item.coinValue }}</span>\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <div style=\"width: 100%\"></div>\n <mat-grid-list\n rowHeight=\"113px\"\n gutterSize=\"0\"\n class=\"srp-grid-list\"\n *ngIf=\"prizesTwo?.length\"\n cols=\"{{ prizesTwo?.length }}\"\n [ngStyle]=\"{ width: prizesTwoWidth + 'px' }\">\n <mat-grid-tile\n class=\"srp-grid-tile\"\n *ngFor=\"let prize of prizesTwo\"\n [ngClass]=\"{ 'prize-tile-small': !isMobile, 'prize-tile-large': isMobile }\">\n <ng-container *ngFor=\"let item of prize; let i = index\">\n <div *ngIf=\"item.awardType != 'COINS'\">\n <div class=\"srp-img\" *ngIf=\"item.Icon\" [innerHtml]=\"item.Icon | trustAsHtml\"></div>\n <div class=\"srp-rank\">{{ item.rank }}</div>\n <div class=\"srp-prize\" [innerHtml]=\"item.Description | trustAsHtml\"></div>\n </div>\n <div *ngIf=\"item.awardType == 'COINS' || item?.isBeatBanker || item?.isCoinAward\" [ngClass]=\"item?.beatBankerClass\">\n <div class=\"srp-coin-reward coin\" *ngIf=\"item.isDisplayCoin\">\n <div class=\"srp-img\" *ngIf=\"item.Icon && item?.showCoinPrize\" [innerHtml]=\"item.Icon | trustAsHtml\"></div>\n <div class=\"srp-rank\" *ngIf=\"item?.showCoinPrize\">{{ item.rank }}</div>\n <div class=\"coins-divs\">\n <span class=\"theme-plus\" *ngIf=\"!item?.showCoinPrize\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ item.coinValue }}</span>\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <mat-grid-list\n cols=\"1\"\n rowHeight=\"113px\"\n gutterSize=\"0\"\n class=\"srp-grid-list\"\n *ngIf=\"participateReward\"\n [ngStyle]=\"{ width: participationRewardWidth + 'px' }\">\n <mat-grid-tile class=\"srp-grid-tile\" [ngClass]=\"{ 'prize-tile-small': !isMobile, 'prize-tile-large': isMobile }\">\n <ng-container>\n <div class=\"Participant-Reward\">\n <div class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n </div>\n <div class=\"Coin-Value\">{{ participateReward?.value }} {{ data?.textTranslations?.versionedList?.Coin }}</div>\n <div class=\"Coin-StaticText\">({{ data?.textTranslations?.versionedList?.ParticipateReward }})</div>\n </div>\n </ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n</div>\n","import { CurrencyPipe, NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ConfigProviderService, Race, SlotRacesService } from '@casinocore/platform/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\nimport { BeatTheBankerNotificationComponent } from '../beat-the-banker-notification/beat-the-banker-notification';\n\n@Component({\n selector: 'cc-slot-races-prizes',\n templateUrl: 'prizes.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgClass,\n MatExpansionModule,\n MatIconModule,\n BeatTheBankerNotificationComponent,\n MatGridListModule,\n NgStyle,\n NgFor,\n TrustAsHtmlPipe,\n ],\n providers: [CurrencyPipe],\n})\nexport class SlotRacesPrizesComponent implements OnInit {\n @Input() race: Race;\n @Input() coinImg: string;\n @Input() showHeader: boolean;\n @Input() isCollapsible: boolean;\n @Input() isExpanded: boolean;\n isExpansionDisabled: string = '';\n panelOpenState: boolean;\n data: any;\n title: string;\n prizesOne: any;\n prizesTwo: any;\n isMobile: boolean;\n prizesOneWidth: any;\n prizesTwoWidth: any;\n prizeValueForBeatBanker: any;\n configs: any = {};\n participateReward: any;\n participationRewardWidth: number;\n\n constructor(\n private slotRacesService: SlotRacesService,\n private currencyPipe: CurrencyPipe,\n private configProvider: ConfigProviderService,\n ) {}\n\n ngOnInit() {\n this.configs = this.configProvider.provideSlotRacesConfig();\n let prizesArr: any = [];\n if (this.race) {\n prizesArr = this.slotRacesService.getPrizesForPromo(this.race.promoId);\n if (!prizesArr || !prizesArr.length) {\n this.slotRacesService.getPrizes().subscribe((data: any) => {\n if (data) {\n prizesArr = data[this.race.promoId];\n if (prizesArr && prizesArr.length) {\n this.setPrizes(prizesArr);\n }\n }\n });\n }\n this.slotRacesService.content.subscribe((data: any) => {\n this.data = data;\n });\n if (prizesArr && prizesArr.length) {\n this.setPrizes(prizesArr);\n }\n }\n }\n\n setPrizes(prizesArr: any[]): void {\n let prizesContent = JSON.parse(this.race.content.promotion.prizes);\n if (this.race.content?.promotion?.beatBanker) {\n const beatBankerContent = JSON.parse(this.race.content.promotion.beatBanker);\n beatBankerContent.forEach((beatBanker: any) => {\n beatBanker.isBeatBanker = true;\n });\n prizesContent = prizesContent.concat(beatBankerContent);\n }\n prizesArr?.forEach((prizeList: any) => {\n prizeList?.forEach((prize: any) => {\n if (prize.froM_RANK && prize.tO_RANK && Number(prize.froM_RANK) + 1 !== Number(prize.tO_RANK)) {\n prize.rank = this.data.textTranslations.versionedList.PrizePositionFromTo.replace('{0}', prize.froM_RANK).replace(\n '{1}',\n Number(prize.tO_RANK) - 1,\n );\n } else if (prize.froM_RANK) {\n let suffix;\n switch (prize.froM_RANK) {\n case '1':\n suffix = this.data.textTranslations.versionedList.FirstPositionSuffix;\n break;\n case '2':\n suffix = this.data.textTranslations.versionedList.SecondPositionSuffix;\n break;\n case '3':\n suffix = this.data.textTranslations.versionedList.ThirdPositionSuffix;\n break;\n default:\n suffix = this.data.textTranslations.versionedList.RemainingPositionSuffix;\n break;\n }\n prize.rank = prize.froM_RANK + suffix + ' ' + this.data.textTranslations.versionedList.PrizePosition;\n } else {\n prize.rank = this.data.textTranslations.versionedList.BeatBankerPrizeText;\n }\n const prizeContent = prizesContent.find(\n (p: any) =>\n (p.FromRank == prize.froM_RANK && p.ToRank == prize.tO_RANK) || (prize.isBeatBanker && prize.isBeatBanker == p.isBeatBanker),\n );\n if (prize?.awardType?.toLowerCase() != 'coins') {\n if (prizeContent && prize?.value) {\n prize.Icon = prizeContent.Icon;\n\n if (!this.configs.displayBonusAsText) {\n if (\n prize?.awardType?.toLowerCase() == 'freespins' ||\n prize?.awardType?.toLowerCase() == 'free_spin' ||\n !prize?.currency ||\n !prize?.currency.length\n ) {\n prize.Description = prizeContent.Description?.replace('#value#', prize.value - 0);\n } else {\n const prizeValue = this.currencyPipe.transform(prize.value, prize.currency, 'symbol-narrow', '1.2-2');\n prize.Description = prizeContent.Description?.replace('#value#', prizeValue);\n }\n } else {\n if (prize.awardType && prize.awardType?.toLowerCase() === 'bonus') {\n prize.Description = prizeContent.Description?.replace('#value#', this.data?.textTranslations?.versionedList?.Bonus);\n } else if (prize.awardType && prize.awardType?.toLowerCase().indexOf('cash') > -1) {\n const prizeValue = this.currencyPipe.transform(prize.value, prize.currency, 'symbol-narrow', '1.2-2');\n prize.Description = prizeContent.Description?.replace('#value#', prizeValue);\n } else {\n prize.Description = prizeContent.Description?.replace('#value#', prize.value - 0);\n }\n }\n }\n if (prize.isBeatBanker && prize?.isCoinAward) {\n prize.isDisplayCoin = true;\n prize.coinValue = prize.totalCoins;\n }\n }\n if (prizeContent && prize?.value && prize?.awardType?.toLowerCase() == 'coins') {\n prize.showCoinPrize =\n prizeList?.filter((e: any) => {\n return e?.awardType?.toLowerCase() != 'coins';\n })?.length == 0;\n prize.isDisplayCoin = true;\n prize.coinValue = prize.value;\n prize.Icon = prizeContent.Icon;\n if (prize.isBeatBanker) prize.beatBankerClass = 'beatbankeronlycoin';\n }\n if (prize.isBeatBanker) this.prizeValueForBeatBanker = prize;\n });\n });\n this.title = this.data.textTranslations.versionedList.PrizesTitle;\n if (document && document.documentElement && document.documentElement.clientWidth) {\n this.isMobile = document.documentElement.clientWidth <= 480;\n }\n const tileWidth = this.isMobile ? 121 : 98;\n this.participationRewardWidth = tileWidth;\n const filterprizeArray = JSON.parse(JSON.stringify(prizesArr));\n this.participateReward = this.getparticaipationReward(prizesArr);\n const rewardIndex = this.prizeValueForBeatBanker ? prizesArr.length - 2 : prizesArr.length - 1;\n if (this.participateReward) {\n filterprizeArray.splice(rewardIndex, 1);\n }\n const length = filterprizeArray.length;\n const rowCount = Math.trunc(length / 3);\n this.prizesOne = filterprizeArray.slice(0, 3 * rowCount);\n this.prizesTwo = filterprizeArray.slice(3 * rowCount, length);\n this.prizesOneWidth = tileWidth * 3;\n this.prizesTwoWidth = tileWidth * this.prizesTwo.length;\n }\n\n getparticaipationReward(prizesArr: any): object {\n const participateAwardValue = this.data?.textTranslations?.versionedList?.ParticipationAwardValue;\n let participateReward: any;\n prizesArr?.forEach((data: any) => {\n data?.forEach((e: any) => {\n if (e.awardType == 'COINS' && Number(e.tO_RANK) - 1 == Number(participateAwardValue)) {\n participateReward = e;\n return;\n }\n });\n });\n\n return participateReward;\n }\n\n expansionState() {\n if (!this.isCollapsible) {\n this.isExpansionDisabled = 'disabled-pointer';\n }\n }\n}\n","<div\n class=\"casino-rules-and-tc\"\n *ngIf=\"race || !hidepoint\"\n [ngClass]=\"{ 'casino-point-carousel': showPointsV2, 'points-panel-closed': !panelOpenState }\">\n <mat-expansion-panel\n hideToggle=\"true\"\n [expanded]=\"doExpanded\"\n [ngClass]=\"this.isExpansionDisabled\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-title\">\n {{ sitecoreData?.textTranslations?.versionedList?.Points }}\n </mat-panel-title>\n <mat-panel-description *ngIf=\"isCollapsible\">\n <mat-icon *ngIf=\"!panelOpenState\">\n <span class=\"theme-plus\"></span>\n </mat-icon>\n <mat-icon *ngIf=\"panelOpenState\">\n <span class=\"theme-minus\"></span>\n </mat-icon>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div\n class=\"dropdown-text\"\n id=\"points-dropdown\"\n *ngIf=\"!showPointsV2\"\n [style.color]=\"pointsContentColor\"\n [ngClass]=\"{ 'sr1-points': pointsdatalength == 1, 'sr2-points': pointsdatalength == 2, 'sr3-points': pointsdatalength == 3 }\">\n <div class=\"explain-div\">{{ this.sitecoreData?.textTranslations?.versionedList?.Pointstext }}</div>\n <div class=\"points-panel-data\" *ngFor=\"let ruleInfo of pointsData; let lastItem = last\">\n <div class=\"total-points\">\n <div class=\"points-image-n-text\">\n <div class=\"background-image-section\" [ngStyle]=\"{ 'background-image': 'url(' + ruleInfo?.pointsImage?.src + ')' }\">\n <div class=\"total-points-value\">\n {{ ruleInfo?.pointValue }}\n <span class=\"total-points-text\">\n {{ ruleInfo?.pointsText }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"total-points-text2\">\n {{ ruleInfo?.pointsDescription }}\n </div>\n </div>\n <div class=\"seperator-class\" *ngIf=\"!lastItem\"></div>\n </div>\n </div>\n <!--Multiple Trigger Points-->\n <div *ngIf=\"showPointsV2\">\n <div class=\"main-title\">{{ sitecoreData?.textTranslations?.versionedList?.PointsDescriptionTitleV2 }}</div>\n <div class=\"main-discription\">\n {{ sitecoreData?.textTranslations?.versionedList?.PointsDescriptionV2 }}\n <span style=\"text-decoration: underline; cursor: pointer\" (click)=\"showTnC()\">{{\n sitecoreData?.textTranslations?.versionedList?.TnCApply\n }}</span>\n </div>\n <div class=\"casino-point-carousel-container\" [ngClass]=\"{ 'mobile-mode': !showCarousel, 'one-stresk': pointsData.length == 1 }\">\n <div class=\"innerscrolable\" *ngIf=\"!showCarousel\">\n <div\n class=\"points-new\"\n *ngFor=\"let ruleInfo of pointsData\"\n [ngClass]=\"{\n 'point-typetwo': ruleInfo.slabList.length > 4,\n 'points-counts-one': ruleInfo.slabList.length == 1,\n 'points-counts-two': ruleInfo.slabList.length == 2,\n 'points-counts-three': ruleInfo.slabList.length == 3,\n 'points-counts-four': ruleInfo.slabList.length == 4,\n 'points-counts-five': ruleInfo.slabList.length == 5,\n 'points-counts-six': ruleInfo.slabList.length == 6,\n 'points-counts-seven': ruleInfo.slabList.length == 7,\n 'points-counts-eight': ruleInfo.slabList.length == 8,\n 'points-counts-nine': ruleInfo.slabList.length == 9,\n 'points-counts-ten': ruleInfo.slabList.length == 10,\n }\">\n <div class=\"sub-title\">{{ ruleInfo?.ruleTitle }}</div>\n <div class=\"sub-discription\">\n {{ ruleInfo?.ruleDescription }}\n <span style=\"text-decoration: underline; cursor: pointer\" (click)=\"showTnC()\">{{\n sitecoreData?.textTranslations?.versionedList?.MoreOnTnC\n }}</span>\n </div>\n <div class=\"total-points-new\" *ngFor=\"let slab of ruleInfo.slabList\">\n <div class=\"background-image-section\" [ngStyle]=\"{ 'background-image': 'url(' + ruleInfo?.pointsImage?.src + ')' }\">\n <div *ngIf=\"!(ruleInfo.slabList.length > 4)\">\n <div class=\"typetwo-points\">\n <div class=\"type-one-linetwo\">\n <span class=\"pt-value\">{{ slab.points }}</span>\n <span class=\"points-lh\">{{ slab.points > 1 ? ruleInfo.pointMult : ruleInfo.pointSingle }}</span>\n </div>\n <div class=\"type-one\">\n <span *ngIf=\"ruleInfo.ruleType !== 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }} </span>\n <span class=\"total-points-text\">{{ slab.ruleConfig > 1 ? ruleInfo.descMult : ruleInfo.descSingle }}</span>\n <span *ngIf=\"ruleInfo.ruleType == 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }}</span>\n </div>\n <span *ngIf=\"ruleInfo.slabList.length > 4\"> = </span>\n </div>\n </div>\n <div *ngIf=\"ruleInfo.slabList.length > 4\">\n <div class=\"typetwo-points\">\n <div class=\"type-one\">\n <span *ngIf=\"ruleInfo.ruleType !== 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }} </span>\n <span class=\"total-points-text\">{{ slab.ruleConfig > 1 ? ruleInfo.descMult : ruleInfo.descSingle }}</span>\n <span *ngIf=\"ruleInfo.ruleType == 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }}</span>\n </div>\n <span *ngIf=\"ruleInfo.slabList.length > 4\"> = </span>\n <div class=\"type-one-linetwo\">\n <span class=\"pt-value\">{{ slab.points }}</span>\n {{ slab.points > 1 ? ruleInfo.pointMult : ruleInfo.pointSingle }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <vn-swiper *ngIf=\"showCarousel\" [swiperOptions]=\"swiperOptions\">\n <div class=\"swiper-slide\" *ngFor=\"let ruleInfo of pointsData\">\n <div\n class=\"points-new\"\n [ngClass]=\"{\n 'point-typetwo': ruleInfo.slabList.length > 4,\n 'points-counts-one': ruleInfo.slabList.length == 1,\n 'points-counts-two': ruleInfo.slabList.length == 2,\n 'points-counts-three': ruleInfo.slabList.length == 3,\n 'points-counts-four': ruleInfo.slabList.length == 4,\n 'points-counts-five': ruleInfo.slabList.length == 5,\n 'points-counts-six': ruleInfo.slabList.length == 6,\n 'points-counts-seven': ruleInfo.slabList.length == 7,\n 'points-counts-eight': ruleInfo.slabList.length == 8,\n }\">\n <div class=\"sub-title\">{{ ruleInfo.ruleTitle }}</div>\n <div class=\"sub-discription\">\n {{ ruleInfo.ruleDescription }}\n <span style=\"text-decoration: underline; cursor: pointer\" (click)=\"showTnC()\">{{\n sitecoreData?.textTranslations?.versionedList?.MoreOnTnC\n }}</span>\n </div>\n <div class=\"total-points-new\" *ngFor=\"let slab of ruleInfo.slabList\">\n <div class=\"background-image-section\" [ngStyle]=\"{ 'background-image': 'url(' + ruleInfo.pointsImage.src + ')' }\">\n <div *ngIf=\"!(ruleInfo.slabList.length > 4)\">\n <div class=\"typetwo-points\">\n <div class=\"type-one-linetwo\">\n <span class=\"pt-value\">{{ slab.points }}</span>\n <span class=\"points-lh\">{{ slab.points > 1 ? ruleInfo.pointMult : ruleInfo.pointSingle }}</span>\n </div>\n <div class=\"type-one\">\n <span *ngIf=\"ruleInfo.ruleType !== 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }} </span>\n <span class=\"total-points-text\">{{\n slab.ruleConfig > 1 ? ruleInfo.descMult : ruleInfo.descSingle\n }}</span>\n <span *ngIf=\"ruleInfo.ruleType == 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }}</span>\n </div>\n <span *ngIf=\"ruleInfo.slabList.length > 4\"> = </span>\n </div>\n </div>\n <div *ngIf=\"ruleInfo.slabList.length > 4\">\n <div class=\"typetwo-points\">\n <div class=\"type-one\">\n <span *ngIf=\"ruleInfo.ruleType !== 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }} </span>\n <span class=\"total-points-text\">{{\n slab.ruleConfig > 1 ? ruleInfo.descMult : ruleInfo.descSingle\n }}</span>\n <span *ngIf=\"ruleInfo.ruleType == 'WIN_X_TIMES_ON_BET'\">{{ slab.ruleConfig }}</span>\n </div>\n <span *ngIf=\"ruleInfo.slabList.length > 4\"> = </span>\n <div class=\"type-one-linetwo\">\n <span class=\"pt-value\">{{ slab.points }}</span>\n {{ slab.points > 1 ? ruleInfo.pointMult : ruleInfo.pointSingle }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </vn-swiper>\n </div>\n </div>\n <!--End Multiple Trigger Points-->\n </mat-expansion-panel>\n</div>\n","import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { AfterViewInit, Component, DestroyRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { CasinoManager, ConfigProviderService, Race, RaceRuleConfig, SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { Subscription } from 'rxjs';\nimport { Swiper } from 'swiper/types';\nimport { SwiperOptions } from 'swiper/types/swiper-options';\n\n@Component({\n selector: 'cc-slot-races-points',\n templateUrl: './points.component.html',\n standalone: true,\n imports: [NgIf, NgClass, MatExpansionModule, MatIconModule, NgFor, NgStyle, SwiperComponent],\n})\nexport class SlotRacesPointsComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() showHeader: boolean;\n @Input() isCollapsible: boolean;\n @Input() isExpanded: boolean;\n @Input() race: Race;\n isVisible: boolean;\n racedata: boolean;\n hidepoint: boolean;\n panelOpenState: boolean;\n pointsdatalength: number;\n doExpanded: boolean;\n pointsgredientbg: string;\n pointsData: any;\n pointsContent: RaceRuleConfig[];\n sitecoreData: SitecoreContent;\n contentSubscription: any;\n isExpansionDisabled: string = '';\n showPointsV2: boolean;\n showCarousel: boolean;\n resizeSubscription: Subscription;\n pointsContentColor: string;\n\n swiperOptions: SwiperOptions = {\n speed: 400,\n autoHeight: true,\n spaceBetween: 1,\n slidesPerView: 2,\n pagination: true,\n navigation: true,\n keyboard: true,\n on: {\n init: (swiper) => this.onCarouselMove(swiper),\n slideChange: (swiper) => this.onCarouselMove(swiper),\n },\n };\n\n constructor(\n private slotRacesService: SlotRacesService,\n private casinoManager: CasinoManager,\n private configproviderservice: ConfigProviderService,\n private deviceService: DeviceService,\n private destroyRef: DestroyRef,\n ) {}\n\n ngOnInit() {\n const config = this.configproviderservice.provideSlotRacesConfig();\n this.hidepoint = config.hideGenericPoints;\n this.showCarouselArrows();\n this.resizeSubscription = this.casinoManager.reSizeObservable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((width: any) => {\n if (width) {\n this.showCarouselArrows();\n }\n });\n this.showPointsV2 = this.race && this.race.slotRaceRuleConfigV2 && this.race.slotRaceRuleConfigV2.length > 0;\n this.doExpanded = this.isExpanded;\n this.isVisible = false;\n this.changeCollapseState();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.sitecoreData = content;\n this.pointsContent = JSON.parse(JSON.stringify(content.raceRuleConfigs));\n this.bindRuleContent();\n this.setSiteCoreStyles();\n });\n this.ExpansionState();\n this.pointsContentColor = this.sitecoreData.textTranslations.versionedList?.PointsContentColor;\n }\n\n ngAfterViewInit() {\n this.setSiteCoreStyles();\n }\n\n setSiteCoreStyles() {\n if (this.sitecoreData && this.sitecoreData.textTranslations && this.sitecoreData.textTranslations.sharedList) {\n if (document.querySelector('.casino-point-carousel') as HTMLElement) {\n (document.querySelector('.casino-point-carousel') as HTMLElement).style.cssText =\n this.sitecoreData.textTranslations.sharedList.pointsV2CSSText;\n }\n }\n }\n\n showCarouselArrows() {\n this.showCarousel = this.casinoManager.isTouch()\n ? this.deviceService.windowWidth() >= 768\n ? !(window.matchMedia('(orientation: landscape)').matches && this.deviceService.windowWidth() < 900)\n : false\n : true;\n }\n\n bindRuleContent() {\n if (this.race && this.race.slotRaceRuleConfigV2 && this.race.slotRaceRuleConfigV2.length) {\n this.pointsData = this.race.slotRaceRuleConfigV2;\n this.pointsData.forEach((apiRaceConfig: any) => {\n const matchedcontent = this.pointsContent.find(\n (p) => p?.metadata?.id?.itemName?.toLowerCase() === apiRaceConfig?.ruleType?.toLowerCase(),\n );\n apiRaceConfig.pointValue = apiRaceConfig.points;\n apiRaceConfig.pointsImage = matchedcontent?.pointsImage;\n apiRaceConfig.pointsText = matchedcontent?.pointsText?.replace('{points}', '');\n apiRaceConfig.pointsDescription = matchedcontent?.pointsDescription?.replace('{ruleConfig}', String(apiRaceConfig.ruleConfig));\n apiRaceConfig.ruleTitle = matchedcontent?.ruleConfigTitleV2;\n apiRaceConfig.ruleDescription = matchedcontent?.ruleConfigDescriptionV2;\n this.setPointsV2DescriptionTexts(apiRaceConfig);\n });\n } else if (this.race && this.race.slotRaceRuleConfig) {\n this.pointsData = this.race.slotRaceRuleConfig;\n this.pointsdatalength = this.pointsData.length;\n this.pointsData.forEach((apiRaceConfig: any) => {\n const matchedcontent = this.pointsContent.find(\n (p) => p?.metadata?.id?.itemName?.toLowerCase() === apiRaceConfig?.ruleType?.toLowerCase(),\n );\n apiRaceConfig.pointValue = apiRaceConfig.points;\n apiRaceConfig.pointsImage = matchedcontent?.pointsImage;\n apiRaceConfig.pointsText = matchedcontent?.pointsText?.replace('{points}', '');\n apiRaceConfig.pointsDescription = matchedcontent?.pointsDescription?.replace('{ruleConfig}', String(apiRaceConfig.ruleConfig));\n });\n } else {\n this.pointsData = this.pointsContent;\n this.pointsdatalength = this.pointsData.length;\n this.pointsData.forEach((sitecoreRaceConfig: any) => {\n sitecoreRaceConfig.pointsText = sitecoreRaceConfig.pointsText.replace('{points}', '');\n sitecoreRaceConfig.pointsDescription = sitecoreRaceConfig.pointsDescription.replace(\n '{ruleConfig}',\n String(sitecoreRaceConfig.ruleConfigValue),\n );\n });\n }\n }\n\n private setPointsV2DescriptionTexts(ruleConfig: any) {\n switch (ruleConfig?.ruleType?.toLowerCase()) {\n case 'consecutive_wins': {\n ruleConfig.descSingle = this.sitecoreData.textTranslations.versionedList.WinSingle;\n ruleConfig.descMult = this.sitecoreData.textTranslations.versionedList.WinMultiple;\n break;\n }\n case 'consecutive_losses': {\n ruleConfig.descSingle = this.sitecoreData.textTranslations.versionedList.LossSingle;\n ruleConfig.descMult = this.sitecoreData.textTranslations.versionedList.LossMultiple;\n break;\n }\n case 'win_x_times_on_bet': {\n ruleConfig.descSingle = this.sitecoreData.textTranslations.versionedList.StakeWon;\n ruleConfig.descMult = this.sitecoreData.textTranslations.versionedList.StakeWon;\n break;\n }\n }\n if (ruleConfig && ruleConfig.slabList && ruleConfig.slabList.length > 4) {\n ruleConfig.pointSingle = this.sitecoreData.textTranslations.versionedList.PtSingle;\n ruleConfig.pointMult = this.sitecoreData.textTranslations.versionedList.PtMultiple;\n } else {\n ruleConfig.pointSingle = this.sitecoreData.textTranslations.versionedList.PointSingle;\n ruleConfig.pointMult = this.sitecoreData.textTranslations.versionedList.PointMultiple;\n }\n }\n\n onCarouselMove(swiper: Swiper): void {\n const firstVisibleSlide = swiper.activeIndex;\n const slides = swiper.slides;\n const lastVisibleSlide = swiper.activeIndex + slides.length - 1;\n slides.forEach((slide, i) => {\n slide.style.opacity = i >= firstVisibleSlide && i <= lastVisibleSlide ? '1' : '0';\n });\n }\n\n showTnC() {\n const tnc = document.getElementById('csSlotRaceTnC');\n if (tnc) {\n tnc.scrollIntoView();\n }\n }\n\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n\n changeCollapseState() {\n this.isVisible = !this.isVisible;\n }\n\n ExpansionState() {\n if (!this.isCollapsible) {\n this.isExpansionDisabled = 'disabled-pointer';\n }\n }\n}\n","<div class=\"casino-lobby-container-main\">\n <div class=\"casino-rules-and-tc\">\n <mat-expansion-panel\n #dropdown\n hideToggle=\"true\"\n [expanded]=\"isExpanded\"\n [ngClass]=\"this.isExpansionDisabled\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-title\" *ngIf=\"showHeader\">\n {{ sitecoreData?.textTranslations?.versionedList?.Rules }}\n </mat-panel-title>\n <mat-panel-description *ngIf=\"isCollapsible\">\n <mat-icon *ngIf=\"!panelOpenState\">\n <span class=\"theme-plus\"></span>\n </mat-icon>\n <mat-icon *ngIf=\"panelOpenState\">\n <span class=\"theme-minus\"></span>\n </mat-icon>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"dropdown-text rules-sec\" [style.color]=\"rulesContentColor\">\n <div class=\"edge-allign\" *ngFor=\"let rule of rulesData\">\n <div class=\"rules\" id=\"rule-content\">\n <img class=\"rules-image\" draggable=\"false\" src=\"{{ rule.image.src }}\" alt=\"{{ rule.title }}\" />\n <div class=\"rules-title\">{{ rule.title }}</div>\n <div class=\"rules-title-text\" [innerHTML]=\"rule.text | trustAsHtml\"></div>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n</div>\n","import { NgClass, NgFor, NgIf } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { Race, Rule, SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cc-slot-races-rules',\n templateUrl: './rules.component.html',\n standalone: true,\n imports: [MatExpansionModule, NgClass, NgIf, MatIconModule, NgFor, TrustAsHtmlPipe],\n})\nexport class SlotRacesRulesComponent implements OnInit, OnDestroy {\n @Input() showHeader: boolean;\n @Input() isCollapsible: boolean;\n @Input() isExpanded: boolean;\n @Input() race: Race;\n\n isVisible: boolean;\n rulesData: Rule[] = [];\n panelOpenState: boolean;\n sitecoreData: SitecoreContent;\n contentSubscription: Subscription;\n isExpansionDisabled: string = '';\n rulesContentColor: string;\n\n constructor(private slotRacesService: SlotRacesService) {}\n\n ngOnInit() {\n this.isVisible = false;\n this.changeCollapseState();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.sitecoreData = content;\n this.setRules();\n });\n this.rulesContentColor = this.sitecoreData.textTranslations.versionedList?.RulesContentColor;\n }\n\n setRules() {\n if (this.race) {\n this.sitecoreData.rules.forEach((ruleItem: Rule) => {\n const rule = this.race?.content?.rules?.find((r) => r?.metadata?.id?.itemName === ruleItem?.metadata?.id?.itemName);\n if (rule) {\n this.rulesData.push(rule);\n } else {\n this.rulesData.push(ruleItem);\n }\n });\n } else {\n this.rulesData = this.sitecoreData.rules;\n }\n }\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n changeCollapseState() {\n this.isVisible = !this.isVisible;\n }\n ExpansionState() {\n if (!this.isCollapsible) {\n this.isExpansionDisabled = 'disabled-pointer';\n }\n }\n}\n","<div class=\"casino-rules-and-tc\">\n <mat-expansion-panel\n hideToggle=\"true\"\n [expanded]=\"isExpanded\"\n [ngClass]=\"this.isExpansionDisabled\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-title\">\n {{ sitecoreContent?.textTranslations?.versionedList?.Tips }}\n </mat-panel-title>\n <mat-panel-description *ngIf=\"isCollapsible\">\n <mat-icon *ngIf=\"!panelOpenState\">\n <span class=\"theme-plus\"></span>\n </mat-icon>\n <mat-icon *ngIf=\"panelOpenState\">\n <span class=\"theme-minus\"></span>\n </mat-icon>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"dropdown-text\" id=\"tips-dropdown\" [style.color]=\"tipsContentColor\">\n <div *ngFor=\"let data of sitecoreContent.tips\">\n <div class=\"tips\" id=\"tips-content\">\n <div class=\"casino-tips-image\">\n <img width=\"80px\" height=\"90px\" draggable=\"false\" src=\"{{ data.image.src }}\" alt=\"{{ data.image.alt }}\" />\n </div>\n <div class=\"tips-text\">\n <div class=\"tips-title\">{{ data.title }}</div>\n <div class=\"tips-title-text\" [innerHTML]=\"data.text | trustAsHtml\"></div>\n </div>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n</div>\n","import { NgClass, NgFor, NgIf } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n selector: 'cc-slot-races-tips',\n templateUrl: './tips.component.html',\n standalone: true,\n imports: [MatExpansionModule, NgClass, NgIf, MatIconModule, NgFor, TrustAsHtmlPipe],\n})\nexport class SlotRacesTipsComponent implements OnInit, OnDestroy {\n @Input() showHeader: boolean;\n @Input() isCollapsible: boolean;\n @Input() isExpanded: boolean;\n\n isVisible: boolean;\n panelOpenState: boolean;\n contentSubscription: any;\n sitecoreContent: SitecoreContent;\n isExpansionDisabled: string = '';\n tipsContentColor: string;\n\n constructor(private slotRacesService: SlotRacesService) {}\n\n ngOnInit() {\n this.showHeader = true;\n this.isVisible = false;\n this.changeCollapseState();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.sitecoreContent = content;\n });\n this.ExpansionState();\n this.tipsContentColor = this.sitecoreContent.textTranslations.versionedList?.TipsContentColor;\n }\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n\n changeCollapseState() {\n this.isVisible = !this.isVisible;\n }\n ExpansionState() {\n if (!this.isCollapsible) {\n this.isExpansionDisabled = 'disabled-pointer';\n }\n }\n}\n","<div id=\"csSlotRaceTnC\" class=\"non-collapsable-content terms-and-cond\" *ngIf=\"!isCollapsible\">\n <div class=\"casino-slotraces-tnc\">\n <div class=\"tnc-title\">\n <div class=\"panel-title\" id=\"tnc-panel-title\" *ngIf=\"showHeader\">\n {{ sitecoreData?.textTranslations?.versionedList?.TermsAndConditions }}\n </div>\n </div>\n <div class=\"panel-text\">\n <div class=\"dropdown-text\">\n <div class=\"tnc-text\" *ngIf=\"!race\">\n <vn-page-matrix [path]=\"'MobileCasino-v1.0/CasinoSlotRaces/TermsAndConditions/TnC/TnCHtml'\"> </vn-page-matrix>\n </div>\n <div class=\"tnc-text\" *ngIf=\"race\">\n <div [innerHtml]=\"tncData | trustAsHtml\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Race, SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n selector: 'cc-slot-races-tnc',\n templateUrl: './tnc.component.html',\n standalone: true,\n imports: [NgIf, PageMatrixComponent, TrustAsHtmlPipe],\n})\nexport class SlotRacesTnCComponent implements OnInit, OnDestroy {\n @Input() showHeader: boolean;\n @Input() isCollapsible: boolean;\n @Input() isExpanded: boolean;\n @Input() race: Race;\n\n isVisible: boolean;\n panelOpenState: boolean;\n contentSubscription: any;\n sitecoreData: any;\n tncData: any;\n constructor(private slotRacesService: SlotRacesService) {}\n\n ngOnInit() {\n this.isVisible = false;\n this.changeCollapseState();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.sitecoreData = content;\n this.setTnc();\n });\n }\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n changeCollapseState() {\n this.isVisible = !this.isVisible;\n }\n\n setTnc() {\n if (this.race) {\n if (this.race.content && this.race.content.promotion && this.race.content.promotion.termsAndConditionsText) {\n this.tncData = (0, eval)('`' + this.race.content.promotion.termsAndConditionsText + '`');\n } else {\n this.tncData = '';\n }\n }\n }\n}\n","<div class=\"casino-lobby-container-main\">\n <div *ngIf=\"showTitleHeader\">\n <div class=\"rules-header\">\n <div class=\"header-text\">\n {{ sitecoreContent.textTranslations.versionedList.TermsAndConditionsTitle }}\n </div>\n <div mat-dialog-actions>\n <span mat-button class=\"ui-icon ui-icon-size-lg ui-close theme-ex ng-star-inserted\" (click)=\"closeButton()\"></span>\n </div>\n </div>\n <div class=\"rules-header-image\">\n <div class=\"rules-header-image-section\" [ngStyle]=\"{ 'background-image': 'url(' + sitecoreContent.rulesBanner.image.src + ')' }\">\n <div class=\"rules-image-title\">\n {{ sitecoreContent.rulesBanner.title }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"casino-rules-tnc-popup\">\n <div class=\"casino-rules-panel\" id=\"casino-prizes-container\">\n <cc-slot-races-prizes [showHeader]=\"true\" [isCollapsible]=\"true\" [isExpanded]=\"true\" [race]=\"race\" [coinImg]=\"coinImg\">\n </cc-slot-races-prizes>\n </div>\n\n <div class=\"casino-rules-panel\">\n <cc-slot-races-rules [showHeader]=\"true\" [isCollapsible]=\"true\" [isExpanded]=\"true\" [race]=\"race\"> </cc-slot-races-rules>\n </div>\n <div class=\"points-panel\" [ngClass]=\"{ 'disable-tnc-points': !disableSlotRacesPoints }\">\n <cc-slot-races-points [showHeader]=\"true\" [isCollapsible]=\"true\" [isExpanded]=\"true\" [race]=\"race\"> </cc-slot-races-points>\n </div>\n <div class=\"tips-panel\">\n <cc-slot-races-tips [showHeader]=\"true\" [isCollapsible]=\"true\" [isExpanded]=\"true\"> </cc-slot-races-tips>\n </div>\n <div class=\"tnc-panel\">\n <cc-slot-races-tnc [showHeader]=\"true\" [isCollapsible]=\"false\" [isExpanded]=\"true\" [race]=\"race\"> </cc-slot-races-tnc>\n </div>\n </div>\n</div>\n","import { NgClass, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialogActions, MatDialogRef } from '@angular/material/dialog';\n\nimport { CasinoManager, ConfigProviderService, Race, SitecoreContent, SlotRacesService, SlotRacesTrackingService } from '@casinocore/platform/core';\n\nimport { SlotRacesPrizesComponent } from '../race-info/prizes/prizes.component';\nimport { SlotRacesPointsComponent } from './points/points.component';\nimport { SlotRacesRulesComponent } from './rules/rules.component';\nimport { SlotRacesTipsComponent } from './tips/tips.component';\nimport { SlotRacesTnCComponent } from './tnc/tnc.component';\n\n@Component({\n selector: 'cc-slots-races-rules-and-tnc',\n templateUrl: './rules-and-tnc.component.html',\n standalone: true,\n imports: [\n NgIf,\n MatDialogActions,\n NgStyle,\n SlotRacesPrizesComponent,\n SlotRacesRulesComponent,\n NgClass,\n SlotRacesPointsComponent,\n SlotRacesTipsComponent,\n SlotRacesTnCComponent,\n ],\n})\nexport class SlotRacesRulesAndTnCComponent implements OnInit, OnDestroy {\n @Input() race: Race;\n @Input() coinImg: string;\n @Input() showTitleHeader: boolean = true;\n sitecoreContent: SitecoreContent;\n contentSubscription: any;\n disableSlotRacesPoints: boolean;\n slotRacesConfig: any;\n\n constructor(\n public dialogRef: MatDialogRef<SlotRacesRulesAndTnCComponent>,\n private configProviderService: ConfigProviderService,\n private slotRacesService: SlotRacesService,\n private slotRacesTracking: SlotRacesTrackingService,\n private casinoManager: CasinoManager,\n ) {}\n\n ngOnInit() {\n this.slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n this.disableSlotRacesPoints = this.slotRacesConfig.disableSlotRacesPoints;\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.sitecoreContent = content;\n });\n }\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n }\n\n closeButton() {\n const activeCategory = this.casinoManager.getActiveCategory();\n this.slotRacesTracking.track(\n 'Close (x) - CTA Clicked',\n 'Rules TnC - Overlay',\n activeCategory,\n 'User Clicked on Close(x) CTA to close the overlay',\n );\n this.dialogRef.close();\n }\n}\n","<div class=\"casino-lobby-container-main\">\n <div class=\"casino-race-info-container\">\n <div class=\"race-info-title-container\">\n <span class=\"theme-left race-info-back\" *ngIf=\"enableResultsHistoryPage && fromResult\" (click)=\"close()\"></span>\n <span mat-dialog-title class=\"race-info-title\" [ngClass]=\"{ 'race-info-title-left': enableResultsHistoryPage && fromResult }\">{{\n title\n }}</span>\n <span class=\"theme-ex race-info-close\" *ngIf=\"!fromResult\" (click)=\"close()\"></span>\n </div>\n <ng-container *ngIf=\"enableResultsHistoryPage && fromResult\">\n <div class=\"casino-sr-result-wraper\">\n <div class=\"sr-results-list\">\n <div class=\"result-list-container\">\n <ul class=\"list-titles\">\n <li>{{ versionedData.Game }}</li>\n <li>{{ versionedData.Date }}</li>\n <li>{{ versionedData.Prize }}</li>\n <li>{{ versionedData.YourPlace }}</li>\n <li>{{ versionedData.Points }}</li>\n </ul>\n <ul class=\"list-elements\">\n <li>\n <cc-slot-races-icon\n class=\"cc-slot-races-icon\"\n [promoIcon]=\"raceResult?.content?.promotion?.promoIcon\"\n [isDraggable]=\"false\"\n [gameVariantList]=\"raceResult?.gameVariantList\"\n [isClickable]=\"false\"></cc-slot-races-icon>\n </li>\n <li>{{ raceResult.dateStr }}</li>\n <li [ngClass]=\"{ 'sr-prize-lose-padding': !raceResult?.awardType }\">\n <i class=\"sr-prize-icon\" [ngClass]=\"sharedData[raceResult?.awardType?.toLowerCase()]\"></i>\n <span class=\"sr-card-total-prize-value\">\n {{\n displayBonusAsText && raceResult?.awardType?.toLowerCase() === 'bonus'\n ? versionedData?.Bonus\n : raceResult?.awardValue\n }}\n <div class=\"srp-coin-reward\" *ngIf=\"raceResult?.isDisplayCoin\">\n <span class=\"theme-plus\" *ngIf=\"raceResult?.awardValue\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n <span>{{ raceResult?.coinValue }}</span>\n </span>\n </div>\n </span>\n </li>\n <li>\n <div class=\"srp-img\" [innerHtml]=\"raceResult?.prizeIcon | trustAsHtml\"></div>\n {{ raceResult.rank }}\n </li>\n <li>{{ raceResult.points }}</li>\n </ul>\n </div>\n </div>\n </div>\n <cc-slot-races-leaderboard [results]=\"raceResult\" [coinImg]=\"coinImg\"></cc-slot-races-leaderboard>\n <div class=\"sr-back-to-results\">\n <div class=\"show-result-btn btn btn-primary\" (click)=\"close()\">{{ versionedData?.BackToResults }}</div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!fromResult\">\n <div class=\"casino-race-info-card-container\">\n <cc-slot-race-card\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"false\"\n [lobbyType]=\"lobbyType\"\n [enableOptin]=\"raceinfoopt\"\n [showCardMenu]=\"false\"\n [position]=\"0\"\n [coinImg]=\"coinImg\"\n (closeRaceInfo)=\"close($event)\"\n (openPickGameOverlay)=\"openPickGameOverlay()\"\n (openNotificationOverlay)=\"openNotificationDialog()\"\n (gameLaunched)=\"close()\">\n </cc-slot-race-card>\n </div>\n <div *ngIf=\"race.isLive; else upcomingRaceInfo\">\n <cc-slot-races-leaderboard\n *ngIf=\"race.rankDetails && race.rankDetails.length > 0\"\n [race]=\"race\"\n [lobbyType]=\"lobbyType\"\n [coinImg]=\"coinImg\"></cc-slot-races-leaderboard>\n <cc-slots-races-rules-and-tnc [coinImg]=\"coinImg\" [race]=\"race\" [showTitleHeader]=\"false\"></cc-slots-races-rules-and-tnc>\n </div>\n <ng-template #upcomingRaceInfo>\n <div class=\"casino-race-info-tnc-container\">\n <cc-slots-races-rules-and-tnc [race]=\"race\" [coinImg]=\"coinImg\" [showTitleHeader]=\"false\"></cc-slots-races-rules-and-tnc>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import { CurrencyPipe, NgClass, NgIf } from '@angular/common';\nimport { AfterViewInit, Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\n\nimport { ConfigProviderService, Race, SitecoreContent, SlotRacesService } from '@casinocore/platform/core';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { Subscription } from 'rxjs';\n\nimport { SlotRaceCardComponent } from '../cards-wrapper/card/card.component';\nimport { SlotRacesLeaderboardComponent } from '../leaderboard/leaderboard.component';\nimport { SlotRacesResultsComponent } from '../results/results.component';\nimport { SlotRacesRulesAndTnCComponent } from '../rules-points-tips-tnc/rules-and-tnc.component';\nimport { TournamentIconComponent } from '../tournament-icon/tournament-icon.component';\n\n@Component({\n selector: 'cc-slot-races-info',\n templateUrl: 'race-info.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n NgIf,\n MatDialogTitle,\n NgClass,\n TournamentIconComponent,\n SlotRacesLeaderboardComponent,\n SlotRaceCardComponent,\n SlotRacesRulesAndTnCComponent,\n TrustAsHtmlPipe,\n ],\n providers: [CurrencyPipe],\n})\nexport class SlotRacesInfoComponent implements OnInit, OnDestroy, AfterViewInit {\n title: string;\n versionedData: any;\n sharedData: any;\n race: Race;\n category: any;\n isLive: boolean = false;\n contentSubscription: Subscription;\n liveRacesSubscription: Subscription;\n isUpcoming: boolean;\n lobbyType: string;\n fromResult: boolean = false;\n raceResult: any;\n raceinfoopt: any;\n displayBonusAsText: boolean;\n resultDialogRef: MatDialogRef<SlotRacesResultsComponent>;\n enableResultsHistoryPage: boolean = false;\n isMobileView: boolean;\n coinImg: String;\n coinObj: any;\n\n constructor(\n private dialogRef: MatDialogRef<SlotRacesInfoComponent>,\n @Inject(MAT_DIALOG_DATA) data: any,\n private slotRacesService: SlotRacesService,\n private currencyPipe: CurrencyPipe,\n private configProviderService: ConfigProviderService,\n private deviceService: DeviceService,\n ) {\n let configs = this.configProviderService.provideSlotRacesConfig();\n this.enableResultsHistoryPage = configs.enableResultsHistoryPage;\n this.displayBonusAsText = configs.displayBonusAsText;\n this.coinImg = data.coinImg;\n\n if (this.enableResultsHistoryPage && data.raceResult) {\n this.raceResult = data.raceResult;\n this.fromResult = true;\n this.resultDialogRef = data.resultsDialogRef;\n this.raceResult?.configMaps?.forEach((configMap: any) => {\n if (configMap && configMap?.awardType) {\n if (configMap && configMap?.awardType.toLowerCase() != 'coins') {\n if (this.raceResult.isWin && configMap?.value) {\n this.raceResult.awardType = configMap.awardType;\n if (!this.displayBonusAsText) {\n if (\n configMap?.awardType?.toLowerCase() == 'freespins' ||\n configMap?.awardType?.toLowerCase() == 'free_spin' ||\n !configMap?.currency ||\n !configMap?.currency?.length\n ) {\n this.raceResult.awardValue = Number(configMap.value);\n } else {\n this.raceResult.awardValue = this.currencyPipe.transform(\n configMap?.value,\n configMap?.currency,\n 'symbol-narrow',\n '1.2-2',\n );\n }\n } else {\n if (configMap && configMap.awardType && configMap.awardType?.toLowerCase().indexOf('cash') > -1) {\n this.raceResult.awardValue = this.currencyPipe.transform(\n configMap.value,\n configMap.currency,\n 'symbol-narrow',\n '1.2-2',\n );\n } else {\n this.raceResult.awardValue = Number(configMap.value);\n }\n }\n } else {\n this.raceResult.awardValue = '--';\n }\n }\n if (configMap && configMap?.awardType.toLowerCase() == 'coins') {\n this.raceResult.isDisplayCoin = true;\n this.raceResult.coinValue = this.raceResult.isDisplayCoin ? configMap.value : '';\n }\n } else {\n this.raceResult.awardValue = '--';\n }\n });\n }\n\n this.race = data.race;\n this.isLive = !!this.race?.isLive;\n this.isUpcoming = !this.isLive;\n this.category = data.category;\n this.lobbyType = data.lobbyType;\n this.raceinfoopt = data.enableOptin;\n this.coinObj = this.slotRacesService.bindCoinImg(this.race, data.coinImg);\n }\n\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n\n ngOnInit() {\n if (!this.fromResult) {\n this.liveRacesSubscription = this.slotRacesService.liveRacesData.subscribe((data) => {\n if (data) {\n this.updateRaceStatus(data);\n }\n });\n } else if (this.enableResultsHistoryPage && this.fromResult) {\n this.dialogRef.backdropClick().subscribe(() => {\n if (this.resultDialogRef) {\n this.resultDialogRef.close();\n }\n });\n this.dialogRef.keydownEvents().subscribe((event) => {\n if (event.keyCode === 27) {\n this.resultDialogRef.close();\n }\n });\n }\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.versionedData = content.textTranslations.versionedList;\n this.sharedData = content.textTranslations.sharedList;\n if (this.versionedData) {\n if (this.race && !this.race.isLive) {\n this.title = this.versionedData.UpcomingRaceOverlayTitle ? this.versionedData.UpcomingRaceOverlayTitle : '';\n } else {\n this.title = this.versionedData.LiveRaceOverlayTitle ? this.versionedData.LiveRaceOverlayTitle : '';\n }\n }\n });\n }\n\n close(dialogResult: any = {}) {\n if (this.enableResultsHistoryPage && this.fromResult) {\n let resultsDialog = document.getElementsByClassName('sr-results-dialog')[0] as HTMLElement;\n resultsDialog.style.display = '';\n }\n this.dialogRef.close(dialogResult);\n }\n\n openPickGameOverlay() {\n this.close({ openPickGameOverlay: true });\n }\n openNotificationDialog() {\n this.close({ openNotificationOverlay: true });\n }\n\n updateRaceStatus(data: any) {\n let liveRaces: any[];\n liveRaces = data.liveNow;\n let isLiveRace = liveRaces.some((race: Race) => {\n if (race.promoId == this.race.promoId && race.slotUniqueId == this.race.slotUniqueId) {\n this.race.isLive = true;\n }\n return this.race.isLive;\n });\n let isUpcomingRace = !isLiveRace;\n if (this.isLive !== isLiveRace || this.isUpcoming !== isUpcomingRace) {\n this.close();\n }\n }\n\n ngOnDestroy() {\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n if (this.liveRacesSubscription) {\n this.liveRacesSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n let featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition && this.deviceService.isTouch) {\n this.slotRaceOverlayTopAllignment();\n }\n }\n slotRaceOverlayTopAllignment() {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n let contentMessageElement: HTMLElement = document.querySelector('.content-messages-header-top .content-message-container')!;\n let sr1_overlay: HTMLElement = document.querySelector('.casino-race-info-container')!;\n sr1_overlay.style.top = contentMessageElement?.clientHeight + 'px';\n }\n }\n}\n","<div\n id=\"casinotournamentscards\"\n class=\"casino-wrapper-sr\"\n [ngClass]=\"{\n 'sr1-card-leaderboard': !enableBetterVisualization && showLeaderboard && races.length == 1,\n 'sr2-card-leaderboard': !enableBetterVisualization && showLeaderboard && races.length == 2,\n }\">\n <div\n class=\"casino-sr-card-wrapper\"\n *ngIf=\"(!showCarousel && isSubCategory) || (!showCarousel && !enableBetterVisualization)\"\n [ngClass]=\"{ 'sr-card-leaderboard': showLeaderboard }\">\n <div class=\"card-width\" *ngFor=\"let race of races; index as pos; trackBy: raceAdded\">\n <cc-slot-race-card\n class=\"cc-slot-race-card\"\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"false\"\n [showPlaceholderCard]=\"showPlaceholderCard\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreeplaytechinLive\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\"\n (openNotificationOverlay)=\"openDialog($event, 'notification')\">\n </cc-slot-race-card>\n <div class=\"casino-subpage-leaderboard\" *ngIf=\"showLeaderboard && race.rankDetails && race.rankDetails.length > 0\">\n <cc-slot-races-leaderboard\n [race]=\"race\"\n [showTopThree]=\"true\"\n [lobbyType]=\"lobbyType\"\n [coinImg]=\"coinImg\"></cc-slot-races-leaderboard>\n <div class=\"See-full-leaderboard\" (click)=\"showFullLeaderboard(race)\">\n {{ messages.SeeLeaderboard }}\n </div>\n </div>\n </div>\n <div *ngIf=\"showPlaceholderCard\">\n <div class=\"casino-sr-card-widget\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta [isLegacy]=\"isLegacy\" [kind]=\"'primary'\" [cta_text]=\"messages.SeeAllRaces\" [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"casino-sr-card-wrapper-non-touch\"\n *ngIf=\"showCarousel && (isSubCategory || !enableBetterVisualization)\"\n [ngClass]=\"{ 'sr-card-leaderboard': showLeaderboard }\">\n <vn-swiper *ngIf=\"races && races.length\" [swiperOptions]=\"swiperOptions\">\n <div class=\"swiper-slide\" *ngFor=\"let race of races; let pos = index; trackBy: raceAddedDesktop\">\n <div *ngIf=\"(showPlaceholderCard && pos != races.length - 1) || !showPlaceholderCard\">\n <cc-slot-race-card\n class=\"cc-slot-race-card\"\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"false\"\n [showPlaceholderCard]=\"showPlaceholderCard\"\n [position]=\"pos\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreeplaytechinLive\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\"\n (openNotificationOverlay)=\"openDialog($event, 'notification')\">\n </cc-slot-race-card>\n <div class=\"casino-subpage-leaderboard\" *ngIf=\"showLeaderboard && race.rankDetails && race.rankDetails.length > 0\">\n <cc-slot-races-leaderboard [race]=\"race\" [showTopThree]=\"true\" [lobbyType]=\"lobbyType\" [coinImg]=\"coinImg\">\n </cc-slot-races-leaderboard>\n <div class=\"See-full-leaderboard\" (click)=\"showFullLeaderboard(race)\">\n {{ messages.SeeLeaderboard }}\n </div>\n </div>\n </div>\n\n <div class=\"casino-sr-card-widget\" *ngIf=\"showPlaceholderCard && pos == races.length - 1\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [cta_text]=\"messages.SeeAllRaces\"\n [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n </vn-swiper>\n <div class=\"casino-sr-card-widget\" *ngIf=\"showPlaceholderCard && races.length == 0\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta [isLegacy]=\"isLegacy\" [kind]=\"'primary'\" [cta_text]=\"messages.SeeAllRaces\" [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"casino-sr-card-wrapper mobile\"\n *ngIf=\"!showCarousel && !isSubCategory && enableBetterVisualization\"\n [ngClass]=\"{ 'sr-card-leaderboard': showLeaderboard }\">\n <div class=\"card-width\" *ngFor=\"let race of races; index as pos; trackBy: raceAdded; let f = first\">\n <cc-slot-race-card\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"false\"\n [showPlaceholderCard]=\"showPlaceholderCard\"\n [firstItem]=\"f\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreeplaytechinLive\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\">\n </cc-slot-race-card>\n </div>\n <div *ngIf=\"showPlaceholderCard\">\n <div class=\"casino-sr-card-widget\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta [isLegacy]=\"isLegacy\" [kind]=\"'primary'\" [cta_text]=\"messages.SeeAllRaces\" [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"casino-sr-card-wrapper-non-touch\"\n *ngIf=\"showCarousel && !isSubCategory && enableBetterVisualization\"\n [ngClass]=\"{ 'sr-card-leaderboard': showLeaderboard, 'sr-card-odd': races.length % 2 !== 0 }\">\n <div class=\"sr-new-cards\" *ngFor=\"let race of races; index as pos; trackBy: raceAddedDesktop\" [attr.data-index]=\"pos\">\n <div *ngIf=\"(showPlaceholderCard && pos != races.length - 1) || !showPlaceholderCard\">\n <cc-slot-race-card\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"false\"\n [showPlaceholderCard]=\"showPlaceholderCard\"\n [position]=\"pos\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreeplaytechinLive\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\">\n </cc-slot-race-card>\n </div>\n <div class=\"casino-sr-card-widget\" *ngIf=\"showPlaceholderCard && pos == races.length - 1\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta [isLegacy]=\"isLegacy\" [kind]=\"'primary'\" [cta_text]=\"messages.SeeAllRaces\" [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n <div class=\"casino-sr-card-widget\" *ngIf=\"showPlaceholderCard && races.length == 0\">\n <img alt=\"game-name1\" draggable=\"false\" src=\"{{ content?.placeholderCardImage?.image?.src }}\" />\n <div class=\"casino-new-races-soon\">\n <div class=\"casino-new-races-soon-icon theme-slots-race-coming-soon\"></div>\n <div class=\"casino-new-races-soon-title\">{{ messages.SoonToBeAnnounced }}</div>\n </div>\n <div class=\"sr-card-container-bottom sr-card-placeholder\">\n <div class=\"btn-section\" (click)=\"gotoSlotRaces()\">\n <!-- <div class=\"btn btn-primary sr-playbtn\">\n {{ messages.SeeAllRaces }}\n </div> -->\n <cs-slotrace-cta [isLegacy]=\"isLegacy\" [kind]=\"'primary'\" [cta_text]=\"messages.SeeAllRaces\" [csDecoratorClass]=\"'sr-playbtn'\">\n </cs-slotrace-cta>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { NgClass, NgFor, NgIf } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport {\n CasinoCoreNpmParamsService,\n CasinoLobbyService,\n CasinoManager,\n ConfigProviderService,\n DesignSystemEnablerService,\n Race,\n SitecoreContent,\n SlotRacesLive,\n SlotRacesService,\n SlotRacesTrackingService,\n UrlUtilityService,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\nimport { DeviceService, NavigationService, Page, RtmsService } from '@frontend/vanilla/core';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { Subscription, combineLatest } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { SwiperOptions } from 'swiper/types/swiper-options';\n\nimport { SlotRacesLeaderboardComponent } from '../leaderboard/leaderboard.component';\nimport { NotificationOverlayComponent } from '../notification-overlay/notification-overlay.component';\nimport { PickGameOverlayComponent } from '../pick-game-overlay/pick-game-overlay.component';\nimport { SlotRacesInfoComponent } from '../race-info/race-info.component';\nimport { SlotRaceCardComponent } from './card/card.component';\n\n@Component({\n selector: 'cc-slot-races-cards',\n templateUrl: 'cards-wrapper.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n NgClass,\n NgIf,\n NgFor,\n SlotRaceCardComponent,\n SlotRacesLeaderboardComponent,\n SwiperComponent,\n DecoratorClassDirective,\n SlotRaceCtaComponent,\n ],\n})\nexport class SlotRacesCardsComponent implements OnInit, OnChanges, OnDestroy {\n @Input() coinImg: string;\n @Input() selectedOption: string;\n races: Race[] = [];\n showCarousel: boolean = false;\n enableJPTicking: boolean;\n showJackpots: boolean;\n jackpots: Map<string, any>;\n isNextButtonVisible: boolean;\n isPreButtonVisible: boolean;\n jackpotConfig: any;\n features: any;\n raceAddedDesktop: any;\n categoryName: string;\n slotRacesConfig: any;\n isUkHeading: boolean;\n contentSubscription: Subscription;\n racesSubscription: Subscription;\n jackpotSubscription: Subscription;\n resizeSubscription: Subscription;\n jackpotTickingSubscription: Subscription;\n rtmsSubscription: Subscription;\n currentLobbyType: string;\n isFreeplaytechinLive: boolean = false;\n messages: { [item: string]: string } = {};\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n\n totalLeaderboardRanks: number;\n updateLeaderboard: boolean;\n nextUpcoming: Race | undefined;\n nearestEndingTime: number;\n enableUpcomingOptinForPlaytech: boolean;\n @Input() showLeaderboard: boolean = false;\n @Input() addUpcoming: boolean = false;\n @Input() showPlaceholderCard: boolean = false;\n @Input() lobbyType: string;\n @Input() category: any;\n @Input() liveRacesList: any;\n @Input() enableLiveRacesFilter: boolean;\n\n @Output() isPlaytechinLive = new EventEmitter<boolean>();\n elms: number;\n trackingClass: string = '';\n isSubCategory: boolean;\n enableBetterVisualization: boolean;\n isLegacy: boolean = false;\n\n swiperOptions: SwiperOptions = {\n autoHeight: true,\n allowTouchMove: false,\n spaceBetween: 1,\n slidesPerView: 3,\n navigation: true,\n preventClicks: false,\n preventClicksPropagation: false,\n };\n\n readonly windowWidth = this.deviceService.windowWidth;\n\n constructor(\n private slotRacesService: SlotRacesService,\n private dialog: MatDialog,\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private navigation: NavigationService,\n private slotRacesTracking: SlotRacesTrackingService,\n private page: Page,\n private urlUtilityService: UrlUtilityService,\n private casinoLobbyService: CasinoLobbyService,\n private rtmsService: RtmsService,\n private casinoCoreNpmParamsService: CasinoCoreNpmParamsService,\n private deviceService: DeviceService,\n private dsEnablerService: DesignSystemEnablerService,\n private destroyRef: DestroyRef,\n ) {}\n\n ngOnInit() {\n this.isSubCategory = this.category?.categoryInfo?.subcategoryid ? true : false;\n this.raceAddedDesktop = this.raceAdded.bind(this);\n this.slotRacesService.setSlotRaces(this.lobbyType);\n this.categoryName = (this.category && this.category.categoryInfo && this.category.categoryInfo.categoryname) || 'Casino Tournaments';\n this.features = this.configProviderService.provideFeaturesConfig();\n this.slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n this.enableUpcomingOptinForPlaytech = this.slotRacesConfig.enableUpcomingOptinForPlaytech;\n this.slotRacesService.startLiveSlotPolling();\n\n this.initShowCarousel();\n this.enableBetterVisualization = this.slotRacesConfig.enableBetterVisualization;\n this.subscribeToObservables();\n this.isLegacy = !this.dsEnablerService.isEnabled();\n }\n\n initShowCarousel() {\n this.showCarousel = this.casinoManager.isTouch()\n ? this.windowWidth() === 1024 && this.showPlaceholderCard\n ? true\n : (this.enableBetterVisualization ? this.windowWidth() === 310 : this.windowWidth() === 320) || this.windowWidth() > 1023\n ? !this.showPlaceholderCard\n : this.windowWidth() === 768\n ? this.showPlaceholderCard\n : false\n : true;\n }\n\n showCarouselArrows() {\n this.initShowCarousel();\n if (this.showCarousel) {\n // this.setCarouselConfigs();\n }\n }\n\n subscribeToObservables(): void {\n this.initRaces();\n this.resizeSubscription = this.casinoManager.reSizeObservable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((width: any) => {\n if (width) {\n this.showCarouselArrows();\n }\n });\n\n this.rtmsSubscription = this.rtmsService.messages.pipe(filter((m) => m.type === 'FREE_TECH_OPTIN_LIMIT_EXCEED')).subscribe((message) => {\n if (message.type == 'FREE_TECH_OPTIN_LIMIT_EXCEED' && this.races.length > 0 && message.payload) {\n this.races.forEach((race: Race) => {\n if (race.promoId == message.payload.promoId && race.slotUniqueId == message.payload.slotId) {\n race.targetedPlayerCount = race.optinLimit;\n return;\n }\n });\n }\n });\n\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n this.coinImg = this.content?.coinEconomy?.image?.src;\n });\n }\n\n ngOnChanges() {\n this.features = this.configProviderService.provideFeaturesConfig();\n this.jackpotConfig = this.configProviderService.provideJackpotConfig();\n if (this.currentLobbyType !== this.lobbyType) {\n this.currentLobbyType = this.lobbyType;\n this.isUkHeading = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, this.features.isUkHeading);\n this.showJackpots = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, this.jackpotConfig.showJackpotOnGameTilesLobbyType);\n this.enableJPTicking = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, this.jackpotConfig.enableJpTickingForLobbyType);\n this.slotRacesService.setSlotRacesParams(this.currentLobbyType);\n }\n if (this.races && this.races.length > 0) {\n if (this.enableLiveRacesFilter) {\n this.races = [...this.liveRacesList];\n }\n this.updateRaces();\n }\n }\n\n initRaces(): void {\n if (this.addUpcoming) {\n this.racesSubscription = combineLatest(this.slotRacesService.liveRacesData, this.slotRacesService.upcomingRacesData).subscribe(\n (races: any) => {\n //copying data in order to avoid reference sharing\n let liveRaces = races[0] && races[0].liveNow && races[0].liveNow.slice(0, races[0].liveNow.length);\n if (this.enableLiveRacesFilter) {\n liveRaces = [...this.liveRacesList];\n }\n const upcomingToday = races[1] && races[1].upcomingToday && races[1].upcomingToday.slice(0, races[1].upcomingToday.length);\n const upcomingTomorrow =\n races[1] && races[1].upcomingTomorrow && races[1].upcomingTomorrow.slice(0, races[1].upcomingTomorrow.length);\n\n const totalRaceCards = this.slotRacesConfig.noOfCards - 1;\n if (liveRaces && liveRaces.length >= totalRaceCards) {\n this.races = liveRaces.slice(0, totalRaceCards);\n } else {\n if (liveRaces) {\n this.races = liveRaces;\n }\n if (upcomingToday && upcomingToday.length) {\n const optedInRaces = upcomingToday.filter((r: Race) => {\n return r.ctaList.indexOf('OPTIN') === -1;\n });\n this.races = this.races.concat(optedInRaces.slice(0, totalRaceCards - this.races.length));\n if (this.races.length < totalRaceCards) {\n const notOptedInRaces = upcomingToday.filter((r: Race) => {\n return r.ctaList.indexOf('OPTIN') !== -1;\n });\n this.races = this.races.concat(notOptedInRaces.slice(0, totalRaceCards - this.races.length));\n }\n }\n if (this.races.length < totalRaceCards) {\n if (upcomingTomorrow && upcomingTomorrow.length) {\n const optedInRaces = upcomingTomorrow.filter((r: Race) => {\n return r.ctaList.indexOf('OPTIN') === -1;\n });\n this.races = this.races.concat(optedInRaces.slice(0, totalRaceCards - this.races.length));\n if (this.races.length < totalRaceCards) {\n const notOptedInRaces = upcomingTomorrow.filter((r: Race) => {\n return r.ctaList.indexOf('OPTIN') !== -1;\n });\n this.races = this.races.concat(notOptedInRaces.slice(0, totalRaceCards - this.races.length));\n }\n }\n }\n }\n this.updateRaces();\n },\n );\n } else {\n this.racesSubscription = this.slotRacesService.liveRacesData.subscribe((races: SlotRacesLive) => {\n if (races && races.liveNow) {\n this.races = races.liveNow.slice(0, races.liveNow.length);\n if (this.enableLiveRacesFilter) {\n this.races = [...this.liveRacesList];\n }\n this.updateRaces();\n }\n });\n }\n this.showCarouselArrows();\n }\n\n updateRaces(): void {\n this.isFreeplaytechinLive = false;\n if (this.showCarousel && this.races && this.races.length && this.showPlaceholderCard) {\n this.races.push(this.races[0]);\n }\n\n if (this.showCarousel) {\n this.setCarouselConfigs();\n }\n if (this.races && this.races.length > 0) {\n this.setUpdateStatus();\n if (this.category && this.category.categoryInfo) this.trackingClass = 'track_' + this.category.categoryInfo.categoryid;\n if (this.enableUpcomingOptinForPlaytech) {\n for (let i = 0; i < this.races.length; i++) {\n if (this.races[i].isLive && this.races[i]?.subType?.toLowerCase() === 'free_play_tech') {\n this.isFreeplaytechinLive = true;\n break;\n }\n }\n if (!this.isFreeplaytechinLive) {\n for (let i = 0; i < this.races.length; i++) {\n if (!this.races[i].isLive && this.races[i]?.subType?.toLowerCase() === 'free_play_tech') {\n this.races[i].firstPlayTech = true;\n break;\n }\n }\n }\n }\n }\n this.isPlaytechinLive.emit(this.isFreeplaytechinLive);\n }\n\n setUpdateStatus(): void {\n let totalRanks = 0;\n for (let i = 0; i < this.races.length; i++) {\n totalRanks += this.races[i].rankDetails && this.races[i].rankDetails.length;\n }\n if (totalRanks !== this.totalLeaderboardRanks) {\n this.totalLeaderboardRanks = totalRanks;\n this.updateLeaderboard = !this.updateLeaderboard;\n }\n this.nextUpcoming = this.races.find((r) => r.startDate.getTime() > Date.now());\n this.nearestEndingTime = this.races[0].endDate.getTime();\n for (let i = 0; i < this.races.length; i++) {\n if (this.races[i].endDate.getTime() < this.nearestEndingTime) {\n this.nearestEndingTime = this.races[i].endDate.getTime();\n }\n }\n }\n\n showFullLeaderboard(race: Race): void {\n this.openDialog(race, 'race-info');\n }\n\n gotoSlotRaces(): void {\n const activeCategory = this.casinoManager.getActiveCategory();\n this.slotRacesTracking.track('See upcoming - CTA Clicked', 'not applicable', activeCategory, 'User clicked on see upcoming Link');\n\n const casinoBaseUrl = this.urlUtilityService?.getCategoryNavigationBaseUrl();\n let categoryRoute;\n\n //this would be the case when the carousel is loaded inside casino lobby from a subcategory and hence the linked category info from lmt would be available\n if (this.category && this.category.categoryInfo && this.category.categoryInfo.linkedCategory) {\n const categoryInfo = this.casinoLobbyService.getCategoryInfoOnLMTId(this.lobbyType, this.category.categoryInfo.linkedCategory);\n categoryRoute = categoryInfo.route;\n } else {\n //this is the case when only the category id is passed ( as configured in dynacon ) through the npm package flow from slot races widget component\n categoryRoute = this.category && this.category.categoryInfo && this.category.categoryInfo.route;\n }\n\n //for the case of npm package, either keep the configured lobby type for other products on widget the same ans the lobby type where slot races is configured.. or else define the same product in the lobby type maps for that lobby type and invoker product as is defined for wherever slot races is configured\n const url = casinoBaseUrl + '/' + this.page?.lang + '/' + this.casinoManager?.getLobbyUrlPrefix(this.lobbyType) + '/c/' + categoryRoute;\n if (url) {\n this.navigation.goTo(url);\n }\n\n /* if (this.category.categoryInfo.linkedCategory) {\n let casinoBaseUrl = this.urlUtilityService.getCategoryNavigationBaseUrl();\n let categoryInfo = this.casinoLobbyService.getCategoryInfoOnLMTId(this.lobbyType, this.category.categoryInfo.linkedCategory);\n let catRoute = categoryInfo.route;\n let url = casinoBaseUrl + '/' + this.page.lang + '/' + this.casinoManager.getLobbyUrlPrefix(this.lobbyType) + '/c/' + catRoute;\n this.navigation.goTo(url);\n } */\n }\n\n openDialog(race: Race, dialog: 'race-info' | 'pick-game' | 'notification') {\n const component =\n dialog === 'race-info' ? SlotRacesInfoComponent : dialog === 'pick-game' ? PickGameOverlayComponent : NotificationOverlayComponent;\n this.openDialogOverlay(race, component);\n }\n\n openDialogOverlay(race: Race, component: any) {\n this.dialog.closeAll();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.autoFocus = false;\n this.dialogProperties(dialogConfig);\n dialogConfig.data = {\n race: race,\n category: this.category,\n lobbyType: this.lobbyType,\n enableOptin: this.enableUpcomingOptinForPlaytech && race.firstPlayTech && !this.isFreeplaytechinLive,\n coinImg: this.coinImg,\n };\n if (component == NotificationOverlayComponent) {\n dialogConfig.panelClass = 'casino-snotification-mat-dialog';\n } else {\n dialogConfig.panelClass = 'casino-sr-mat-dialog';\n }\n const dialogRef = this.dialog.open(component, dialogConfig);\n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n if (result.openRaceInfo) {\n this.openDialog(race, 'race-info');\n } else if (result.openPickGameOverlay) {\n this.openDialog(race, 'pick-game');\n } else if (result.openNotificationOverlay) {\n this.openDialog(race, 'notification');\n } else if (result.errorCode) {\n this.slotRacesService.addErrorMessage(result.errorCode);\n }\n }\n });\n }\n\n dialogProperties(dialogConfig: MatDialogConfig): void {\n if (window.matchMedia('(orientation: landscape)').matches && this.windowWidth() < 900) {\n dialogConfig.width = '100%';\n dialogConfig.height = '100%';\n dialogConfig.maxWidth = '100%';\n dialogConfig.maxHeight = '100%';\n } else if (this.windowWidth() >= 768) {\n dialogConfig.width = '668px';\n } else {\n dialogConfig.width = '100%';\n dialogConfig.height = '100%';\n dialogConfig.maxWidth = '100%';\n dialogConfig.maxHeight = '100%';\n }\n }\n\n setCarouselConfigs(): void {\n const casinoNpmParams = this.casinoCoreNpmParamsService.getcasinoCoreNpmParams();\n if (casinoNpmParams.isDll) {\n this.elms =\n this.windowWidth() === 320\n ? 1\n : this.windowWidth() === 768\n ? 2\n : this.races.length === 1 && !this.showPlaceholderCard\n ? 1\n : this.races.length >= 2 && !this.showPlaceholderCard\n ? 2\n : 3;\n } else {\n this.elms =\n this.windowWidth() === 320\n ? 1\n : this.windowWidth() === 768\n ? 2\n : this.windowWidth() === 1024\n ? 3\n : this.races.length === 1 && !this.showPlaceholderCard\n ? 1\n : this.races.length >= 2 && !this.showPlaceholderCard\n ? 2\n : 3.2;\n }\n }\n\n raceAdded(index: number, item: Race): string {\n if (item) {\n return item.isLive + '_' + item.promoId + '_' + item.slotUniqueId;\n } else {\n //this is a fix (workaround) added for the desktop carousel issue where the cards were not getting destroyed\n //until the actual trackBy in the carousel code is fixed - when (if) it is fixed - remove the else part\n //and the method raceAddedDesktop created with this method and bind()\n if (this.races) {\n let trackingString = '_';\n trackingString = this.nearestEndingTime + '_';\n if (this.nextUpcoming) {\n trackingString += this.nextUpcoming.isLive + '_' + this.nextUpcoming.promoId + '_' + this.nextUpcoming.slotUniqueId;\n }\n trackingString += this.updateLeaderboard;\n return trackingString;\n }\n return 'no_races';\n }\n }\n\n ngOnDestroy() {\n this.slotRacesService.stopLiveSlotPolling();\n\n if (this.contentSubscription) this.contentSubscription.unsubscribe();\n if (this.jackpotSubscription) this.jackpotSubscription.unsubscribe();\n if (this.jackpotTickingSubscription) this.jackpotTickingSubscription.unsubscribe();\n if (this.resizeSubscription) this.resizeSubscription.unsubscribe();\n if (this.racesSubscription) {\n this.racesSubscription.unsubscribe();\n }\n if (this.rtmsSubscription) {\n this.rtmsSubscription.unsubscribe();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/*how this pipe can be used:\n\n<div *ngFor=\"let result of results | resultsType:showAll\">hello</div>\n\n*/\n\n@Pipe({\n name: 'resultsType',\n standalone: true,\n})\nexport class ResultsPipe implements PipeTransform {\n transform(results: any, showAll: boolean): any {\n if (showAll) {\n return results;\n } else {\n return results.filter((item: any) => {\n return item.isWin;\n });\n }\n }\n}\n","<!--component html goes here -->\n<div class=\"casino-lobby-container-main\">\n <div class=\"result-title\">\n {{ messages.MyResults }}\n <div class=\"cls-btn theme-ex\" (click)=\"closeDialog()\"></div>\n </div>\n <div class=\"casino-sr-result-wraper\">\n <div class=\"sr-statistics-container\" *ngIf=\"showAwardsAndPrizes\">\n <div class=\"awards\">\n <span class=\"category-title\">Awards</span>\n <div class=\"awards-container\">\n <div class=\"awards-category\">\n <div class=\"awards theme-competitions\"></div>\n <div class=\"awards txt awards-type\">Gold Thropy</div>\n <div class=\"awards value awards-count\">1</div>\n </div>\n <div class=\"awards-category\">\n <div class=\"theme-competitions\"></div>\n <div class=\"awards txt awards-type\">Brown Thropy</div>\n <div class=\"awards value awards-count\">1</div>\n </div>\n <div class=\"awards-category\">\n <div class=\"theme-competitions\"></div>\n <div class=\"awards txt awards-type\">4th Place</div>\n <div class=\"awards value awards-count\">1</div>\n </div>\n <div class=\"awards-category\">\n <div class=\"theme-competitions\"></div>\n <div class=\"awards txt awards-type\">Badge</div>\n <div class=\"awards value awards-count\">1</div>\n </div>\n </div>\n </div>\n <div class=\"prizes\">\n <span class=\"category-title\">Prizes</span>\n <div class=\"casino-prizes-container\">\n <div class=\"prizes-category\">\n <div class=\"prizes theme-competitions\"></div>\n <div class=\"prizes txt prize-type\">Free Spins</div>\n <div class=\"prizes value values\">1230</div>\n </div>\n <div class=\"prizes-category\">\n <div class=\"prizes theme-competitions\"></div>\n <div class=\"prizes txt prize-type\">cash</div>\n <div class=\"prizes value values\">$590</div>\n </div>\n <div class=\"prizes-category\">\n <div class=\"prizes theme-competitions\"></div>\n <div class=\"prizes txt prize-type\">Bonus</div>\n <div class=\"prizes value values\">4</div>\n </div>\n <div class=\"prizes-category\"></div>\n </div>\n </div>\n <div class=\"general\">\n <span class=\"category-title\">General statistics</span>\n <div class=\"stats-container\">\n <div class=\"stats-category\">\n <div class=\"stats theme-competitions\"></div>\n <div class=\"stats txt stats-text\">Podiums</div>\n <div class=\"stats value values\">2</div>\n </div>\n <div class=\"stats-category\">\n <div class=\"stats theme-competitions\"></div>\n <div class=\"stats txt stats-text\">Total Points</div>\n <div class=\"stats value values\">38220</div>\n </div>\n <div class=\"stats-category\">\n <div class=\"stats theme-competitions\"></div>\n <div class=\"stats txt stats-text\">Total Races</div>\n <div class=\"stats value values\">143</div>\n </div>\n <div class=\"stats-category\">\n <div class=\"stats theme-competitions\"></div>\n <div class=\"stats txt stats-text\">Total Spins</div>\n <div class=\"stats value values\">3629</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sr-winners-container\">\n <span class=\"casino-winners-title\">{{ messages.Searchforresults }}</span>\n <div class=\"casino-inner-container\">\n <div class=\"results-btn\">\n <!-- <div class=\"form-group\">\n <div class=\"form-control-container form-control-tabs-container\">\n <div class=\"form-control-tabs promo-tabs d-flex\">\n <div class=\"form-control-tabs-item\" (click)=\"showAllResults()\">\n <input class=\"form-control-tabs-radio\" id=\"tab10\" name=\"group4\" type=\"radio\"\n [checked]=\"showAll\">\n <label class=\"form-control-tabs-label\" for=\"tab10\">{{messages.All}}</label>\n </div>\n <div class=\"form-control-tabs-item\" (click)=\"showWinResults()\">\n <input class=\"form-control-tabs-radio\" id=\"tab11\" name=\"group4\" type=\"radio\"\n [checked]=\"!showAll\">\n <label class=\"form-control-tabs-label\" for=\"tab11\">{{messages.Wins}}</label>\n </div>\n </div>\n </div>\n </div> -->\n <div class=\"form-control-tabs-segmented-v4\">\n <input\n type=\"radio\"\n name=\"2tabs-d-enh\"\n value=\"tb1-d-enh\"\n id=\"tb1-d-enh\"\n checked=\"\"\n class=\"form-control-tabs-segmented-v4-input\" />\n <label for=\"tb1-d-enh\" class=\"form-control-tabs-segmented-v4-label\" (click)=\"showAllResults()\">{{ messages.All }}</label>\n <input type=\"radio\" name=\"2tabs-d-enh\" value=\"tb2-d-enh\" id=\"tb2-d-enh\" class=\"form-control-tabs-segmented-v4-input\" />\n <label for=\"tb2-d-enh\" class=\"form-control-tabs-segmented-v4-label\" (click)=\"showWinResults()\">{{ messages.Wins }}</label>\n </div>\n </div>\n <div class=\"select-date\">\n <div class=\"from\">\n <mat-form-field>\n <input\n matInput\n readonly\n [min]=\"fromMinDate\"\n [max]=\"fromMaxDate\"\n [matDatepicker]=\"pickerFrom\"\n [placeholder]=\"messages?.From\"\n (dateChange)=\"fromChangeDate($event)\"\n (click)=\"pickerFrom.open()\" />\n <mat-datepicker-toggle matSuffix [for]=\"pickerFrom\"></mat-datepicker-toggle>\n <mat-datepicker #pickerFrom disabled=\"false\" panelClass=\"casino-datepicker\"></mat-datepicker>\n </mat-form-field>\n </div>\n <div class=\"to\">\n <mat-form-field>\n <input\n matInput\n readonly\n [min]=\"toMinDate\"\n [max]=\"toMaxDate\"\n [matDatepicker]=\"pickerTo\"\n [placeholder]=\"messages?.To\"\n (dateChange)=\"toChangeDate($event)\"\n (click)=\"pickerTo.open()\" />\n <mat-datepicker-toggle matSuffix [for]=\"pickerTo\"></mat-datepicker-toggle>\n <mat-datepicker #pickerTo disabled=\"false\" panelClass=\"casino-datepicker\"></mat-datepicker>\n </mat-form-field>\n </div>\n </div>\n <!-- <div class=\"show-result-btn btn btn-primary\" (click)=\"showResults()\">{{ messages.ShowResults }}</div> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [casinoDsClass]=\"'casino-showresultbtn'\"\n [cta_text]=\"messages.ShowResults\"\n [csDecoratorClass]=\"'show-result-btn'\"\n (click)=\"showResults()\">\n </cs-slotrace-cta>\n </div>\n </div>\n <div\n class=\"sr-results-list\"\n *ngIf=\"results && results.length > 0\"\n [ngClass]=\"{ 'result-history-enabled': slotRacesConfig.enableResultsHistoryPage }\">\n <span class=\"result-list-title\" *ngIf=\"initialLoad\">{{ messages.Last5Races }}</span>\n <div class=\"result-list-container\">\n <ul class=\"list-titles\">\n <li>{{ messages.Game }}</li>\n <li>{{ messages.Date }}</li>\n <li>{{ messages.Prize }}</li>\n <li>{{ messages.YourPlace }}</li>\n <li>{{ messages.Points }}</li>\n <li *ngIf=\"slotRacesConfig.enableResultsHistoryPage\"></li>\n </ul>\n <ul class=\"list-elements\" *ngFor=\"let result of results | resultsType: showAll\">\n <li>\n <cc-slot-races-icon\n class=\"cc-slot-races-icon\"\n [promoIcon]=\"result?.content?.promotion?.promoIcon\"\n [isDraggable]=\"false\"\n [isClickable]=\"false\"\n [gameVariantList]=\"result?.gameVariantList\"></cc-slot-races-icon>\n </li>\n <li>{{ result.dateStr }}</li>\n <li>\n <i class=\"sr-prize-icon\" [ngClass]=\"content?.textTranslations?.sharedList[result?.awardType?.toLowerCase()]\"></i>\n <span class=\"sr-card-total-prize-value\" [ngClass]=\"{ 'no-award-padding': result.awardValue === '--' && !result?.awardType }\">\n {{\n slotRacesConfig?.displayBonusAsText && result?.awardType?.toLowerCase() === 'bonus'\n ? messages?.Bonus\n : result?.awardValue\n }}\n <div class=\"srp-coin-reward\" *ngIf=\"result?.isDisplayCoin\">\n <span class=\"theme-plus\" *ngIf=\"result?.awardValue\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinSrc\" />\n </span>\n <span>{{ result?.coinValue }}</span>\n </div>\n </span>\n </li>\n <li>\n <div class=\"srp-img\" [innerHtml]=\"result.prizeIcon | trustAsHtml\"></div>\n {{ result.rank }}\n </li>\n <li>{{ result.points }}</li>\n <li class=\"theme-right\" *ngIf=\"slotRacesConfig.enableResultsHistoryPage\" (click)=\"openRaceInfoDialog(result)\"> </li>\n </ul>\n </div>\n </div>\n <div class=\"no-result-found\" *ngIf=\"showNoResults\">{{ resultsErrorMsg }}</div>\n </div>\n</div>\n","import { CurrencyPipe, DatePipe, NgClass, NgFor, NgIf } from '@angular/common';\nimport { AfterViewInit, Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatNativeDateModule, provideNativeDateAdapter } from '@angular/material/core';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport {\n CasinoLobbyService,\n ConfigProviderService,\n DesignSystemEnablerService,\n ResultsHistory,\n SitecoreContent,\n SlotRacesResponseError,\n SlotRacesService,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { cloneDeep } from 'lodash-es';\nimport { Subscription } from 'rxjs';\n\nimport { SlotRacesInfoComponent } from '../race-info/race-info.component';\nimport { ResultsPipe } from '../shared/results.pipe';\nimport { TournamentIconComponent } from '../tournament-icon/tournament-icon.component';\n\n@Component({\n selector: 'cc-slot-races-results',\n templateUrl: 'results.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n NgIf,\n MatFormFieldModule,\n MatInputModule,\n MatNativeDateModule,\n MatDatepickerModule,\n NgClass,\n NgFor,\n TournamentIconComponent,\n TrustAsHtmlPipe,\n ResultsPipe,\n DecoratorClassDirective,\n SlotRaceCtaComponent,\n ],\n providers: [CurrencyPipe, DatePipe, provideNativeDateAdapter()],\n})\nexport class SlotRacesResultsComponent implements OnInit, OnDestroy, AfterViewInit {\n title: string;\n showAwardsAndPrizes: boolean;\n showAll: boolean = true;\n maxDate: Date = new Date();\n toMinDate: Date;\n toMaxDate: Date = new Date();\n toDate: Date;\n fromMinDate: Date;\n fromMaxDate: Date = new Date();\n fromDate: Date;\n results: ResultsHistory[];\n initialLoad: boolean = true;\n showNoResults: boolean = false;\n messages: { [item: string]: string };\n resultsHistorySubscription: Subscription;\n contentSubscription: Subscription;\n isMobileView: boolean;\n coinSrc: string;\n isLegacy: boolean = false;\n\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n resultsErrorMsg: string;\n category: any;\n public slotRacesConfig: any;\n\n constructor(\n public dialogRef: MatDialogRef<SlotRacesResultsComponent>,\n @Inject(MAT_DIALOG_DATA) data: any,\n private slotRacesService: SlotRacesService,\n private configProviderService: ConfigProviderService,\n private currencyPipe: CurrencyPipe,\n private deviceService: DeviceService,\n private datePipe: DatePipe,\n private dialog: MatDialog,\n private casinoLobbyService: CasinoLobbyService,\n private dsEnablerService: DesignSystemEnablerService,\n ) {\n this.title = data.title;\n this.category = data.category;\n this.coinSrc = data.coinImg;\n }\n\n ngOnInit() {\n this.slotRacesConfig = this.configProviderService.provideSlotRacesConfig();\n this.showAwardsAndPrizes = this.slotRacesConfig.showAwardsAndPrizes;\n this.getResults();\n this.isLegacy = !this.dsEnablerService.isEnabled();\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n });\n }\n\n setResults() {\n this.results.forEach((result: any) => {\n // const gameConfig = this.configProviderService.provideGameConfig();\n result.gameIconSrc = this.casinoLobbyService.getImagePath(result.gameVariantName, 'square');\n // gameConfig.host + gameConfig.gameIconTemplate.replace('{0}', 'square').replace('{1}', result.gameVariantName) + '.' + 'jpg';\n result.dateStr = this.datePipe.transform(result.startDate, this.slotRacesConfig.resultsDateFormat);\n result?.configMaps?.forEach((configMap: any) => {\n if (configMap && configMap?.awardType) {\n if (configMap && configMap?.awardType?.toLowerCase() != 'coins') {\n if (configMap?.awardType && configMap?.value) {\n result.awardType = configMap.awardType;\n }\n if (result.isWin && configMap?.value) {\n if (!this.slotRacesConfig.displayBonusAsText) {\n if (\n configMap?.awardType?.toLowerCase() == 'freespins' ||\n configMap?.awardType?.toLowerCase() == 'free_spin' ||\n !configMap?.currency ||\n !configMap?.currency?.length\n ) {\n result.awardValue = Number(configMap.value);\n } else {\n result.awardValue = this.currencyPipe.transform(configMap.value, configMap.currency, 'symbol-narrow', '1.2-2');\n }\n } else {\n if (configMap && configMap.awardType && configMap.awardType?.toLowerCase().indexOf('cash') > -1) {\n result.awardValue = this.currencyPipe.transform(configMap.value, configMap.currency, 'symbol-narrow', '1.2-2');\n } else {\n result.awardValue = Number(configMap.value);\n }\n }\n } else {\n result.awardValue = '--';\n }\n }\n if (configMap && configMap?.awardType?.toLowerCase() == 'coins') {\n if (\n result?.configMaps.filter(function (e: any) {\n return e.awardType.toLowerCase() != 'coins';\n }).length == 0\n ) {\n result.awardType = configMap?.awardType.toLowerCase();\n }\n result.isDisplayCoin = true;\n result.coinValue = result.isDisplayCoin ? configMap.value : '';\n }\n } else {\n result.awardValue = '--';\n }\n });\n });\n }\n\n closeDialog() {\n this.dialogRef.close();\n }\n\n fromChangeDate(event: MatDatepickerInputEvent<Date>) {\n this.fromDate = event.value ? event.value : new Date();\n this.toMinDate = cloneDeep(this.fromDate);\n // this.toMinDate = {...this.fromDate};\n this.toMinDate.setDate(this.toMinDate.getDate() + 1);\n }\n\n toChangeDate(event: MatDatepickerInputEvent<Date>) {\n this.toDate = event.value ? event.value : new Date();\n this.toDate.setHours(23, 59, 59);\n this.fromMaxDate = cloneDeep(this.toDate);\n // this.fromMaxDate = {...this.toDate};\n this.fromMaxDate.setDate(this.fromMaxDate.getDate() - 1);\n }\n\n showAllResults() {\n this.showAll = true;\n }\n\n showWinResults() {\n this.showAll = false;\n }\n\n showResults() {\n this.initialLoad = false;\n this.getResults(this.toDate, this.fromDate);\n }\n\n private getResults(to?: Date, from?: Date): void {\n let noOfDays = 0;\n this.results = [];\n this.showNoResults = false;\n if (to && from) {\n noOfDays = Math.round((to.getTime() - from.getTime()) / (1000 * 3600 * 24));\n }\n if (noOfDays > this.slotRacesConfig.resultsForNoOfDays) {\n this.resultsErrorMsg = this.messages.ResultsNotMoreThan.replace('{noOfDays}', String(this.slotRacesConfig.resultsForNoOfDays));\n this.showNoResults = true;\n } else {\n let start: any, end: any;\n end = to ? to.toUTCString() : null;\n start = from ? from.toUTCString() : null;\n this.resultsHistorySubscription = this.slotRacesService.getResultsHistory(end, start).subscribe(\n (resultsHistory: ResultsHistory[]) => {\n if (resultsHistory && resultsHistory.length > 0) {\n this.results = this.initialLoad ? resultsHistory.slice(0, 5) : resultsHistory;\n this.setResults();\n this.showNoResults = false;\n } else {\n this.resultsErrorMsg = this.messages.NoResultsFound;\n this.showNoResults = true;\n }\n },\n (error: SlotRacesResponseError) => {\n this.resultsErrorMsg = this.slotRacesService.getErrorMessage(error.errorCode);\n this.showNoResults = true;\n },\n );\n }\n }\n\n ngOnDestroy() {\n this.resultsHistorySubscription.unsubscribe();\n this.contentSubscription.unsubscribe();\n }\n\n dialogProperties(dialogConfig: MatDialogConfig): void {\n if (!this.deviceService.isMobileWidth()) {\n dialogConfig.width = '668px';\n } else {\n dialogConfig.width = '100%';\n dialogConfig.height = '100%';\n dialogConfig.maxWidth = '100%';\n dialogConfig.maxHeight = '100%';\n }\n }\n\n openRaceInfoDialog(result: ResultsHistory) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.autoFocus = false;\n this.dialogProperties(dialogConfig);\n dialogConfig.data = {\n raceResult: result,\n resultsDialogRef: this.dialogRef,\n category: this.category,\n coinImg: this.coinSrc,\n };\n dialogConfig.panelClass = 'casino-sr-mat-dialog';\n const resultsDialog = document.getElementsByClassName('sr-results-dialog')[0] as HTMLElement;\n resultsDialog.style.display = 'none';\n this.dialog.open(SlotRacesInfoComponent, dialogConfig);\n }\n ngAfterViewInit() {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition && this.deviceService.isTouch) {\n this.slotracesOverlayTopAllignment();\n }\n }\n slotracesOverlayTopAllignment() {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n const contentMessageElement: HTMLElement =\n document.querySelector('.content-messages-header-top .content-message-container') || new HTMLElement();\n const sr2_overlay: HTMLElement = document.querySelector('cc-slot-races-results') || new HTMLElement();\n sr2_overlay.style.top = contentMessageElement.clientHeight + 'px';\n }\n }\n}\n","<div class=\"slot-list\" *ngIf=\"!showRaceCard\" [ngClass]=\"last ? 'slot-list-last' : ''\">\n <div class=\"list-item time\">{{ race.startTimeAMPM }}</div>\n <div class=\"list-item red-dot\" [ngClass]=\"first ? (last ? 'red-dot-first red-dot-last' : 'red-dot-first') : last ? 'red-dot-last' : ''\"></div>\n <div class=\"list-item game-name\">\n {{ title }}\n <div class=\"optin-with-coin\" *ngIf=\"race?.isOptinWithCoins\">\n {{ content?.textTranslations?.versionedList?.OptinCoinText }}\n </div>\n </div>\n <div class=\"list-item prize-amount\">{{ race?.additionalParams | prize: false }}</div>\n <div\n class=\"list-item theme-prize-icon\"\n *ngIf=\"race?.additionalParams?.awardType?.toLowerCase() != 'coins'\"\n [ngClass]=\"content?.textTranslations?.sharedList[(race?.additionalParams | prize: true)]\"></div>\n\n <span class=\"sr-card-total-coin\" *ngIf=\"race?.additionalParams?.awardType?.toLowerCase() == 'coins'\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinImg\" />\n </span>\n <ng-container *ngIf=\"coinObj?.isDisplayCoin\">\n <span class=\"theme-plus\"></span>\n <span class=\"sr-card-total-coin\">\n <img class=\"coin-img\" alt=\"Coin Image\" [src]=\"coinObj?.coinSrc\" />\n </span>\n </ng-container>\n\n <div class=\"list-item theme-down plus\" (click)=\"toggleRaceCardVisibility()\"></div>\n</div>\n<div *ngIf=\"showRaceCard\">\n <div class=\"casino-wrapper-sr-expand\">\n <cc-slot-race-card\n [enableOptin]=\"enableOptin\"\n [race]=\"race\"\n [category]=\"category\"\n [showRaceInfo]=\"true\"\n [lobbyType]=\"lobbyType\"\n [showCardMenu]=\"true\"\n [first]=\"first\"\n [last]=\"last\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [coinImg]=\"coinImg\"\n (hideCard)=\"toggleRaceCardVisibility()\"\n (openRaceInfo)=\"openRaceInfoDialog()\"\n (openPickGameOverlay)=\"openPickGameDialog()\"\n (openNotificationOverlay)=\"openNotificationDialog()\">\n </cc-slot-race-card>\n </div>\n</div>\n","import { CurrencyPipe, NgClass, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\nimport { Race, SitecoreContent, SlotRacesService, SlotRacesTrackingService } from '@casinocore/platform/core';\n\nimport { SlotRaceCardComponent } from './cards-wrapper/card/card.component';\nimport { PrizePipe } from './shared/prize.pipe';\n\n@Component({\n selector: 'cc-slot-races-item',\n templateUrl: 'timeline-item.component.html',\n standalone: true,\n imports: [NgIf, NgClass, SlotRaceCardComponent, PrizePipe],\n providers: [CurrencyPipe],\n})\nexport class SlotRacesTimelineItemComponent implements OnInit, OnChanges {\n @Input() race: Race;\n @Input() selectedOption: string;\n @Input() coinImg: string;\n @Input() content: SitecoreContent;\n @Input() first: boolean;\n @Input() last: boolean;\n @Input() toggleFirstCardOn: boolean;\n @Input() lobbyType: string;\n @Input() category: any;\n @Input() targetedPlayerCount: any;\n @Input() enableOptin: any;\n @Input() fromPickGameOverlay: boolean = false;\n isDisplayCoin: boolean;\n coinSrc: string;\n enableRaceNotification: boolean;\n value: any;\n forceOptinSubscription: any;\n playerCount: number;\n spinCount: number;\n playNowText: string;\n entryData: any = {};\n\n coinImageSrc: string | null = null;\n\n title: string;\n messages: { [item: string]: string } = {};\n showRaceCard: boolean;\n @Output() openRaceInfo = new EventEmitter<Race>();\n @Output() openPickGameOverlay = new EventEmitter();\n @Output() openNotificationOverlay = new EventEmitter();\n coinEconomyImageSrc: any;\n coinObj: any;\n\n constructor(\n private slotRacesTracking: SlotRacesTrackingService,\n private slotRacesService: SlotRacesService,\n ) {}\n\n ngOnInit() {\n this.showCard();\n this.title =\n this.race.gameVariantList.length > 1\n ? this.race.content?.promotion?.promoName\n ? this.race.content.promotion.promoName\n : this.race.gameId\n : this.race?.content?.promotion?.promoName?.startsWith('#')\n ? this.race?.content?.promotion?.promoName?.replace('#', '').trim()\n : this.race.gameId;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.showCard();\n\n if (changes?.targetedPlayerCount?.currentValue && this.race) {\n this.race.targetedPlayerCount = changes.targetedPlayerCount.currentValue;\n }\n if (changes?.race?.currentValue) {\n const raceCurrentValue = changes.race.currentValue;\n this.title =\n raceCurrentValue?.gameVariantList?.length > 1\n ? raceCurrentValue?.content?.promotion?.promoName\n ? raceCurrentValue?.content?.promotion?.promoName\n : raceCurrentValue.gameId\n : raceCurrentValue.content?.promotion?.promoName?.startsWith('#')\n ? raceCurrentValue?.content?.promotion?.promoName?.replace('#', '').trim()\n : raceCurrentValue.gameId;\n this.coinObj = this.slotRacesService.bindCoinImg(changes?.race?.currentValue, this.coinImg);\n }\n }\n\n toggleRaceCardVisibility() {\n const activeCategory = this.category?.categoryInfo?.categoryid;\n\n if (this.coinObj?.isDisplayCoin) {\n if (this.showRaceCard) {\n this.slotRacesTracking.track('Collapse', this.race.gameId, activeCategory, 'with coin icon');\n } else {\n this.slotRacesTracking.track('Expand', this.race.gameId, activeCategory, 'with coin icon');\n }\n } else {\n if (this.showRaceCard) {\n this.slotRacesTracking.track('Collapse', this.race.gameId, activeCategory, 'User clicked on Collapse to hide the slot race details');\n } else {\n this.slotRacesTracking.track('Expand', this.race.gameId, activeCategory, 'User clicked on Expand to see the slot race details');\n }\n }\n this.showRaceCard = !this.showRaceCard;\n }\n\n openRaceInfoDialog(): void {\n this.openRaceInfo.emit(this.race);\n }\n\n openPickGameDialog() {\n this.openPickGameOverlay.emit(this.race);\n }\n openNotificationDialog() {\n this.openNotificationOverlay.emit(this.race);\n }\n showCard() {\n if (this.toggleFirstCardOn && this.first) {\n this.showRaceCard = true;\n } else {\n this.showRaceCard = false;\n }\n this.slotRacesService.forceRace.subscribe((response: { race: Race }) => {\n if (response && response.race && response.race.slotUniqueId == this.race.slotUniqueId && response.race.promoId == this.race.promoId) {\n this.showRaceCard = true;\n }\n });\n this.slotRacesService.forceCoinBalanceObs.subscribe((coinBalRes: any) => {\n if (\n coinBalRes &&\n coinBalRes.race &&\n coinBalRes.race.promoId == this.race.promoId &&\n coinBalRes.race.slotUniqueId == this.race.slotUniqueId &&\n coinBalRes?.coinBal?.balance\n ) {\n this.showRaceCard = true;\n }\n });\n }\n}\n","<div class=\"casino-sr-sub-wrapper\" [ngClass]=\"{ 'new-slotraces-styles': !isSubCategory && enableBetterVisualization }\">\n <div>\n <div class=\"tabs\">\n <cc-slot-races-rules [showHeader]=\"false\" [isCollapsible]=\"false\" [isExpanded]=\"true\"></cc-slot-races-rules>\n </div>\n <div class=\"show-more\">\n <a class=\"showmore-text\" (click)=\"openFullRulesDialog()\">{{ content?.textTranslations?.versionedList?.SeeRules }}</a>\n </div>\n <div\n class=\"coineconmy-filter\"\n *ngIf=\"enableCoinEconomy && entryDetailsKeys?.length > 1\"\n [ngClass]=\"{ 'coineconmy-filter-non-touch': !isTouch }\">\n <ul>\n <li *ngFor=\"let item of entryDetailsKeys; let i = index\" [class.active]=\"selectedOption === item\" (click)=\"onFilterSelect(item)\">\n {{ entryDetails[item] }}\n </li>\n </ul>\n </div>\n <vn-message-panel [scope]=\"'subslotraces'\"></vn-message-panel>\n <div class=\"casino-race-list-header\" *ngIf=\"liveRacesList?.length > 0\">\n <span class=\"theme-icon theme-slots-race-headline\"></span>\n <span class=\"race-list-title\">{{ content?.textTranslations?.versionedList?.LiveNow }}</span>\n </div>\n <cc-slot-races-cards\n *ngIf=\"liveRacesList?.length > 0\"\n [lobbyType]=\"lobbyType\"\n [showLeaderboard]=\"true\"\n [showPlaceholderCard]=\"false\"\n [category]=\"category\"\n [liveRacesList]=\"liveRacesList\"\n [enableLiveRacesFilter]=\"enableLiveRacesFilter\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (isPlaytechinLive)=\"PlaytechinLive($event)\"></cc-slot-races-cards>\n <ng-container\n *ngIf=\"liveRacesList?.length == 0 && upcomingRacesList?.upcomingToday?.length == 0 && upcomingRacesList?.upcomingTomorrow?.length == 0\">\n <vn-page-matrix [path]=\"'MobileCasino-v1.0/CasinoSlotRaces/NoUpcomingRaces/NoMoreRaces'\"></vn-page-matrix>\n </ng-container>\n\n <div [ngClass]=\"enableUpcomingOptinForPlaytech && !isFreePlaytechinLive ? 'upcoming-section' : 'today-section'\">\n <div class=\"casino-race-list-header\" *ngIf=\"upcomingRacesList?.upcomingToday?.length > 0\">\n <div class=\"theme-icon theme-slots-race-coming-up-today\"></div>\n <div class=\"race-list-title\">{{ content?.textTranslations?.versionedList?.UpcomingToday }}</div>\n </div>\n <div\n *ngFor=\"let race of upcomingRacesList?.upcomingToday; let f = first; let l = last; trackBy: raceAdded\"\n [ngClass]=\"{ 'play-tech': race.subType.toLowerCase() === 'free_play_tech' }\">\n <cc-slot-races-item\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreePlaytechinLive\"\n [lobbyType]=\"lobbyType\"\n [race]=\"race\"\n [category]=\"category\"\n [content]=\"content\"\n [first]=\"f\"\n [last]=\"l\"\n [toggleFirstCardOn]=\"toggleOpenUpcomingTodayCard\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\"\n (openNotificationOverlay)=\"openDialog($event, 'notification')\">\n </cc-slot-races-item>\n </div>\n <div class=\"casino-race-list-header\" *ngIf=\"upcomingRacesList?.upcomingTomorrow?.length > 0\">\n <div class=\"theme-icon theme-slots-race-coming-tomorrow\"></div>\n <div class=\"race-list-title\">{{ content?.textTranslations?.versionedList?.UpcomingTomorrow }}</div>\n </div>\n <div\n *ngFor=\"let race of upcomingRacesList?.upcomingTomorrow; let f = first; let l = last; trackBy: raceAdded\"\n [ngClass]=\"{ 'play-tech': race.subType.toLowerCase() === 'free_play_tech' }\">\n <cc-slot-races-item\n [enableOptin]=\"enableUpcomingOptinForPlaytech && race.firstPlayTech && !isFreePlaytechinLive\"\n [lobbyType]=\"lobbyType\"\n [race]=\"race\"\n [category]=\"category\"\n [content]=\"content\"\n [first]=\"f\"\n [last]=\"l\"\n [toggleFirstCardOn]=\"toggleOpenUpcomingTomorrowCard\"\n [targetedPlayerCount]=\"race.targetedPlayerCount\"\n [coinImg]=\"coinImg\"\n [selectedOption]=\"selectedOption\"\n (openRaceInfo)=\"openDialog($event, 'race-info')\"\n (openPickGameOverlay)=\"openDialog($event, 'pick-game')\"\n (openNotificationOverlay)=\"openDialog($event, 'notification')\"></cc-slot-races-item>\n </div>\n </div>\n <!-- <div *ngIf=\"(liveRacesList?.length == 0 && upcomingRacesList?.upcomingToday?.length == 0 && upcomingRacesList?.upcomingTomorrow?.length == 0)\" class=\"tourment-message\">{{ tourment }}</div> -->\n </div>\n <div class=\"casino-show-result-btn\" *ngIf=\"auth\">\n <!-- <div (click)=\"showResults()\" class=\"casino-sub-page show-result-btn btn btn-primary\">\n {{ content?.textTranslations?.versionedList.SeeResults }}\n </div> -->\n <cs-slotrace-cta\n [isLegacy]=\"isLegacy\"\n [kind]=\"'primary'\"\n [cta_text]=\"content?.textTranslations?.versionedList.SeeResults\"\n [csDecoratorClass]=\"'casino-sub-page show-result-btn'\"\n (click)=\"showResults()\">\n </cs-slotrace-cta>\n </div>\n</div>\n","import { NgClass, NgFor, NgIf } from '@angular/common';\nimport { Component, DestroyRef, HostListener, Input, OnChanges, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport {\n CasinoManager,\n ConfigProviderService,\n DesignSystemEnablerService,\n FILTER_TYPE_ALL,\n FILTER_TYPE_CASH_ENTRY,\n FILTER_TYPE_COINS_ENTRY,\n FILTER_TYPE_COIN_REWARD,\n FILTER_TYPE_FREE_ENTRY,\n Race,\n SitecoreContent,\n SlotRacesLive,\n SlotRacesService,\n SlotRacesTrackingService,\n SlotRacesUpcoming,\n} from '@casinocore/platform/core';\nimport { DecoratorClassDirective, SlotRaceCtaComponent } from '@frontend/casino-ui';\nimport { DeviceService, Page, RtmsService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { Subscription, combineLatest } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { SlotRacesCardsComponent } from './cards-wrapper/cards-wrapper.component';\nimport { NotificationOverlayComponent } from './notification-overlay/notification-overlay.component';\nimport { PickGameOverlayComponent } from './pick-game-overlay/pick-game-overlay.component';\nimport { SlotRacesInfoComponent } from './race-info/race-info.component';\nimport { SlotRacesResultsComponent } from './results/results.component';\nimport { SlotRacesRulesAndTnCComponent } from './rules-points-tips-tnc/rules-and-tnc.component';\nimport { SlotRacesRulesComponent } from './rules-points-tips-tnc/rules/rules.component';\nimport { SlotRacesTimelineItemComponent } from './timeline-item.component';\n\n@Component({\n selector: 'cc-slot-races',\n templateUrl: 'slot-races.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n NgClass,\n SlotRacesRulesComponent,\n NgIf,\n NgFor,\n MessagePanelComponent,\n SlotRacesCardsComponent,\n PageMatrixComponent,\n SlotRacesTimelineItemComponent,\n DecoratorClassDirective,\n SlotRaceCtaComponent,\n ],\n})\nexport class SlotRacesComponent implements OnInit, OnChanges, OnDestroy {\n @Input() lobbyType: string;\n @Input() category: any;\n categoryName: string = 'Casino Tournaments';\n upcomingRaces: SlotRacesUpcoming;\n liveRaces: SlotRacesLive;\n race: Race;\n isTouch: boolean;\n entryDetails: any;\n isLoggedIn: boolean;\n content: SitecoreContent = {\n raceRuleConfigs: [],\n rules: [],\n rulesBanner: {},\n placeholderCardImage: {},\n coinEconomy: {},\n textTranslations: { sharedList: {}, versionedList: {} },\n tips: [],\n errorMessages: { sharedList: {}, versionedList: {} },\n entryDetails: { sharedList: {}, versionedList: {} },\n };\n @Input() routeCurrentProduct: string;\n\n contentSubscription: Subscription;\n upcomingRacesSubscription: Subscription;\n liveRacesSubscription: Subscription;\n rtmsSubscription: Subscription;\n auth: boolean;\n popupPurchage: any;\n selectedOption: string;\n toggleOpenUpcomingTodayCard: boolean = false;\n toggleOpenUpcomingTomorrowCard: boolean = false;\n isSubCategory: boolean;\n coinsForOptin: number;\n enableFixedMobileNavigation: boolean;\n isEnableOptimizedTeasers: boolean;\n displayCatHeader: boolean;\n enableBetterVisualization: boolean;\n currentLobbyType: string;\n enableUpcomingOptinForPlaytech: boolean;\n isFreePlaytechinLive: boolean = false;\n entryTypeSelectRef: any;\n selectedValue: string;\n filteredData: any[] = [];\n optInButtonText: any;\n entryData: any = {};\n isOptinWithCoins: boolean = false;\n enableLiveRacesFilter: boolean;\n selectedOptionValue: any;\n tourment: string;\n messages: { [item: string]: string } = {};\n entryDetailsKeys: string[];\n raceItem: any;\n liveRacesList: any;\n upcomingRacesList: any = {};\n coinImg: string;\n enableCoinEconomy: boolean;\n firstTimeTracking: boolean = true;\n isLegacy: boolean = false;\n constructor(\n private dialog: MatDialog,\n private userService: UserService,\n private casinoManager: CasinoManager,\n private slotRacesService: SlotRacesService,\n private configProviderService: ConfigProviderService,\n private slotRacesTracking: SlotRacesTrackingService,\n private rtmsService: RtmsService,\n private router: Router,\n private page: Page,\n private route: ActivatedRoute,\n private deviceService: DeviceService,\n private dsEnablerService: DesignSystemEnablerService,\n private destroyRef: DestroyRef,\n ) {\n this.isTouch = this.deviceService.isTouch;\n }\n // @ to detect broswer back button\n @HostListener('window:popstate', ['$event'])\n onPopState() {\n setTimeout(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const filterParam = urlParams.get('filter');\n if (filterParam) {\n this.displayFilterEntryMessage();\n this.onFilterSelect(this.selectedOption);\n }\n }, 100);\n }\n\n ngOnInit() {\n this.isSubCategory = !!this.category?.categoryInfo?.subcategoryid;\n this.slotRacesService.setSlotRaces(this.lobbyType);\n const features = this.configProviderService.provideFeaturesConfig();\n const slotRaceConfigs = this.configProviderService.provideSlotRacesConfig();\n this.enableBetterVisualization = slotRaceConfigs.enableBetterVisualization;\n this.enableFixedMobileNavigation = features.enableFixedMobileNavigation;\n this.enableUpcomingOptinForPlaytech = slotRaceConfigs.enableUpcomingOptinForPlaytech;\n const optimizedTeaserConfigs = this.configProviderService.provideOptimizedTeaserConfig();\n this.isEnableOptimizedTeasers = optimizedTeaserConfigs.teaserOptimization;\n this.slotRacesService.getRaces();\n this.displayCatHeader = features.enableHeaderforCategory;\n this.categoryName = this.category && this.category.categoryInfo && this.category.categoryInfo.categoryname;\n this.enableCoinEconomy = this.configProviderService.provideSlotRacesConfig()?.enableCoinEconomy;\n this.isLegacy = !this.dsEnablerService.isEnabled();\n if (navigator.userAgent.indexOf('Firefox') != -1) {\n document.getElementsByTagName('html')[0].classList.add('firefox');\n }\n this.subscribeToData();\n this.auth = this.userService.isAuthenticated;\n this.casinoManager.reSizeObservable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((width: any) => {\n if (width) {\n const dialogConfig = new MatDialogConfig();\n this.dialogProperties(dialogConfig);\n }\n });\n this.userService.events\n .pipe(\n filter((e: any) => e instanceof UserLoginEvent),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.auth = true;\n });\n\n this.displayFilterEntryMessage();\n }\n\n ngOnChanges() {\n if (this.currentLobbyType !== this.lobbyType) {\n this.currentLobbyType = this.lobbyType;\n this.slotRacesService.setSlotRacesParams(this.currentLobbyType);\n }\n }\n\n onFilterSelect(selectedOption: string) {\n this.firstTimeTracking = true;\n this.selectedOption = selectedOption || 'ALL';\n const seletedEntryOption = this.entryDetails[selectedOption];\n if (seletedEntryOption) {\n const queryParams = { filter: seletedEntryOption.replaceAll(' ', '_') };\n this.subscribeToData();\n if (this.selectedOption.toUpperCase() === FILTER_TYPE_ALL) {\n this.router.navigateByUrl(\n '/' +\n this.page.lang +\n '/' +\n this.casinoManager.getProductForGivenLobbyType(this.lobbyType).toLowerCase() +\n '/c/' +\n this.category?.categoryInfo.categoryid,\n );\n this.tourment = '';\n } else {\n this.router.navigate([], { queryParams, queryParamsHandling: 'merge' });\n this.tourment = this.messages.NoTourmentsAreAvailableWith\n ? this.messages.NoTourmentsAreAvailableWith + ' ' + this.selectedOption\n : '';\n }\n }\n }\n\n updateslotRaceUpcomingData(data: SlotRacesUpcoming) {\n let firstPlayTechFound: boolean = false;\n if (data && data.upcomingToday && data.upcomingToday.length > 0) {\n for (let i = 0; i < data.upcomingToday.length; i++) {\n if (data?.upcomingToday[i]?.subType?.toLowerCase() === 'free_play_tech') {\n data.upcomingToday[i].firstPlayTech = true;\n firstPlayTechFound = true;\n break;\n }\n }\n }\n if (!firstPlayTechFound && data && data.upcomingTomorrow && data.upcomingTomorrow.length > 0) {\n for (let i = 0; i < data.upcomingTomorrow.length; i++) {\n if (data?.upcomingTomorrow[i]?.subType?.toLowerCase() === 'free_play_tech') {\n data.upcomingTomorrow[i].firstPlayTech = true;\n break;\n }\n }\n }\n }\n\n subscribeToData() {\n this.liveRacesSubscription = this.slotRacesService.liveRacesData.subscribe((data: SlotRacesLive) => {\n this.liveRaces = data;\n this.liveRacesList = this.liveRaces.liveNow;\n if (this.liveRaces && this.enableCoinEconomy) {\n if (this.selectedOption?.toUpperCase() === FILTER_TYPE_ALL) {\n this.liveRacesList = this.liveRaces.liveNow;\n } else if (this.selectedOption === FILTER_TYPE_CASH_ENTRY) {\n this.liveRacesList = this.liveRaces?.liveNow.filter((raceItem) => raceItem.subType == 'CASINO_LEADERBOARD');\n } else if (this.selectedOption === FILTER_TYPE_COIN_REWARD) {\n this.liveRacesList = this.liveRaces?.liveNow.filter(\n (raceItem) =>\n raceItem?.additionalParams?.awardType === 'COINS' ||\n (raceItem?.additionalParams?.awardType !== 'COINS' && raceItem?.additionalParams?.isCoinAward === 'YES'),\n );\n } else {\n const filteredLiveRaces = this.liveRaces?.liveNow.filter(\n (raceItem) => raceItem.subType === 'FREE_TO_PLAY' || raceItem.subType?.toLowerCase() === 'free_play_tech',\n );\n if (this.selectedOption === FILTER_TYPE_COINS_ENTRY) {\n this.liveRacesList = filteredLiveRaces?.filter((raceItem) => raceItem?.isOptinWithCoins);\n } else if (this.selectedOption === FILTER_TYPE_FREE_ENTRY) {\n this.liveRacesList = filteredLiveRaces?.filter((raceItem) => !raceItem?.isOptinWithCoins);\n } else {\n this.liveRacesList = [];\n }\n }\n this.enableLiveRacesFilter = true;\n }\n });\n this.upcomingRacesSubscription = this.slotRacesService.upcomingRacesData.subscribe((data: SlotRacesUpcoming) => {\n this.upcomingRaces = data;\n this.upcomingRacesList = { ...this.upcomingRaces };\n if (this.upcomingRaces && this.enableCoinEconomy) {\n if (this.selectedOption?.toUpperCase() === FILTER_TYPE_ALL) {\n this.upcomingRacesList = { ...this.upcomingRaces };\n } else if (this.selectedOption == FILTER_TYPE_CASH_ENTRY) {\n this.upcomingRacesList.upcomingToday = this.upcomingRaces?.upcomingToday.filter(\n (raceItem) => raceItem.subType == 'CASINO_LEADERBOARD',\n );\n this.upcomingRacesList.upcomingTomorrow = this.upcomingRaces?.upcomingTomorrow.filter(\n (raceItem) => raceItem.subType == 'CASINO_LEADERBOARD',\n );\n } else if (this.selectedOption == FILTER_TYPE_COIN_REWARD) {\n this.upcomingRacesList.upcomingToday = this.upcomingRaces?.upcomingToday.filter(\n (raceItem) =>\n raceItem?.additionalParams?.awardType === 'COINS' ||\n (raceItem?.additionalParams?.awardType !== 'COINS' && raceItem?.additionalParams?.isCoinAward === 'YES'),\n );\n this.upcomingRacesList.upcomingTomorrow = this.upcomingRaces?.upcomingTomorrow.filter(\n (raceItem) =>\n raceItem?.additionalParams?.awardType === 'COINS' ||\n (raceItem?.additionalParams?.awardType !== 'COINS' && raceItem?.additionalParams?.isCoinAward === 'YES'),\n );\n } else {\n const filteredUpcomingToday = this.upcomingRaces?.upcomingToday.filter(\n (raceItem) => raceItem.subType === 'FREE_TO_PLAY' || raceItem.subType?.toLowerCase() === 'free_play_tech',\n );\n const filteredUpcomingTomorrow = this.upcomingRaces?.upcomingTomorrow.filter(\n (raceItem) => raceItem.subType === 'FREE_TO_PLAY' || raceItem.subType?.toLowerCase() === 'free_play_tech',\n );\n if (this.selectedOption === FILTER_TYPE_COINS_ENTRY) {\n this.upcomingRacesList.upcomingToday = filteredUpcomingToday?.filter((raceItem) => raceItem?.isOptinWithCoins);\n this.upcomingRacesList.upcomingTomorrow = filteredUpcomingTomorrow?.filter((raceItem) => raceItem?.isOptinWithCoins);\n } else if (this.selectedOption === FILTER_TYPE_FREE_ENTRY) {\n this.upcomingRacesList.upcomingToday = filteredUpcomingToday?.filter((raceItem) => !raceItem?.isOptinWithCoins);\n this.upcomingRacesList.upcomingTomorrow = filteredUpcomingTomorrow?.filter((raceItem) => !raceItem?.isOptinWithCoins);\n } else {\n this.upcomingRacesList.upcomingToday = [];\n this.upcomingRacesList.upcomingTomorrow = [];\n }\n }\n }\n if (this.enableUpcomingOptinForPlaytech) this.updateslotRaceUpcomingData(data);\n });\n combineLatest(this.slotRacesService.liveRacesData, this.slotRacesService.upcomingRacesData).subscribe((data: any) => {\n if (data[0].liveNow.length === 0) {\n this.toggleFirstCard(true);\n } else {\n this.toggleFirstCard(false);\n }\n });\n\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.content = content;\n this.entryDetails = content?.entryDetails ? content.entryDetails.versionedList : {};\n this.entryDetailsKeys = this.entryDetails ? Object.keys(this.entryDetails) : [];\n this.messages = content && content.textTranslations ? content.textTranslations.versionedList : {};\n this.coinImg = this.content?.coinEconomy?.image?.src;\n this.displayTournamentErrorMessage();\n });\n this.rtmsSubscription = this.rtmsService.messages\n .pipe(filter((m) => m.type === 'FREE_TECH_OPTIN_LIMIT_EXCEED' || m.type === 'SLOT_RACE_EDIT' || m.type === 'PLAYER_NOTIFICATION_STARTED'))\n .subscribe((message) => {\n if ((this.upcomingRaces?.upcomingToday?.length > 0 || this.upcomingRaces?.upcomingTomorrow?.length > 0) && message.payload) {\n this.upcomingRaces.upcomingToday.forEach((race: Race) => {\n if (race.promoId == message.payload.promoId && race.slotUniqueId == message.payload.slotId) {\n if (message.type == 'FREE_TECH_OPTIN_LIMIT_EXCEED') {\n race.targetedPlayerCount = race.optinLimit;\n } else if (message.type === 'PLAYER_NOTIFICATION_STARTED') {\n race.isNotify = true;\n }\n return;\n }\n });\n this.upcomingRaces.upcomingTomorrow.forEach((race: Race) => {\n if (race.promoId == message.payload.promoId && race.slotUniqueId == message.payload.slotId) {\n if (message.type == 'FREE_TECH_OPTIN_LIMIT_EXCEED') {\n race.targetedPlayerCount = race.optinLimit;\n } else if (message.type === 'PLAYER_NOTIFICATION_STARTED') {\n race.isNotify = true;\n }\n return;\n }\n });\n }\n\n if (message.type == 'SLOT_RACE_EDIT') {\n if (this.userService.isAuthenticated) this.slotRacesService.getUpcomingRaces();\n }\n });\n }\n\n showResults(): void {\n const dialogConfig = new MatDialogConfig();\n this.dialogProperties(dialogConfig);\n dialogConfig.autoFocus = true;\n dialogConfig.data = {\n title: 'your results',\n category: this.category,\n coinImg: this.coinImg,\n };\n dialogConfig.panelClass = 'sr-results-dialog';\n const activeCategory = this.category && this.category.categoryInfo && this.category.categoryInfo.categoryid;\n this.slotRacesTracking.track(\n 'See your Results - CTA Clicked',\n 'My Results Ovelay',\n activeCategory,\n 'User Clicked on see reults CTA to check the results',\n );\n const dialogRef = this.dialog.open(SlotRacesResultsComponent, dialogConfig);\n dialogRef.afterClosed().subscribe(() => {});\n setTimeout(() => {\n this.rulesAndTcOverlayTopAllignment();\n }, 0);\n }\n\n openDialog(race: Race, dialog: 'race-info' | 'pick-game' | 'notification') {\n const component =\n dialog === 'race-info' ? SlotRacesInfoComponent : dialog === 'pick-game' ? PickGameOverlayComponent : NotificationOverlayComponent;\n this.openDialogOverlay(race, component);\n }\n\n openDialogOverlay(race: Race, component: any) {\n this.dialog.closeAll();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.autoFocus = false;\n this.dialogProperties(dialogConfig);\n dialogConfig.data = {\n race: race,\n category: this.category,\n lobbyType: this.lobbyType,\n enableOptin: this.enableUpcomingOptinForPlaytech && race.firstPlayTech && !this.isFreePlaytechinLive,\n coinImg: this.coinImg,\n };\n if (component == NotificationOverlayComponent) {\n dialogConfig.panelClass = 'casino-snotification-mat-dialog';\n } else {\n dialogConfig.panelClass = 'casino-sr-mat-dialog';\n }\n const dialogRef = this.dialog.open(component, dialogConfig);\n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n if (result.openRaceInfo) {\n this.openDialog(race, 'race-info');\n } else if (result.openPickGameOverlay) {\n this.openDialog(race, 'pick-game');\n } else if (result.openNotificationOverlay) {\n this.openDialog(race, 'notification');\n } else if (result.errorCode) {\n this.slotRacesService.addErrorMessage(result.errorCode);\n }\n }\n });\n }\n\n dialogProperties(dialogConfig: MatDialogConfig) {\n if (window.matchMedia('(orientation: landscape)').matches && this.deviceService.windowWidth() < 900) {\n dialogConfig.width = '100%';\n dialogConfig.height = '100%';\n dialogConfig.maxWidth = '100%';\n dialogConfig.maxHeight = '100%';\n } else if (!this.deviceService.isMobileWidth()) {\n dialogConfig.width = '668px';\n } else {\n dialogConfig.width = '100%';\n dialogConfig.height = '100%';\n dialogConfig.maxWidth = '100%';\n dialogConfig.maxHeight = '100%';\n }\n }\n\n ngOnDestroy() {\n this.upcomingRacesSubscription.unsubscribe();\n this.liveRacesSubscription.unsubscribe();\n this.contentSubscription.unsubscribe();\n if (this.rtmsSubscription) {\n this.rtmsSubscription.unsubscribe();\n }\n }\n\n openFullRulesDialog(): void {\n this.dialog.open(SlotRacesRulesAndTnCComponent, { width: '668px', panelClass: 'casino-sr-mat-dialog' });\n setTimeout(() => {\n this.rulesAndTcOverlayTopAllignment();\n }, 0);\n }\n\n raceAdded(item: Race): string {\n return item.promoId + '_' + item.slotUniqueId;\n }\n toggleFirstCard(toggle: boolean) {\n if (toggle) {\n if (this.upcomingRaces.upcomingToday && this.upcomingRaces.upcomingToday.length != 0) {\n this.toggleOpenUpcomingTodayCard = true;\n } else if (this.upcomingRaces.upcomingTomorrow && this.upcomingRaces.upcomingTomorrow.length != 0) {\n this.toggleOpenUpcomingTomorrowCard = true;\n }\n } else {\n this.toggleOpenUpcomingTodayCard = false;\n this.toggleOpenUpcomingTomorrowCard = false;\n }\n }\n PlaytechinLive(event: any) {\n this.isFreePlaytechinLive = event;\n }\n rulesAndTcOverlayTopAllignment() {\n const featuresConfig = this.configProviderService.provideFeaturesConfig();\n if (featuresConfig.enableOverlayMobileSearchTopPosition) {\n if (document.querySelector('.content-messages-header-top .content-message-container')) {\n const contentMessageElement: HTMLElement | null = document.querySelector('.content-messages-header-top .content-message-container');\n const srtc_overlay: HTMLElement = document.querySelector('.cdk-overlay-container') as HTMLElement;\n srtc_overlay.style.top = contentMessageElement?.clientHeight + 'px';\n }\n }\n }\n\n displayTournamentErrorMessage(apiCall: boolean = false) {\n if (this.selectedOption?.toUpperCase() === FILTER_TYPE_ALL) {\n this.tourment = '';\n if (apiCall) {\n this.subscribeToData();\n }\n } else {\n const selectedOptionMessages = this.entryDetails[this.selectedOption];\n if (!selectedOptionMessages) {\n this.tourment = this.messages?.DefaultMessage;\n } else {\n this.tourment = this.messages?.NoTourmentsAreAvailableWith\n ? this.messages?.NoTourmentsAreAvailableWith + ' ' + this.selectedOption\n : '';\n }\n }\n }\n\n displayFilterEntryMessage() {\n if (this.enableCoinEconomy) {\n this.route.queryParams.subscribe((params) => {\n const storedFilter = params.filter;\n if (this.isEmptyObject(this.entryDetails)) {\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.entryDetails = content?.entryDetails ? content.entryDetails.versionedList : {};\n this.assignSelectedOptionBasedOnFilter(storedFilter);\n });\n } else {\n this.assignSelectedOptionBasedOnFilter(storedFilter);\n }\n });\n }\n }\n\n isEmptyObject(obj: any) {\n return Object.keys(obj).length === 0;\n }\n\n assignSelectedOptionBasedOnFilter(storedFilter: any) {\n const storedFilterKey = storedFilter\n ? Object.keys(this.entryDetails).find((key) => this.entryDetails[key] === storedFilter.replaceAll('_', ' '))\n : FILTER_TYPE_ALL;\n this.selectedOption = storedFilterKey || FILTER_TYPE_ALL;\n this.displayTournamentErrorMessage(true);\n this.filterTrackingEvent(true);\n }\n filterTrackingEvent(filterTracking: boolean = false) {\n if (this.selectedOption && filterTracking && this.firstTimeTracking) {\n const seletedEntryOption = this.entryDetails[this.selectedOption];\n const filterPosition = this.entryDetailsKeys.indexOf(this.selectedOption) + 1;\n this.slotRacesTracking.track('click', filterPosition.toString(), this.category?.categoryInfo.categoryid, seletedEntryOption, true);\n this.firstTimeTracking = false;\n }\n }\n}\n","<div *ngIf=\"component === 'page'\">\n <cc-slot-races [lobbyType]=\"lobbyType\" [category]=\"category\"></cc-slot-races>\n</div>\n<div *ngIf=\"component === 'carousel'\">\n <cc-slot-races-cards class=\"cc-slot-races-cards\" [showPlaceholderCard]=\"true\" [lobbyType]=\"lobbyType\" [addUpcoming]=\"true\" [category]=\"category\">\n </cc-slot-races-cards>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoCoreNpmParamsService, CasinoLobbyService } from '@casinocore/platform/core';\n\nimport { SlotRacesCardsComponent } from './cards-wrapper/cards-wrapper.component';\nimport { SlotRacesComponent } from './slot-races.component';\n\n@Component({\n selector: 'cc-slot-races-wrapper',\n templateUrl: 'slot-races-wrapper.component.html',\n standalone: true,\n imports: [NgIf, SlotRacesComponent, SlotRacesCardsComponent],\n})\nexport class SlotRacesWrapperComponent implements OnInit {\n @Input() component: string;\n @Input() lobbyType: string;\n @Input() category: any;\n\n constructor(\n private npmParamService: CasinoCoreNpmParamsService,\n private lobbyService: CasinoLobbyService,\n ) {}\n\n ngOnInit() {\n const npmParams = this.npmParamService.getcasinoCoreNpmParams();\n if (npmParams && npmParams.disableSlotracesCallsOnBootstrap) {\n //if slot race init calls are disabled through npm then they would need to be called from init here.. as the init calls are necessary for slot races to function\n this.lobbyService.initializeSlotRaces(true);\n }\n }\n}\n","<div *ngIf=\"isLobbyLoaded && loadWidget && isSlotRaceSubCategory && enableSlotRacesForOtherProducts\">\n <div class=\"casino-npm-sr-title\">\n <span [vnDynamicHtml]=\"header?.text\"></span>\n <span class=\"theme-right\" *ngIf=\"header?.titleLink?.text\" (click)=\"SeeAllTournaments()\"></span>\n <span class=\"casino-sr-npm-see-all\" [vnDynamicHtml]=\"header?.titleLink?.text\" (click)=\"SeeAllTournaments()\"> </span>\n </div>\n <cc-slot-races-wrapper [component]=\"'carousel'\" [lobbyType]=\"lobbyType\" [category]=\"category\"> </cc-slot-races-wrapper>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n CasinoLobbyService,\n CasinoManager,\n ConfigProviderService,\n InvokerProductService,\n SitecoreContent,\n SlotRacesService,\n} from '@casinocore/platform/core';\nimport { DynamicHtmlDirective, NavigationService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { SlotRacesWrapperComponent } from './slot-races-wrapper.component';\n\n@Component({\n selector: 'cc-slot-races-widget',\n templateUrl: 'slot-races-widget.component.html',\n standalone: true,\n imports: [NgIf, DynamicHtmlDirective, SlotRacesWrapperComponent],\n})\nexport class SlotRacesWidgetComponent implements OnInit, OnDestroy {\n isLobbyLoaded: boolean;\n loadWidget: boolean;\n lobbyType: string;\n category: any;\n header: any;\n categoryTitle: string;\n contentSubscription: Subscription;\n lobbyLoadSubscription: Subscription;\n slotRacesUpdateSubscription: Subscription;\n isSlotRaceSubCategory: boolean;\n enableSlotRacesForOtherProducts: boolean;\n\n constructor(\n private configProvider: ConfigProviderService,\n private casinoManager: CasinoManager,\n private casinoLobbyService: CasinoLobbyService,\n private invokerProductService: InvokerProductService,\n private slotRacesService: SlotRacesService,\n private navigation: NavigationService,\n ) {}\n\n ngOnInit() {\n this.lobbyLoadSubscription = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.setParams();\n this.isLobbyLoaded = true;\n }\n });\n }\n\n setParams() {\n const slotRacesConfig = this.configProvider.provideSlotRacesConfig();\n const widgetConfig: any = this.configProvider.providewidgetConfig();\n this.slotRacesUpdateSubscription = this.slotRacesService.updateNavigation.subscribe((update: boolean) => {\n if (update) {\n const slotRacesData = this.slotRacesService.getCurrentRaces();\n if (slotRacesConfig.disableWhenNoPromotions) {\n if (\n (slotRacesData.liveNow && slotRacesData.liveNow.length) ||\n (slotRacesData.upcomingToday && slotRacesData.upcomingToday.length) ||\n (slotRacesData.upcomingTomorrow && slotRacesData.upcomingTomorrow.length)\n ) {\n this.loadWidget = true;\n } else {\n this.loadWidget = false;\n }\n } else {\n this.loadWidget = true;\n }\n }\n });\n\n this.contentSubscription = this.slotRacesService.content.subscribe((content: SitecoreContent) => {\n this.header = content && content.npmHeader;\n });\n const product = this.invokerProductService.getInvokerProduct();\n this.enableSlotRacesForOtherProducts = widgetConfig.enableSlotRacesForOtherProducts;\n this.lobbyType = widgetConfig.lobbyTypeForSlotRacesOnOtherProducts; // this is used for getting slot races category id and checking for enabling of features like jackpot ribbon\n const subcategoryid: string = widgetConfig.subCatRouteForSlotRacesOnOtherProducts;\n const categoryId = this.casinoManager.getSlotRaceCategoryId(this.lobbyType);\n if (categoryId === subcategoryid || 'home' + categoryId === subcategoryid) {\n this.isSlotRaceSubCategory = true;\n }\n this.category = {\n categoryInfo: {\n categoryid: product + '_lobby_' + categoryId,\n subcategoryid: subcategoryid,\n route: categoryId,\n },\n };\n }\n\n SeeAllTournaments() {\n this.navigation.goTo(this.header?.titleLink?.url, { replace: false, forceReload: true });\n }\n\n ngOnDestroy() {\n if (this.lobbyLoadSubscription) {\n this.lobbyLoadSubscription.unsubscribe();\n }\n if (this.contentSubscription) {\n this.contentSubscription.unsubscribe();\n }\n if (this.slotRacesUpdateSubscription) {\n this.slotRacesUpdateSubscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfig, ClientConfigProductName, ClientConfigService } from '@frontend/vanilla/core';\n\n@ClientConfig({ key: 'ltFeaturesConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: featuresInfoFactory,\n})\nexport class FeaturesClientConfig {\n disableProductLobbyDataFetch: any;\n iframeCategories: any;\n lotteryGameIds: any;\n lotteryIframeHeight: number;\n}\n\nexport function featuresInfoFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(FeaturesClientConfig);\n}\n\n@ClientConfig({ key: 'ltLmtConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: lmtInfoFactory,\n})\nexport class LmtClientConfig {\n lobbyTypeMap: any;\n defaultProductHomeUrl: string;\n lobbyType: string;\n invokerProduct: string;\n}\n\nexport function lmtInfoFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(LmtClientConfig);\n}\n\n@ClientConfig({ key: 'ltSeoBoxesConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: seoBoxesInfoFactory,\n})\nexport class SeoBoxesClientConfig {\n seoBoxesPathMapper: any;\n}\n\nexport function seoBoxesInfoFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(SeoBoxesClientConfig);\n}\n\n@ClientConfig({ key: 'ltComponentCompositionsConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: componentCompositionFactory,\n})\nexport class ComponentCompositionsClientConfig {\n mobileDefaultHomeComposition: any;\n mobileNonDefaultHomeComposition: any;\n desktopDefaultHomeComposition: any;\n desktopNonDefaultHomeComposition: any;\n enabled: boolean;\n}\n\nexport function componentCompositionFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(ComponentCompositionsClientConfig);\n}\n\n@ClientConfig({ key: 'ltWhyPlayWithUsConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: whyPlayWithUsInfoFactory,\n})\nexport class WhyPlayWithUsClientConfig {\n whyPlayWithUsPathMapper: any;\n}\n\nexport function whyPlayWithUsInfoFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(WhyPlayWithUsClientConfig);\n}\n\n@ClientConfig({ key: 'ltGlobalConfig', product: ClientConfigProductName.LOTTO })\n@Injectable({\n providedIn: 'root',\n deps: [ClientConfigService],\n useFactory: globalInfoFactory,\n})\nexport class GloablClientConfig {\n messages: any;\n}\n\nexport function globalInfoFactory(clientConfigService: ClientConfigService) {\n return clientConfigService.get(GloablClientConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiBase, ApiServiceFactory, ClientConfigProductName, ProductService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n useFactory: apiServiceFactory,\n deps: [ApiServiceFactory, ProductService],\n})\nexport class ApiService extends ApiBase {}\n\nexport function apiServiceFactory(apiServiceFactory: ApiServiceFactory, productService: ProductService) {\n return apiServiceFactory.createForProduct(ApiService, {\n product: ClientConfigProductName.LOTTO,\n area: 'lotto',\n forwardProductApiRequestHeader: productService.getMetadata(ClientConfigProductName.LOTTO).isEnabled,\n });\n}\n","export class CategorySitecoreData {\n categoryId: string;\n faqsData: string;\n howtoPlayPath: string;\n}\n","import { Injectable } from '@angular/core';\n\nimport { DeviceService, NativeAppService, ProductService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { ApiService } from '../api/api.service';\nimport { CategorySitecoreData } from './model/category-sitecore-data.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LotteryLobbyService {\n private categoryChangeSubject = new BehaviorSubject<any>(null);\n categoryChangeObservable: Observable<any> = this.categoryChangeSubject.asObservable();\n private sitecoreCategoryDataSubject = new BehaviorSubject<any>(null);\n sitecoreCategoryDataObservable: Observable<any> = this.sitecoreCategoryDataSubject.asObservable();\n\n routeCurrentProduct: string;\n routeCategoryType: string;\n categorySitecoreData: any;\n lobbyTypeSitecoreDataMap = new Map<String, any>();\n isTouchDevice: boolean;\n\n constructor(\n private apiService: ApiService,\n private deviceService: DeviceService,\n private nativeAppService: NativeAppService,\n private productService: ProductService,\n ) {}\n\n publishCategoryChange(routeProduct: string, routeCategoryType: string) {\n let isRootOrDefault: boolean = false;\n if (this.isNullOrEmpty(routeProduct) && this.isNullOrEmpty(routeCategoryType)) {\n isRootOrDefault = true;\n } else if (routeProduct && this.isNullOrEmpty(routeCategoryType)) {\n //TODO: check for valid product under lobbytypeMap\n isRootOrDefault = true;\n } else if (!this.isNullOrEmpty(routeProduct) && !this.isNullOrEmpty(routeCategoryType)) {\n isRootOrDefault = false;\n }\n // alert('routeProduct: ' + routeProduct + '----' + 'routeCategoryType: ' + routeCategoryType + 'isRootOrDefault==' + isRootOrDefault);\n this.categoryChangeSubject.next({\n routeCurrentProduct: routeProduct,\n routeCategoryType: routeCategoryType,\n isRootOrDefault: isRootOrDefault,\n });\n }\n\n isNullOrEmpty(val: string): boolean {\n if (!val || val === '') {\n return true;\n }\n return false;\n }\n\n fetchCategorySitecoreData() {\n this.apiService.get('content/GetAllSitecoreContent').subscribe((response) => {\n if (response) {\n this.setCategorySitecoreData(response);\n this.setLobbyTypeCategoryData();\n this.sitecoreCategoryDataSubject.next(response);\n }\n });\n }\n\n setCategorySitecoreData(response: any) {\n this.categorySitecoreData = response;\n }\n\n setLobbyTypeCategoryData() {\n this.categorySitecoreData.collectedSitecoreCategory.forEach((item: any) => {\n let sitecoreCategoryArray: Array<any> = new Array<any>();\n for (let i = 0; i < item.sitecoreData.length; i++) {\n let categoryDataModel: CategorySitecoreData = new CategorySitecoreData();\n categoryDataModel.categoryId = item.sitecoreData[i].categoryId;\n categoryDataModel.faqsData = item.sitecoreData[i].faqs;\n categoryDataModel.howtoPlayPath =\n item.sitecoreData[i].howtoPlay && item.sitecoreData[i].howtoPlay.length > 0 ? item.sitecoreData[i].howtoPlay[0].path : null;\n sitecoreCategoryArray[i] = categoryDataModel;\n }\n this.lobbyTypeSitecoreDataMap.set(item.lobbyType, sitecoreCategoryArray);\n });\n }\n\n getCategorySitecoreData(lobbyType: string, categoryId: string) {\n let sitecoreDataForLobbyType = this.lobbyTypeSitecoreDataMap.get(lobbyType);\n let categoryDataModel: CategorySitecoreData = new CategorySitecoreData();\n if (sitecoreDataForLobbyType) {\n for (let i = 0; i < sitecoreDataForLobbyType.length; i++) {\n if (sitecoreDataForLobbyType[i].categoryId == categoryId) {\n categoryDataModel = sitecoreDataForLobbyType[i];\n break;\n }\n }\n }\n return categoryDataModel;\n }\n\n checkForTouchDevice() {\n try {\n this.isTouchDevice =\n !this.nativeAppService.isDownloadClient &&\n this.deviceService.isTouch &&\n !window.matchMedia('(pointer: fine)').matches &&\n !navigator.userAgent.match(/Win64/ || /WOW64/);\n } catch (error) {\n this.isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n }\n }\n\n isTouch(): boolean {\n return this.isTouchDevice;\n }\n\n getCasinoBaseUrl(): string {\n let productInfo: any = this.productService.getMetadata('casino');\n if (productInfo) {\n let apiUrl: string = productInfo.apiBaseUrl;\n return apiUrl;\n }\n return '';\n }\n}\n","<div class=\"mobile-stories-cta\">\n <div class=\"with-cta\">\n <img [src]=\"storyItem?.backgroundImage?.src\" />\n <h2\n *ngIf=\"storyItem.subTitle\"\n [ngClass]=\"'actiontypeposition-' + (subTitlePosition | lowercase)\"\n [ngStyle]=\"{ 'color': subTitleTxtClr, 'font-size': subTitleFontSize }\"\n [textContent]=\"storyItem.subTitle\"></h2>\n <div\n class=\"story-descrip\"\n *ngIf=\"storyItem.description\"\n [ngClass]=\"'actiontypeposition-' + (descriptionPosition | lowercase)\"\n [ngStyle]=\"{ 'color': descriptionClr, 'font-size': descriptionFontSize }\"\n [textContent]=\"storyItem.description\"></div>\n <div class=\"customCTAbtn\" [ngClass]=\"'actiontypeposition-' + (actionTypePosition | lowercase)\">\n <a\n class=\"btn btn-primary more-info-btn btn-lg\"\n [ngStyle]=\"{ 'background-color': OptinBtnBgClr, 'border-color': OptinBtnBgClr, 'color': OptinBtnTxtClr }\"\n [href]=\"customCTAUrl\"\n >{{ customCTAText }}</a\n >\n </div>\n </div>\n</div>\n","import { LowerCasePipe, NgClass, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { IGamingStoryItem } from '@casinocore/platform/core';\n\n@Component({\n selector: 'cc-gaming-story-cta',\n templateUrl: 'gaming-story-cta.component.html',\n standalone: true,\n imports: [NgIf, NgClass, NgStyle, LowerCasePipe],\n})\nexport class GamingStoryCtaComponent implements OnInit {\n @Input() storyItem: IGamingStoryItem;\n\n subTitleTxtClr: string;\n subTitleFontSize: string;\n OptinBtnBgClr: string;\n OptinBtnTxtClr: string;\n descriptionClr: string;\n descriptionFontSize: string;\n customCTAUrl: string;\n customCTAText: string;\n actionTypePosition: string;\n titlePosition: string;\n descriptionPosition: string;\n subTitlePosition: string;\n\n constructor() {}\n\n ngOnInit(): void {\n //console.log(this.storyItem, \"storyItem\");\n if (this.storyItem && this.storyItem.customCTA) {\n this.customCTAText = this.storyItem.customCTA.text;\n this.customCTAUrl = this.storyItem.customCTA.url;\n this.subTitleTxtClr = this.storyItem.configurations.subTitleTxtClr;\n this.subTitleFontSize = this.storyItem.configurations.subTitleFontSize;\n this.descriptionClr = this.storyItem.configurations.descriptionClr;\n this.OptinBtnBgClr = this.storyItem.configurations.OptinBtnBgClr;\n this.OptinBtnTxtClr = this.storyItem.configurations.OptinBtnTxtClr;\n this.actionTypePosition = this.storyItem.actionTypePosition;\n this.titlePosition = this.storyItem.titlePosition;\n this.descriptionPosition = this.storyItem.descriptionPosition;\n this.subTitlePosition = this.storyItem.subTitlePosition;\n this.descriptionFontSize = this.storyItem.configurations.descriptionFontSize;\n }\n }\n}\n","import { NgStyle } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport {\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesService,\n IGamingStoryItem,\n ResponseDataModel,\n StoryInfoData,\n StoryInfoDataInSessionStorage,\n} from '@casinocore/platform/core';\nimport { LoginDialogService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'cc-gaming-story-emoji-slider',\n templateUrl: 'gaming-story-emoji-slider.component.html',\n standalone: true,\n imports: [ReactiveFormsModule, NgStyle, FormsModule],\n})\nexport class GamingStoryEmojiSliderComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n // @ViewChild('emoji', { static: false }) emoji: ElementRef<HTMLDivElement>;\n @ViewChild('slider', { static: false }) slider: ElementRef;\n @Input() storyItem: IGamingStoryItem;\n @Input() fetchUserPreparedRequest: FetchUserRequestAPIModel;\n @Input() fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n\n sliderValue: number = 0;\n slideDisable: boolean = false;\n emojiPath: string;\n isAuthenticated: boolean;\n\n private userSessionStorageData: StoryInfoDataInSessionStorage;\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private expirationTime: number;\n private templateType: string = 'EmojiSlider';\n private isInitialSelect: boolean = false;\n private isFetchValueAvailable: boolean = false;\n private isServiceValueAvailable: boolean = false;\n private uInput: string = '';\n private userSubscription: Subscription;\n\n constructor(\n private gamingStoriesService: GamingStoriesService,\n private user: UserService,\n private loginDialog: LoginDialogService,\n private changeDetection: ChangeDetectorRef,\n ) {}\n\n ngOnChanges() {\n this.emojiPath = this.storyItem.emojies[0].emojiPath;\n this.sliderValue = 0;\n this.slider?.nativeElement?.style.setProperty('--range', `${this.sliderValue}%`);\n this.slideDisable = false;\n this.changeDetection.detectChanges();\n\n this.validationCheck();\n }\n\n ngOnInit(): void {\n this.emojiPath = this.storyItem.emojies[0].emojiPath;\n }\n\n ngAfterViewInit(): void {\n this.userSubscription = this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n setTimeout(() => {\n this.isAuthenticated = this.user.isAuthenticated;\n this.bindPreLoginSessionData();\n this.validatePreLoginSessionToStoreInPostLoginSession();\n this.validationCheck();\n }, 1000);\n });\n this.validationCheck();\n }\n\n // sliderUp() {\n // this.slideDisable = true;\n // // this.emoji ?.nativeElement.classList.add(\"emoji-hide\");\n // // this.emoji.nativeElement.style.opacity = \"0\";\n // }\n\n sliderChange(event: Event) {\n const target = event.target as HTMLInputElement;\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.expirationTime = this.gamingStoriesconfig.expirationTime;\n }\n if (this.user.isAuthenticated) {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.description.replace(/<[^>]*>/g, ''),\n this.storyItem.title,\n this.storyItem.emojies[0].emojiName + '-' + target.value,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n this.isAuthenticated = this.user.isAuthenticated;\n this.gamingStoriesService.pauseStory(false);\n this.slideDisable = true;\n this.slider?.nativeElement?.style.setProperty('--range', `${target.value}%`);\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = this.storyItem.storyId;\n storyInfo.subStoryId = this.storyItem.storyItemId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = target.value.toString();\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 3;\n // this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n // (x) => x.storyIndex !== storyInfo.storyIndex,\n // );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n } else {\n this.gamingStoriesService.storyInfoPostRequestList = [];\n this.gamingStoriesService.pauseStory(true);\n const loginDialogRef = this.loginDialog.open();\n const afterclosesubcription: Subscription = loginDialogRef.afterClosed().subscribe(() => {\n if (afterclosesubcription) {\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.pauseStory(false);\n this.sliderValue = 0;\n this.slider?.nativeElement?.style.setProperty('--range', `${this.sliderValue}%`);\n this.slideDisable = false;\n }\n afterclosesubcription.unsubscribe();\n }\n });\n }\n this.storeDataToSession(target.value);\n //this.showEmoji(this.sliderValue);\n //this.moveEmoji(this.sliderValue);\n }\n\n ngOnDestroy() {\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n }\n\n private storeDataToSession(eleName: string) {\n const currentEpocTime = new Date().getTime() / 1000;\n const storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage = new StoryInfoDataInSessionStorage();\n storyInfoDataInSessionStorage.response = new ResponseDataModel();\n storyInfoDataInSessionStorage.response.sId = this.storyItem.storyId;\n storyInfoDataInSessionStorage.response.subSId = this.storyItem.storyItemId;\n storyInfoDataInSessionStorage.response.uInput = eleName;\n storyInfoDataInSessionStorage.response.tType = this.templateType;\n storyInfoDataInSessionStorage.expiryTime = Math.round(currentEpocTime + this.expirationTime * 60);\n storyInfoDataInSessionStorage.userId = this.user.id ? this.user.id : '';\n storyInfoDataInSessionStorage.storyIndex = 3;\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== storyInfoDataInSessionStorage.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(storyInfoDataInSessionStorage);\n } else {\n this.gamingStoriesService.storeFetchAPIDataRes(storyInfoDataInSessionStorage);\n }\n }\n\n private bindPreLoginSessionData() {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.forEach((res) => {\n if (res.response.sId === this.storyItem.storyId && res.response.subSId === this.storyItem.storyItemId && res.userId === '') {\n res.userId = this.user.id ? this.user.id : '';\n this.userSessionStorageData = res;\n }\n });\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== this.userSessionStorageData.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(this.userSessionStorageData);\n this.preparePreLoginSelectedDataForPostAPI(this.userSessionStorageData);\n }\n }\n\n private preparePreLoginSelectedDataForPostAPI(storyInfoData: StoryInfoDataInSessionStorage) {\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = storyInfoData.response.sId;\n storyInfo.subStoryId = storyInfoData.response.subSId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = storyInfoData.response.uInput;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 3;\n this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n (x) => x.storyIndex !== storyInfo.storyIndex,\n );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n }\n\n private validatePreLoginSessionToStoreInPostLoginSession() {\n // if fetch API response available.\n // we are not storing selected data any where when it matches with fetch api response.\n if (this.fetchingGamingStoriesAPIRes) {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId == fetchData.subSId &&\n fetchData.uInput !== undefined\n ) {\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n } else {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId == fetchReq.subStoryId) {\n this.gamingStoriesService.storeFetchAPIDataRes(res);\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n }\n });\n }\n });\n });\n }\n }\n // if fetch API response not available or failed scenario.\n // storing selected data in Service level and session level in post-login key.\n else {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((res: any) => {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId == fetchReq.subStoryId) {\n this.gamingStoriesService.storeFetchAPIDataRes(res);\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n }\n });\n });\n }\n }\n }\n\n private validationCheck() {\n if (this.user.isAuthenticated) {\n // fetch call response\n if (this.fetchingGamingStoriesAPIRes) {\n this.fetchingGamingStoriesAPIRes.response.forEach((sfetchres: any) => {\n this.uInput = sfetchres.uInput;\n if (\n this.fetchingGamingStoriesAPIRes.uId === this.user.id &&\n sfetchres.sId === this.storyItem.storyId &&\n sfetchres.subSId == this.storyItem.storyItemId &&\n this.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.bindQuizData(this.uInput);\n this.isFetchValueAvailable = true;\n }\n });\n }\n // service level data check bind\n if (this.gamingStoriesService.storeFetchAPIDataResList.length > 0 && !this.isFetchValueAvailable) {\n this.gamingStoriesService.storeFetchAPIDataResList.forEach((sServiceres: any) => {\n if (\n sServiceres.userId === this.user.id &&\n sServiceres.response.sId === this.storyItem.storyId &&\n sServiceres.response.subSId == this.storyItem.storyItemId &&\n sServiceres.response.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.bindQuizData(sServiceres.response.uInput);\n this.isServiceValueAvailable = true;\n }\n });\n }\n // session storage check bind\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') && !this.isServiceValueAvailable) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n this.gamingStoriesService.storeFetchAPIDataResList = [];\n sessionStorageServiceStoryData.forEach((sSessionres: any) => {\n this.gamingStoriesService.storeFetchAPIDataRes(sSessionres);\n if (\n sSessionres.userId === this.user.id &&\n sSessionres.response.sId === this.storyItem.storyId &&\n sSessionres.response.subSId == this.storyItem.storyItemId &&\n sSessionres.response.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.bindQuizData(sSessionres.response.uInput);\n }\n });\n }\n this.gamingStoriesService.pauseStory(false);\n }\n }\n\n private bindQuizData(uInput: any) {\n this.sliderValue = parseInt(uInput);\n this.slider?.nativeElement?.style.setProperty('--range', `${this.sliderValue}%`);\n this.slideDisable = true;\n this.isInitialSelect = true;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.description.replace(/<[^>]*>/g, ''),\n this.storyItem.title,\n this.storyItem.emojies[0].emojiName + '-' + this.sliderValue,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n this.changeDetection.detectChanges();\n }\n}\n","<div class=\"casino-mobilestories-box\">\n <span class=\"title\">{{ storyItem?.description }}</span>\n <!-- <div id=\"emoji\" class=\"emoji\" #emoji></div> -->\n <input\n #slider\n type=\"range\"\n class=\"rangeSlider\"\n [disabled]=\"slideDisable\"\n [ngStyle]=\"{ '--background-emoji': 'url(' + emojiPath + ')' }\"\n (change)=\"sliderChange($event)\"\n [(ngModel)]=\"sliderValue\" />\n</div>\n","<div id=\"emojies-animation\" *ngIf=\"show\">\n <ng-container *ngFor=\"let emoji of storyItem.emojies; let i = index\" [ngSwitch]=\"item\">\n <span *ngSwitchCase=\"emoji.emojiName\">\n <img *ngFor=\"let d of ' '.repeat(9).split('')\" class=\"{{ emoji.emojiName }}\" [src]=\"emoji.emojiPath\" />\n </span>\n </ng-container>\n</div>\n<div class=\"mobilestories-messgae-sent\" *ngIf=\"showMessageessageSent\" [ngStyle]=\"{ 'color': messageTxtClr, 'background-color': messageBgClr }\">\n <div ngClass=\"{{ messageClass }}\">{{ messageTxt }}</div>\n</div>\n<div\n class=\"casino-emojies-container\"\n *ngIf=\"storyItem.emojies.length > 0 && showEmojies\"\n [ngClass]=\"'emojibtnposition-' + (emojiBtnPosition | lowercase)\">\n <div class=\"btn-emoji\">\n <button *ngFor=\"let emoji of storyItem.emojies; let i = index\" [disabled]=\"disableEmojis\" (click)=\"clickHandler(emoji.emojiName)\">\n <span>\n <img\n [ngStyle]=\"selectedEmojieName === emoji.emojiName && show ? { transform: 'scale(1.5)' } : { transform: 'unset' }\"\n [src]=\"emoji.emojiPath\" />\n </span>\n <span class=\"dotresponded\" *ngIf=\"selectedEmojieName === emoji.emojiName && !show\"></span>\n </button>\n </div>\n</div>\n","import { LowerCasePipe, NgClass, NgFor, NgIf, NgStyle, NgSwitch, NgSwitchCase } from '@angular/common';\nimport { ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesService,\n IGamingStoryItem,\n ResponseDataModel,\n StoryInfoData,\n StoryInfoDataInSessionStorage,\n} from '@casinocore/platform/core';\nimport { LoginDialogService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'cc-gaming-story-emojis-animations',\n templateUrl: 'gaming-story-emojis-animations.component.html',\n standalone: true,\n imports: [NgIf, NgFor, NgSwitch, NgSwitchCase, NgStyle, NgClass, LowerCasePipe],\n})\nexport class GamingStoryEmojisAnimationsComponent implements OnInit, OnDestroy, OnChanges {\n @Input() storyItem: IGamingStoryItem;\n @Input() fetchUserPreparedRequest: FetchUserRequestAPIModel;\n @Input() fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n\n showEmojies: boolean = false;\n messageTxtClr: string;\n messageBgClr: string;\n messageTxt: string;\n messageClass: string;\n showMessageessageSent: boolean = false;\n show: boolean;\n item: string;\n selectedEmojieName: string;\n disableEmojis: boolean = false;\n emojiBtnPosition: string;\n\n private userSessionStorageData: StoryInfoDataInSessionStorage;\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private expirationTime: number;\n private templateType: string = 'EmojiSelector';\n private isInitialSelect: boolean = false;\n private isFetchValueAvailable: boolean = false;\n private isServiceValueAvailable: boolean = false;\n private uInput: string = '';\n private userSubscription: Subscription;\n\n constructor(\n private gamingStoriesService: GamingStoriesService,\n private user: UserService,\n private loginDialog: LoginDialogService,\n private changeDetection: ChangeDetectorRef,\n ) {}\n\n ngOnChanges() {\n this.setAttributes();\n this.selectedEmojieName = '';\n this.disableEmojis = false;\n this.validationCheck();\n }\n\n ngOnInit(): void {\n this.setAttributes();\n this.userSubscription = this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n setTimeout(() => {\n this.bindPreLoginSessionData();\n this.validatePreLoginSessionToStoreInPostLoginSession();\n this.validationCheck('loginEvent');\n }, 1000);\n });\n this.validationCheck();\n }\n\n clickHandler(eleName: string) {\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.expirationTime = this.gamingStoriesconfig.expirationTime;\n }\n if (this.user.isAuthenticated) {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n eleName,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n this.gamingStoriesService.pauseStory(false);\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = this.storyItem.storyId;\n storyInfo.subStoryId = this.storyItem.storyItemId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = eleName;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 0;\n // this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n // (x) => x.storyIndex !== storyInfo.storyIndex,\n // );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n this.mandatorySelection(eleName);\n this.animationFlow(eleName);\n setTimeout(() => {\n this.showMessageessageSent = true;\n setTimeout(() => {\n this.showMessageessageSent = false;\n }, 500);\n }, 7200);\n } else {\n this.gamingStoriesService.pauseStory(true);\n const loginDialogRef = this.loginDialog.open();\n const afterclosesubcription: Subscription = loginDialogRef.afterClosed().subscribe(() => {\n if (afterclosesubcription) {\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.pauseStory(false);\n this.selectedEmojieName = '';\n }\n afterclosesubcription.unsubscribe();\n }\n });\n }\n this.storeDataToSession(eleName);\n }\n\n ngOnDestroy() {\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n }\n\n private setAttributes() {\n this.messageTxtClr = this.storyItem.configurations.MessageTxtClr;\n this.messageBgClr = this.storyItem.configurations.MessageBgClr;\n this.messageTxt = this.storyItem.configurations.MesssageTxt;\n this.messageClass = this.storyItem.configurations.MessageClass;\n this.emojiBtnPosition = this.storyItem.actionTypePosition;\n this.showEmojies = true;\n }\n\n private animationFlow(eleName: string) {\n this.item = eleName;\n this.show = true;\n this.changeDetection.detectChanges();\n const dateTime: number = Date.now() + 5000;\n setTimeout(() => {\n const emojiFloat: any = this.emojiFloating(dateTime, eleName);\n window.requestAnimationFrame(emojiFloat.bind(this));\n }, 500);\n }\n\n private emojiFloating(datetime: number, eleName: string) {\n const parent = document.getElementById('emojies-animation'),\n elements = document.getElementsByClassName(eleName),\n vertSpeed = 4,\n horiSpeed = 4;\n const height = parent?.offsetHeight as number,\n width = parent?.offsetWidth as number;\n const items: any = [];\n for (let i = 0; i < elements.length; i++) {\n const element: any = elements[i],\n elementWidth = element.offsetWidth,\n elementHeight = element.offsetHeight;\n element.style.position = 'absolute';\n const item = {\n element: element,\n elementHeight: elementHeight,\n elementWidth: elementWidth,\n ySpeed: -vertSpeed,\n omega: (2 * Math.PI * horiSpeed) / (width * 60),\n random: (Math.random() / 2 + 0.5) * i * 10000,\n x: function (time: any) {\n return ((Math.sin(this.omega * (time + this.random)) + 1) / 2) * (width - elementWidth);\n },\n y: height + (Math.random() + 1) * i * elementHeight,\n };\n items.push(item);\n }\n let counter = 0;\n if (parent) parent.style.opacity = '1';\n const animationStep = function () {\n const time = +new Date();\n const check = counter % 10 === 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const transformString = 'translate3d(' + item.x(time) + 'px,' + item.y + 'px,0px)';\n item.element.style.transform = transformString;\n item.element.style.webkitTransform = transformString;\n item.y += item.ySpeed;\n if (check && item.y < -item.elementHeight) {\n item.y = height;\n }\n }\n counter %= 8;\n counter++;\n if (datetime > time) {\n window.requestAnimationFrame(animationStep.bind(this));\n } else {\n this.show = false;\n }\n };\n return animationStep;\n }\n\n private storeDataToSession(eleName: string) {\n const currentEpocTime = new Date().getTime() / 1000;\n const storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage = new StoryInfoDataInSessionStorage();\n storyInfoDataInSessionStorage.response = new ResponseDataModel();\n storyInfoDataInSessionStorage.response.sId = this.storyItem.storyId;\n storyInfoDataInSessionStorage.response.subSId = this.storyItem.storyItemId;\n storyInfoDataInSessionStorage.response.uInput = eleName;\n storyInfoDataInSessionStorage.response.tType = this.templateType;\n storyInfoDataInSessionStorage.expiryTime = Math.round(currentEpocTime + this.expirationTime * 60);\n storyInfoDataInSessionStorage.userId = this.user.id ? this.user.id : '';\n storyInfoDataInSessionStorage.storyIndex = 1;\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== storyInfoDataInSessionStorage.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(storyInfoDataInSessionStorage);\n } else {\n this.gamingStoriesService.storeFetchAPIDataRes(storyInfoDataInSessionStorage);\n }\n }\n\n private bindPreLoginSessionData() {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.forEach((res) => {\n if (res.response.sId === this.storyItem.storyId && res.response.subSId === this.storyItem.storyItemId && res.userId === '') {\n res.userId = this.user.id ? this.user.id : '';\n this.userSessionStorageData = res;\n }\n });\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== this.userSessionStorageData.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(this.userSessionStorageData);\n this.preparePreLoginSelectedDataForPostAPI(this.userSessionStorageData);\n }\n }\n\n private preparePreLoginSelectedDataForPostAPI(storyInfoData: StoryInfoDataInSessionStorage) {\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = storyInfoData.response.sId;\n storyInfo.subStoryId = storyInfoData.response.subSId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = storyInfoData.response.uInput;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 1;\n this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n (x) => x.storyIndex !== storyInfo.storyIndex,\n );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n }\n\n private validatePreLoginSessionToStoreInPostLoginSession() {\n // if fetch API response available.\n // we are not storing selected data any where when it matches with fetch api response.\n if (this.fetchingGamingStoriesAPIRes) {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData: any) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId == fetchData.subSId &&\n fetchData.uInput !== undefined\n ) {\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n } else {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId === fetchReq.subStoryId) {\n this.gamingStoriesService.storeFetchAPIDataRes(res);\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n }\n });\n }\n });\n });\n }\n }\n // if fetch API response not available or failed scenario.\n // storing selected data in Service level and session level in post-login key.\n else {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((res: any) => {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId === fetchReq.subStoryId) {\n this.gamingStoriesService.storeFetchAPIDataRes(res);\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n }\n });\n });\n }\n }\n }\n\n private validationCheck(obj?: any) {\n if (this.user.isAuthenticated) {\n // fetch call response\n if (this.fetchingGamingStoriesAPIRes) {\n this.fetchingGamingStoriesAPIRes.response.forEach((afetchres) => {\n this.uInput = afetchres.uInput;\n if (\n this.fetchingGamingStoriesAPIRes.uId === this.user.id &&\n afetchres.sId === this.storyItem.storyId &&\n afetchres.subSId === this.storyItem.storyItemId &&\n this.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.isFetchValueAvailable = true;\n this.bindQuizData(this.uInput, obj);\n }\n });\n }\n // service level data check bind\n if (this.gamingStoriesService.storeFetchAPIDataResList.length > 0 && !this.isFetchValueAvailable) {\n this.gamingStoriesService.storeFetchAPIDataResList.forEach((aserviceres) => {\n if (\n aserviceres.userId === this.user.id &&\n aserviceres.response.sId === this.storyItem.storyId &&\n aserviceres.response.subSId === this.storyItem.storyItemId &&\n aserviceres.response.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.isServiceValueAvailable = true;\n this.bindQuizData(aserviceres.response.uInput, obj);\n }\n });\n }\n // session storage check bind\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') && !this.isServiceValueAvailable && !this.isFetchValueAvailable) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n this.gamingStoriesService.storeFetchAPIDataResList = [];\n sessionStorageServiceStoryData.forEach((asessionres: any) => {\n this.gamingStoriesService.storeFetchAPIDataRes(asessionres);\n if (\n asessionres.userId === this.user.id &&\n asessionres.response.sId === this.storyItem.storyId &&\n asessionres.response.subSId === this.storyItem.storyItemId &&\n asessionres.response.uInput !== undefined &&\n !this.isInitialSelect\n ) {\n this.bindQuizData(asessionres.response.uInput, obj);\n }\n });\n }\n }\n this.gamingStoriesService.pauseStory(false);\n }\n\n private bindQuizData(uInput: any, obj?: any) {\n this.mandatorySelection(uInput, obj);\n this.isInitialSelect = true;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n uInput,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n private mandatorySelection(eleName: string, obj?: string) {\n this.selectedEmojieName = eleName;\n this.disableEmojis = true;\n if (obj === 'loginEvent' && !this.isFetchValueAvailable) {\n this.animationFlow(this.selectedEmojieName);\n setTimeout(() => {\n this.showMessageessageSent = true;\n setTimeout(() => {\n this.showMessageessageSent = false;\n }, 500);\n }, 7200);\n }\n }\n}\n","<div class=\"mobile-stories-cta\">\n <div class=\"with-cta\">\n <!-- <img [src]=\"storyItem.backgroundImage.src\" /> -->\n <h2\n *ngIf=\"storyItem.subTitle\"\n [ngClass]=\"'optinbtnposition-' + (subTitlePosition | lowercase)\"\n [ngStyle]=\"{ 'color': subTitleTxtClr, 'font-size': subTitleFontSize }\"\n [textContent]=\"storyItem.subTitle\"></h2>\n <div\n class=\"story-descrip\"\n *ngIf=\"storyItem.description\"\n [ngClass]=\"'optinbtnposition-' + (descriptionPosition | lowercase)\"\n [ngStyle]=\"{ 'color': descriptionClr, 'font-size': descriptionFontSize }\"\n [textContent]=\"storyItem.description\"></div>\n <div class=\"mobile-stories-optin\" [ngClass]=\"'optinbtnposition-' + (optinBtnPosition | lowercase)\">\n <button\n class=\"btn btn-primary more-info-btn\"\n *ngIf=\"displayOptIn\"\n [ngStyle]=\"{ 'background-color': promoOptinBtnBgClr, 'color': promoOptinBtnClr }\"\n [disabled]=\"optInDisabled\"\n (click)=\"optInClicked()\">\n {{ optInButtonText }}\n </button>\n <div class=\"optin-moreinfo\" *ngIf=\"enableOptedInUrlBtn\" (click)=\"onClick($event)\">\n {{ optedInMoreInfoText }}\n </div>\n <span class=\"promoStatusError\" *ngIf=\"displayError\">{{ errorMessage }}</span>\n </div>\n </div>\n</div>\n","import { LowerCasePipe, NgClass, NgIf, NgStyle } from '@angular/common';\nimport { ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { GamingStoriesService, IGamingStoryItem } from '@casinocore/platform/core';\nimport { NavigationService, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'cc-gaming-story-optin',\n templateUrl: 'gaming-story-optin.component.html',\n standalone: true,\n imports: [NgIf, NgClass, NgStyle, LowerCasePipe],\n})\nexport class GamingStoryOptInComponent implements OnInit, OnDestroy, OnChanges {\n @Input() storyItem: IGamingStoryItem;\n @Input() storyVersionList: any;\n @Input() storyName: string;\n\n optInDisabled: boolean;\n promoOptinBtnClr: string;\n promoOptinBtnBgClr: string;\n displayOptIn: boolean;\n displayError: boolean;\n optInButtonText: string;\n errorMessage: string;\n optinBtnPosition: string;\n subTitleFontSize: string;\n optinBtnBgClr: string;\n optinBtnTxtClr: string;\n descriptionClr: string;\n subTitleTxtClr: string;\n titlePosition: string;\n descriptionPosition: string;\n subTitlePosition: string;\n enableOptedInUrlBtn: boolean;\n optedInMoreInfoText: string;\n descriptionFontSize: string;\n\n private destroy$ = new Subject<void>();\n private activeStoriesIndex: number;\n private activeStoryItemIndex: number;\n private optInClickedStatus: string;\n actionTypePosition: string;\n\n constructor(\n private user: UserService,\n private gamingStoriesService: GamingStoriesService,\n private navigation: NavigationService,\n private ref: ChangeDetectorRef,\n private tracking: TrackingService,\n ) {}\n\n ngOnInit(): void {\n this.optInData();\n this.ref.checkNoChanges();\n }\n optInData() {\n this.subTitleTxtClr = this.storyItem?.configurations?.subTitleTxtClr;\n this.subTitleFontSize = this.storyItem?.configurations.subTitleFontSize;\n this.descriptionClr = this.storyItem?.configurations?.descriptionClr;\n this.descriptionFontSize = this.storyItem?.configurations?.descriptionFontSize;\n this.actionTypePosition = this.storyItem?.actionTypePosition;\n this.titlePosition = this.storyItem?.titlePosition;\n this.subTitlePosition = this.storyItem?.subTitlePosition ?? '';\n this.descriptionPosition = this.storyItem?.descriptionPosition;\n if (this.storyItem?.targetPromoStatus) {\n this.setOptInButtonConfigurations(this.storyItem?.targetPromoStatus);\n }\n this.activeStoriesIndex = this.storyItem?.activeStoriesIndex;\n this.activeStoryItemIndex = this.storyItem?.activeStoryItemIndex;\n this.optinBtnPosition = this.storyItem?.actionTypePosition;\n }\n\n optInClicked() {\n if (this.user?.isAuthenticated) {\n this.promoOptinBtnClr = this.storyItem?.configurations?.promoAlreadyOptedinBtnClr;\n this.promoOptinBtnBgClr = this.storyItem?.configurations?.promoAlreadyOptedinBtnBgClr;\n this.optInDisabled = true;\n const params = {\n type: this.storyItem?.storyItemActionType,\n id: this.storyItem?.targetPromoId,\n optIn: true,\n source: 'INBOX',\n };\n this.gamingStoriesService.getGamingOptIn(params.type, params?.id, params?.optIn, params.source);\n this.gamingStoriesService.optInObservable.pipe(takeUntil(this.destroy$)).subscribe({\n next: (isReady: any) => {\n if (isReady) {\n const gamingStoryItemOptInStatus: any = this.gamingStoriesService.gamingStoryItemOptIn;\n if (gamingStoryItemOptInStatus) {\n this.optInClickedStatus = gamingStoryItemOptInStatus;\n this.setOptInResponse(this.optInClickedStatus);\n this.setOptInButtonConfigurations(this.optInClickedStatus);\n this.storyItem.targetPromoStatus = gamingStoryItemOptInStatus;\n }\n }\n },\n error: (error: any) => this.setOptInResponseError(error),\n complete: () => {},\n });\n this.trackGamingStories();\n this.ref.detectChanges();\n }\n }\n onClick(event: Event): void {\n event.preventDefault();\n const url = this.storyItem?.optedInUrl?.url;\n if (url) {\n this.navigation.goTo(url);\n }\n }\n ngOnChanges() {\n this.optInData();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private setOptInResponse(status: string): void {\n if (status === 'OPTED_IN') {\n const statusObj = {\n activeStoriesIndex: this.activeStoriesIndex,\n activeStoryItemIndex: this.activeStoryItemIndex,\n promoStatus: status,\n };\n this.gamingStoriesService.changePromoStatus(statusObj);\n }\n }\n\n private setOptInResponseError(error: any): void {\n this.promoOptinBtnClr = this.storyItem?.configurations?.promoOptinBtnClr;\n this.promoOptinBtnBgClr = this.storyItem?.configurations?.promoOptinBtnBgClr;\n this.optInDisabled = false;\n this.displayError = true;\n if (error.optedPromoStatus) {\n const errorKey = error.optedPromoStatus;\n this.errorMessage = this.storyVersionList[errorKey];\n } else {\n this.errorMessage = 'TechnicalError';\n }\n }\n\n private setOptInButtonConfigurations(status: string): void {\n this.displayOptIn = true;\n if (status === 'OFFERED' || status === 'OPTED_OUT') {\n this.optInDisabled = false;\n this.optInButtonText = this.storyItem?.optInCTAText;\n this.promoOptinBtnClr = this.storyItem?.configurations?.promoOptinBtnClr;\n this.promoOptinBtnBgClr = this.storyItem?.configurations?.promoOptinBtnBgClr;\n } else if (status == 'OPTED_IN') {\n this.optInDisabled = true;\n this.optInButtonText = this.storyItem?.optedInCTAText;\n this.promoOptinBtnClr = this.storyItem?.configurations?.promoAlreadyOptedinBtnClr;\n this.promoOptinBtnBgClr = this.storyItem?.configurations?.promoAlreadyOptedinBtnBgClr;\n if (this.optInButtonText && this.storyItem?.optedInUrl?.url) {\n this.enableOptedInUrlBtn = true;\n this.optedInMoreInfoText = this.storyItem?.optedInUrl?.text;\n }\n }\n this.ref.detectChanges();\n }\n private trackGamingStories() {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'teaser - embedded video',\n 'component.LabelEvent': 'stories',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'not applicable', //this.activePromoName,\n 'component.LocationEvent': this.storyItem?.title,\n 'component.EventDetails': this.storyItem?.optInCTAText,\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n","<div id=\"casino-progressbar-container\">\n <div\n class=\"progressbar\"\n *ngFor=\"let storyItemData of activeStoryData.storyItems; let i = index\"\n [ngStyle]=\"{ 'background-color': progressBarBgClr }\">\n <span\n class=\"singlestoryActiveProgressBar\"\n *ngIf=\"activeStoryData.storyItems.length == 1\"\n [ngStyle]=\"{ 'background-color': progressBarClr }\"\n [ngClass]=\"{ storyCompletionClass: checkStoryCompletion(i) }\"\n [style.width]=\"getWidth()\">\n <span\n class=\"theme-check\"\n *ngIf=\"checkStoryCompletion(i)\"\n [ngStyle]=\"{ 'background-color': progressBarCompletionBgClr, 'color': progressBarCompletionClr }\">\n </span>\n </span>\n <span\n *ngIf=\"activeStoryData.storyItems.length > 1\"\n [ngStyle]=\"{ 'background-color': progressBarClr }\"\n [ngClass]=\"{ activeProgressBar: i == activeStoryItemIndex, storyCompletionClass: checkStoryCompletion(i) }\"\n [style.width]=\"getWidth()\">\n <span\n class=\"theme-check\"\n *ngIf=\"checkStoryCompletion(i)\"\n [ngStyle]=\"{ 'background-color': progressBarCompletionBgClr, 'color': progressBarCompletionClr }\">\n </span>\n </span>\n </div>\n</div>\n","import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { GamingStoriesPhase2Configuration, GamingStoriesService, IGamingStory, IGamingStoryContainer } from '@casinocore/platform/core';\nimport { TimerService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cc-gaming-story-progress-bar',\n templateUrl: 'gaming-story-progress-bar.component.html',\n standalone: true,\n imports: [NgFor, NgStyle, NgIf, NgClass],\n})\nexport class GamingStoryProgressBarComponent implements OnInit, OnChanges, OnDestroy {\n @Input() storyContainerData: IGamingStoryContainer;\n @Input() activeStoriesIndex: number;\n @Input() activeStoryItemIndex: number;\n @Output() sendStoryCompletionEvent: EventEmitter<any> = new EventEmitter<any>();\n\n width: number = 0;\n progressBarBgClr: string;\n progressBarClr: string;\n progressBarCompletionBgClr: string;\n progressBarCompletionClr: string;\n activeStoryData: IGamingStory;\n progressBarWidth: any;\n\n private storyCompletionArray: Array<any> = new Array<any>();\n private setIntervalTimer: any;\n private progress = 0;\n private play: boolean;\n private storyInterval: number;\n private pauseStoryObservable: Subscription;\n private storyItemInterval: number;\n private videoPresentObservable: Subscription;\n private videoProgressObservable: Subscription;\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private firstTimeTrigger: boolean = false;\n\n constructor(\n private timerService: TimerService,\n private changeDetectorRef: ChangeDetectorRef,\n private gamingStoriesService: GamingStoriesService,\n ) {}\n\n ngOnChanges() {\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.storyItemInterval = this.gamingStoriesconfig.storyItemInterval;\n }\n clearTimeout(this.setIntervalTimer);\n if (this.setIntervalTimer) {\n this.timerService.clearInterval(this.setIntervalTimer);\n }\n // this.setIntervalTimer = 0;\n this.progress = 0;\n this.play = true;\n this.width = 0;\n this.storyCompletionArray = [];\n this.activeStoryData = this.storyContainerData.storyList[this.activeStoriesIndex];\n this.progressBarWidth = (100 / this.activeStoryData.storyItems.length).toString() + '%';\n let i = this.activeStoryItemIndex - 1;\n this.storyInterval = this.activeStoryData.storyItems[this.activeStoryItemIndex].storyItemInterval\n ? this.activeStoryData.storyItems[this.activeStoryItemIndex].storyItemInterval\n : this.storyItemInterval;\n while (i >= 0) {\n this.storyCompletionArray.push(i);\n i--;\n }\n this.subscribeToVideoPresentObs();\n this.runProgressBar();\n }\n\n ngOnInit(): void {\n this.progressBarBgClr = this.storyContainerData.sharedList.progressBarBgClr;\n this.progressBarClr = this.storyContainerData.sharedList.progressBarClr;\n this.progressBarCompletionBgClr = this.storyContainerData.sharedList.progressBarCompletionBgClr;\n this.progressBarCompletionClr = this.storyContainerData.sharedList.progressBarCompletionClr;\n this.pauseStoryObservable = this.gamingStoriesService.pauseStoryObservable.subscribe((pauseStoryTrigger: boolean) => {\n if (pauseStoryTrigger) {\n this.pauseStory();\n } else {\n this.resumeStory();\n }\n });\n this.activeStoryData = this.storyContainerData.storyList[this.activeStoriesIndex];\n }\n\n getWidth() {\n return this.width + '%';\n }\n\n checkStoryCompletion(index: number) {\n return this.storyCompletionArray.indexOf(index) > -1;\n }\n\n ngOnDestroy() {\n this.storyCompletionArray = [];\n if (this.pauseStoryObservable) {\n this.pauseStoryObservable.unsubscribe();\n }\n if (this.videoPresentObservable) {\n this.videoPresentObservable.unsubscribe();\n }\n if (this.videoProgressObservable) {\n this.videoProgressObservable.unsubscribe();\n }\n }\n\n private resumeStory() {\n this.gamingStoriesService.playVideo();\n this.play = true;\n }\n\n private pauseStory() {\n this.gamingStoriesService.pauseVideo();\n this.play = false;\n const video = <HTMLVideoElement>document.getElementById('casino-gamingstory-video');\n if (video) {\n video.pause();\n }\n }\n\n private clearTimer() {\n clearTimeout(this.setIntervalTimer);\n if (this.setIntervalTimer) {\n this.timerService.clearInterval(this.setIntervalTimer);\n this.setIntervalTimer = undefined;\n }\n }\n\n private emitStoryCompletionEvent() {\n const activeStoryData = {\n activeStoriesIndex: this.activeStoriesIndex,\n activeStoryItemIndex: this.activeStoryItemIndex,\n };\n this.clearTimer();\n this.unsubscribeToVideoObservable();\n this.gamingStoriesService.videoPresentStatus(false);\n this.gamingStoriesService.videoProgressStatus(-1);\n this.sendStoryCompletionEvent.emit(activeStoryData);\n }\n\n private runProgressBar() {\n this.setIntervalTimer = this.timerService.setIntervalOutsideAngularZone(() => {\n if (this.play) {\n this.progress += 0.001;\n this.width = Math.floor(this.progress * 100);\n this.changeDetectorRef.detectChanges();\n if (this.progress >= 1) {\n this.emitStoryCompletionEvent();\n }\n }\n }, this.storyInterval);\n }\n\n private unsubscribeToVideoObservable() {\n if (this.videoPresentObservable) {\n this.videoPresentObservable.unsubscribe();\n }\n if (this.videoProgressObservable) {\n this.videoProgressObservable.unsubscribe();\n }\n }\n\n private subscribeToVideoPresentObs() {\n this.videoPresentObservable = this.gamingStoriesService.videoPresentObservable.subscribe((isVideoPresent: boolean) => {\n if (isVideoPresent) {\n this.clearTimer();\n this.progress = 0;\n this.width = 0;\n }\n });\n\n this.videoProgressObservable = this.gamingStoriesService.videoProgressObservable.subscribe((progress: number) => {\n if (this.play && progress != -1) {\n this.width = progress;\n if (this.width == 100 && !this.firstTimeTrigger) {\n this.firstTimeTrigger = true;\n this.emitStoryCompletionEvent();\n }\n }\n });\n }\n}\n","<div class=\"mobile-stories-quiz\" style.background-image=\"{{ storyItem?.backgroundImage?.src ? 'url(' + storyItem?.backgroundImage?.src + ')' : '' }}\">\n <div class=\"question-box\" [class.disabled]=\"isDisabled\">\n <div\n class=\"question-header\"\n [ngClass]=\"{ activeheader: isSelected }\"\n [vnDynamicHtml]=\"storyItem?.question\"\n [ngStyle]=\"isSelected && { 'background-color': questionBgClr, 'color': questionTextClr }\"></div>\n <ng-container *ngIf=\"storyItem?.answers?.length\">\n <div\n class=\"answer-sec\"\n *ngFor=\"let item of storyItem.answers\"\n [ngStyle]=\"{ color: answersTextClr }\"\n [ngClass]=\"{ 'active-clr-onclick': selectedOption === item.key && isSelected && !item.selectedValue && haveSelectedValue }\"\n (click)=\"onSelect(item.key)\">\n <div class=\"answer\" *ngIf=\"!isSelected\" [vnDynamicHtml]=\"item.title\"></div>\n <div class=\"mb-progress\" *ngIf=\"isSelected\">\n <div\n class=\"mb-progressValue\"\n [style.width]=\"item.selectedValue + '%'\"\n [ngClass]=\"{ active: item.selectedValue }\"\n [ngStyle]=\"item.selectedValue && { 'background-color': answersBgClr, 'color': answersTextClr }\">\n <div class=\"progressInnerLabel\">\n <div class=\"ans-content\" [vnDynamicHtml]=\"item.title\"></div>\n <div class=\"ans-percentage\" [textContent]=\"item.selectedValue + '%'\"></div>\n </div>\n </div>\n <div class=\"progressLabel\">\n <div class=\"ans-content\" [vnDynamicHtml]=\"item.title\"></div>\n <div class=\"ans-percentage\" *ngIf=\"item.selectedValue\" [textContent]=\"item.selectedValue + '%'\"></div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n","import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesService,\n IGamingStoryContainer,\n IGamingStoryItem,\n IOption,\n ResponseDataModel,\n StoryInfoData,\n StoryInfoDataInSessionStorage,\n} from '@casinocore/platform/core';\nimport { DynamicHtmlDirective, LoginDialogService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'cc-gaming-story-quiz',\n templateUrl: 'gaming-story-quiz.component.html',\n standalone: true,\n imports: [NgClass, DynamicHtmlDirective, NgStyle, NgIf, NgFor],\n})\nexport class GamingStoryQuizComponent implements OnInit, OnDestroy, OnChanges {\n @Input() storyItem: IGamingStoryItem;\n @Input() fetchUserPreparedRequest: FetchUserRequestAPIModel;\n @Input() storyContainerData: IGamingStoryContainer;\n @Input() fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n\n haveSelectedValue: boolean = false;\n isSelected: boolean = false;\n questionTextClr: string;\n questionBgClr: string;\n answersBgClr: string;\n answersTextClr: string;\n isDisabled: boolean;\n selectedOption: string;\n // gamingStoriesconfig: GamingStoriesPhase2Configuration;\n // expirationTime: number;\n\n private userSessionStorageData: StoryInfoDataInSessionStorage;\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private expirationTime: number;\n private templateType: string = 'QuesAndAns';\n private uAvgResponse: any;\n private userSubscription: Subscription;\n private showSiteCoreData: boolean = false;\n private trackStoriesSkip: boolean = false;\n\n constructor(\n private gamingStoriesService: GamingStoriesService,\n private user: UserService,\n private loginDialog: LoginDialogService,\n ) {}\n\n ngOnChanges() {\n this.setAttributes();\n this.selectedOption = '';\n this.isDisabled = false;\n }\n\n ngOnInit(): void {\n this.setAttributes();\n this.userSubscription = this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n setTimeout(() => {\n this.appendUserIdToPreLoginSession();\n this.validatePreLoginSessionToStoreInPostLoginSession();\n }, 1000);\n });\n this.postvalidationCheck();\n }\n\n onSelect(key: string): void {\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.expirationTime = this.gamingStoriesconfig.expirationTime;\n }\n this.selectedOption = key;\n if (this.user.isAuthenticated) {\n if (key !== undefined) {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.question,\n this.storyItem.title,\n key,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = this.storyItem.storyId;\n storyInfo.subStoryId = this.storyItem.storyItemId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = key;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 1;\n // this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n // (x) => x.storyIndex !== storyInfo.storyIndex,\n // );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n this.isSelected = true;\n this.isDisabled = true;\n this.haveSelectedValue = true;\n this.appendInputOrUavgbasedonSelectedPostData(this.selectedOption);\n }\n this.gamingStoriesService.pauseStory(false);\n } else {\n this.gamingStoriesService.storyInfoPostRequestList = [];\n this.gamingStoriesService.pauseStory(true);\n const loginDialogRef = this.loginDialog.open();\n const afterclosesubcription: Subscription = loginDialogRef.afterClosed().subscribe(() => {\n if (afterclosesubcription) {\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.pauseStory(false);\n this.isDisabled = false;\n }\n afterclosesubcription.unsubscribe();\n }\n });\n }\n this.storeDataToPreLoginSession(key);\n }\n\n ngOnDestroy() {\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n }\n\n private setAttributes() {\n this.questionTextClr = this.storyContainerData.sharedList.questionTextClr;\n this.questionBgClr = this.storyContainerData.sharedList.questionBgClr;\n this.answersTextClr = this.storyContainerData.sharedList.answersTextClr;\n this.answersBgClr = this.storyContainerData.sharedList.answersBgClr;\n }\n\n private storeDataToPreLoginSession(eleName: string) {\n const currentEpocTime = new Date().getTime() / 1000;\n const storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage = new StoryInfoDataInSessionStorage();\n storyInfoDataInSessionStorage.response = new ResponseDataModel();\n storyInfoDataInSessionStorage.response.sId = this.storyItem.storyId;\n storyInfoDataInSessionStorage.response.subSId = this.storyItem.storyItemId;\n storyInfoDataInSessionStorage.response.uInput = eleName;\n storyInfoDataInSessionStorage.response.tType = this.templateType;\n storyInfoDataInSessionStorage.response.uAvg = this.uAvgResponse;\n storyInfoDataInSessionStorage.expiryTime = Math.round(currentEpocTime + this.expirationTime * 60);\n storyInfoDataInSessionStorage.userId = this.user.id ? this.user.id : '';\n storyInfoDataInSessionStorage.storyIndex = 1;\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== storyInfoDataInSessionStorage.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(storyInfoDataInSessionStorage);\n }\n }\n\n private appendInputOrUavgbasedonSelectedPostData(selectedOption: string) {\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((qsessionres: any) => {\n if (\n qsessionres.userId === this.user.id &&\n qsessionres.response.sId === this.storyItem.storyId &&\n qsessionres.response.subSId === this.storyItem.storyItemId &&\n qsessionres.response.uInput === undefined &&\n qsessionres.response.uAvg === undefined\n ) {\n qsessionres.response.uInput = selectedOption;\n qsessionres.response.uAvg = new Map();\n qsessionres.response.uAvg[qsessionres.response.uInput.toLowerCase()] = 100;\n this.bindQuizData(qsessionres.response);\n } else if (\n qsessionres.userId === this.user.id &&\n qsessionres.response.sId === this.storyItem.storyId &&\n qsessionres.response.subSId === this.storyItem.storyItemId &&\n qsessionres.response.uInput === undefined &&\n qsessionres.response.uAvg !== undefined\n ) {\n qsessionres.response.uInput = selectedOption;\n this.bindQuizData(qsessionres.response);\n }\n });\n sessionStorage.setItem('GS:StoryItemsInPostLoginSessionStorage', JSON.stringify(sessionStorageServiceStoryData));\n }\n // if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n // let sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage'));\n // sessionStorageServiceStoryData.forEach(qsessionres => {\n // if (qsessionres.userId === this.user.id && qsessionres.response.sId === this.storyItem.storyId && qsessionres.response.subSId === this.storyItem.storyItemId\n // && qsessionres.response.uInput === undefined && qsessionres.response.uAvg !== undefined) {\n // qsessionres.response.uInput = selectedOption;\n // this.bindQuizData(qsessionres.response);\n // }\n // });\n // sessionStorage.setItem('GS:StoryItemsInPostLoginSessionStorage', JSON.stringify(sessionStorageServiceStoryData));\n // }\n }\n\n private appendUserIdToPreLoginSession() {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.forEach((res) => {\n if (res.response.sId === this.storyItem.storyId && res.response.subSId === this.storyItem.storyItemId && res.userId === '') {\n res.userId = this.user.id ? this.user.id : '';\n this.userSessionStorageData = res;\n }\n });\n if (this.userSessionStorageData !== undefined) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== this.userSessionStorageData.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(this.userSessionStorageData);\n this.preparePreLoginSelectedDataForPostAPI(this.userSessionStorageData);\n }\n }\n }\n\n private preparePreLoginSelectedDataForPostAPI(storyInfoData: StoryInfoDataInSessionStorage) {\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = storyInfoData.response.sId;\n storyInfo.subStoryId = storyInfoData.response.subSId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = storyInfoData.response.uInput;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 1;\n this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n (x) => x.storyIndex !== storyInfo.storyIndex,\n );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n }\n\n private validatePreLoginSessionToStoreInPostLoginSession() {\n // if fetch API response available.\n // we are not storing selected data any where when it matches with fetch api response.\n if (this.fetchingGamingStoriesAPIRes) {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData: any) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId === fetchData.subSId\n ) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n // if fetch API response not available or failed scenario.\n // storing selected data in Service level and session level in post-login key.\n else {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((res: any) => {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId === fetchReq.subStoryId) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n }\n\n private storePreLoginSessionToPostLoginSession(res: StoryInfoDataInSessionStorage) {\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((sessionRes: any) => {\n if (\n sessionRes.userId === res.userId &&\n sessionRes.response.sId === res.response.sId &&\n sessionRes.response.subSId === res.response.subSId &&\n sessionRes.response.uInput === undefined\n ) {\n sessionRes.response.uInput = res.response.uInput;\n this.gamingStoriesService.storeFetchAPIDataRes(sessionRes);\n }\n });\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n this.preLoginCheckDataBind();\n }\n }\n\n private preLoginCheckDataBind() {\n if (this.user.isAuthenticated) {\n // fetch call response\n // if (this.fetchingGamingStoriesAPIRes) {\n // this.fetchingGamingStoriesAPIRes.response.forEach(qfetchres => {\n // if (this.fetchingGamingStoriesAPIRes.uId === this.user.id && qfetchres.sId === this.storyItem.storyId && qfetchres.subSId === this.storyItem.storyItemId && qfetchres.uAvg !== undefined && qfetchres.uInput !== undefined) {\n // this.bindQuizData(qfetchres);\n // }\n // });\n // }\n // service level data check bind\n if (this.gamingStoriesService.storeFetchAPIDataResList.length > 0) {\n this.gamingStoriesService.storeFetchAPIDataResList.forEach((qserviceres: any) => {\n if (\n qserviceres.userId === this.user.id &&\n qserviceres.response.sId === this.storyItem.storyId &&\n qserviceres.response.subSId === this.storyItem.storyItemId &&\n qserviceres.response.uInput !== undefined &&\n qserviceres.response.uAvg !== undefined\n ) {\n this.bindQuizData(qserviceres.response);\n }\n });\n }\n // session storage check bind\n else if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((qsessionres: any) => {\n if (\n qsessionres.userId === this.user.id &&\n qsessionres.response.sId === this.storyItem.storyId &&\n qsessionres.response.subSId === this.storyItem.storyItemId &&\n qsessionres.response.uInput !== undefined &&\n qsessionres.response.uAvg !== undefined\n ) {\n this.bindQuizData(qsessionres.response);\n }\n });\n }\n this.gamingStoriesService.pauseStory(false);\n }\n }\n\n private postvalidationCheck() {\n if (this.user.isAuthenticated) {\n // session storage check bind\n this.showSiteCoreData = false;\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n if (this.fetchingGamingStoriesAPIRes) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData: any) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId === fetchData.subSId\n ) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n // if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') && sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n // let preSessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage'));\n // let postSessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage'));\n // postSessionStorageServiceStoryData.forEach(qsessionres => {\n // if (qsessionres.userId === preSessionStorageServiceStoryData[0].userId && qsessionres.response.sId === preSessionStorageServiceStoryData[0].response.sId &&\n // qsessionres.response.subSId === preSessionStorageServiceStoryData[0].response.subSId) {\n // this.bindQuizData(qsessionres.response);\n // }\n // });\n // }\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((qsessionres: any) => {\n if (\n this.user.id === qsessionres.userId &&\n this.storyItem.storyId === qsessionres.response.sId &&\n this.storyItem.storyItemId === qsessionres.response.subSId\n ) {\n if (\n (qsessionres.response.uInput === undefined && qsessionres.response.uAvg === undefined) ||\n (qsessionres.response.uInput === undefined && qsessionres.response.uAvg !== undefined)\n ) {\n this.showSiteCoreData = true;\n }\n }\n });\n }\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') && !this.showSiteCoreData) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((qsessionres: any) => {\n if (\n qsessionres.userId === this.user.id &&\n qsessionres.response.sId === this.storyItem.storyId &&\n qsessionres.response.subSId === this.storyItem.storyItemId &&\n (qsessionres.response.uInput !== undefined || qsessionres.response.uAvg !== undefined)\n ) {\n this.bindQuizData(qsessionres.response);\n }\n });\n }\n this.gamingStoriesService.pauseStory(false);\n }\n }\n\n private bindQuizData(res: any) {\n this.isSelected = true;\n this.haveSelectedValue = true;\n this.isDisabled = true;\n this.uAvgResponse = res.uAvg;\n this.storyItem.answers.forEach((item: IOption) => {\n if (this.uAvgResponse !== undefined) {\n const selectedAnswer = this.uAvgResponse[(item?.key || '').toLowerCase()];\n if (\n (selectedAnswer === 100 || selectedAnswer === undefined) &&\n this.storyItem.yesNoPollOption.length !== Object.keys(this.uAvgResponse).length\n ) {\n const keys: any = Object.keys(this.uAvgResponse);\n if (keys && keys.length > 0) {\n for (let i = 0; i < keys.length; i++) {\n if (item.key.toLowerCase() !== keys[i].toLowerCase() && this.uAvgResponse[item.key.toLowerCase()] === 0) {\n this.uAvgResponse[item.key.toLowerCase()] = 0;\n }\n }\n }\n }\n if (selectedAnswer === 0) {\n item.selectedValue = 0;\n this.selectedOption = res.uInput;\n } else if (selectedAnswer === 100) {\n item.selectedValue = parseFloat(selectedAnswer);\n if (this.selectedOption === undefined || this.selectedOption === '') this.selectedOption = item.key;\n } else if (selectedAnswer) {\n item.selectedValue = parseFloat(selectedAnswer);\n this.haveSelectedValue = false;\n this.selectedOption = res.uInput;\n }\n } else {\n if (item.key.toLowerCase() === res.uInput.toLowerCase()) {\n item.selectedValue = 100;\n this.selectedOption = item.key;\n }\n }\n });\n this.storyItem.answers.forEach((item: IOption) => {\n if (item.key?.toLowerCase() === this.selectedOption?.toLowerCase() && !this.trackStoriesSkip) {\n this.trackStoriesSkip = true;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.question,\n this.storyItem.title,\n item.key + ' ' + ' - ' + ' ' + item.selectedValue + '%',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n });\n }\n}\n","<div class=\"yes-no-story\">\n <h2\n class=\"yesnopoll-title\"\n *ngIf=\"storyItem.subTitle\"\n [ngClass]=\"'yesnobtnposition-' + (subTitlePosition | lowercase)\"\n [ngStyle]=\"{ 'color': subTitleTxtClr, 'font-size': subTitleFontSize }\"\n [textContent]=\"storyItem?.subTitle\"></h2>\n <img [src]=\"storyItem?.backgroundImage?.src\" [alt]=\"storyItem?.backgroundImage?.alt\" />\n <span\n class=\"story-descrip\"\n [ngClass]=\"'yesnobtnposition-' + (descriptionPosition | lowercase)\"\n [ngStyle]=\"{ 'color': descriptionClr, 'font-size': descriptionFontSize }\"\n [textContent]=\"storyItem?.description\"></span>\n <div\n class=\"mobilestories-yesnopoll-container\"\n *ngIf=\"storyItem?.yesNoPollOption?.length\"\n [class.disabled]=\"isDisabled\"\n [ngClass]=\"'yesnobtnposition-' + (storyItem.actionTypePosition | lowercase)\">\n <div\n class=\"mobilestories-options\"\n *ngFor=\"let item of storyItem.yesNoPollOption\"\n [style.width]=\"selectedKey && item.selectedValue ? item.defaultValue + '%' : ''\"\n [ngClass]=\"{ active: selectedKey === item.key, activeclr: item.selectedValue }\"\n [ngStyle]=\"getYesNoPollStyles(item.key, selectedKey)\"\n (click)=\"optionsClicked(item.key)\">\n <div [vnDynamicHtml]=\"item.key\"></div>\n <div class=\"yesnopoll-selectedvalue\" *ngIf=\"selectedKey && item.selectedValue\" [textContent]=\"item.selectedValue + '%'\"></div>\n </div>\n </div>\n</div>\n","import { LowerCasePipe, NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesService,\n IGamingStoryContainer,\n IGamingStoryItem,\n IOption,\n ResponseDataModel,\n StoryInfoData,\n StoryInfoDataInSessionStorage,\n} from '@casinocore/platform/core';\nimport { DynamicHtmlDirective, LoginDialogService, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { Subscription, filter } from 'rxjs';\n\n@Component({\n selector: 'cc-gaming-story-yesno-poll',\n templateUrl: 'gaming-story-yesno-poll.component.html',\n standalone: true,\n imports: [NgIf, NgClass, NgStyle, NgFor, DynamicHtmlDirective, LowerCasePipe],\n})\nexport class GamingStoryYesNoPollComponent implements OnInit, OnDestroy, OnChanges {\n @Input() storyItem: IGamingStoryItem;\n @Input() fetchUserPreparedRequest: FetchUserRequestAPIModel;\n @Input() storyContainerData: IGamingStoryContainer;\n @Input() fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n\n selectedKey: string;\n isDisabled: boolean;\n yesPollTextClr: string;\n yesPollBgClr: string;\n noPollBgClr: string;\n noPollTextClr: string;\n isAuthenticated: boolean;\n yesBtnFontSize: number;\n noBtnFontSize: number;\n descriptionPosition: string;\n subTitlePosition: string;\n subTitleTxtClr: string;\n subTitleFontSize: string;\n descriptionClr: string;\n descriptionFontSize: string;\n\n private userSessionStorageData: StoryInfoDataInSessionStorage;\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private expirationTime: number;\n private templateType: string = 'YesOrNoPoll';\n private uAvgResponse: any;\n private yesBtnWidth: number;\n private noBtnWidth: number;\n private userSubscription: Subscription;\n private showSiteCoreData: boolean = false;\n private trackStoriesSkip: boolean = false;\n\n constructor(\n private gamingStoriesService: GamingStoriesService,\n private user: UserService,\n private loginDialog: LoginDialogService,\n ) {}\n\n ngOnChanges() {\n this.setAttributes();\n this.selectedKey = '';\n this.isDisabled = false;\n }\n\n ngOnInit(): void {\n this.setAttributes();\n this.userSubscription = this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n setTimeout(() => {\n this.isAuthenticated = this.user.isAuthenticated;\n this.appendUserIdToPreLoginSession();\n this.validatePreLoginSessionToStoreInPostLoginSession();\n }, 1000);\n });\n this.postvalidationCheck();\n }\n\n getYesNoPollStyles(itemVal: string, selectedKey: string) {\n let myStyles;\n if (this.isAuthenticated && itemVal?.toLowerCase() === 'yes' && selectedKey?.toLowerCase() === 'yes') {\n myStyles = {\n 'color': this.yesPollTextClr,\n 'font-size': this.yesBtnFontSize,\n 'background-color': this.yesPollBgClr,\n };\n } else if (this.isAuthenticated && itemVal?.toLowerCase() === 'no' && selectedKey?.toLowerCase() === 'no') {\n myStyles = {};\n myStyles = {\n 'color': this.noPollTextClr,\n 'font-size': this.noBtnFontSize,\n 'background-color': this.noPollBgClr,\n };\n } else {\n myStyles = {};\n }\n return myStyles;\n }\n\n optionsClicked(key: string) {\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.expirationTime = this.gamingStoriesconfig.expirationTime;\n }\n this.selectedKey = key;\n if (this.isAuthenticated) {\n this.gamingStoriesService.pauseStory(false);\n if (key !== undefined) {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.description.replace(/<[^>]*>/g, ''),\n this.storyItem.title,\n key,\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = this.storyItem.storyId;\n storyInfo.subStoryId = this.storyItem.storyItemId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = key;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 2;\n // this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n // (x) => x.storyIndex !== storyInfo.storyIndex,\n // );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n this.isDisabled = true;\n this.appendInputOrUavgbasedonSelectedPostData(this.selectedKey);\n }\n } else {\n this.gamingStoriesService.storyInfoPostRequestList = [];\n this.gamingStoriesService.pauseStory(true);\n const loginDialogRef = this.loginDialog.open();\n const afterclosesubcription: Subscription = loginDialogRef.afterClosed().subscribe(() => {\n if (afterclosesubcription) {\n if (!this.isAuthenticated) {\n this.gamingStoriesService.pauseStory(false);\n this.isDisabled = false;\n const current = document.getElementsByClassName('mobilestories-options active');\n if (current.length > 0) {\n current[0].className = current[0].className.replace('mobilestories-options active', 'mobilestories-options');\n }\n }\n afterclosesubcription.unsubscribe();\n }\n });\n }\n this.storeDataToPreLoginSession(key);\n }\n\n ngOnDestroy() {\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n }\n\n private setAttributes() {\n this.isAuthenticated = this.user.isAuthenticated;\n this.yesPollTextClr = this.storyContainerData.sharedList.yesPollTextClr;\n this.yesPollBgClr = this.storyContainerData.sharedList.yesPollBgClr;\n this.noPollTextClr = this.storyContainerData.sharedList.noPollTextClr;\n this.noPollBgClr = this.storyContainerData.sharedList.noPollBgClr;\n this.yesBtnFontSize = this.storyContainerData.sharedList.yesBtnFontSize;\n this.noBtnFontSize = this.storyContainerData.sharedList.noBtnFontSize;\n this.yesBtnWidth = this.storyContainerData.sharedList.yesBtnWidth;\n this.noBtnWidth = this.storyContainerData.sharedList.noBtnWidth;\n this.subTitlePosition = this.storyItem.subTitlePosition;\n this.descriptionPosition = this.storyItem.descriptionPosition;\n this.subTitleTxtClr = this.storyItem.configurations.subTitleTxtClr;\n this.subTitleFontSize = this.storyItem.configurations.subTitleFontSize;\n this.descriptionClr = this.storyItem.configurations.descriptionClr;\n this.descriptionFontSize = this.storyItem.configurations.descriptionFontSize;\n }\n\n private storeDataToPreLoginSession(eleName: string) {\n const currentEpocTime = new Date().getTime() / 1000;\n const storyInfoDataInSessionStorage: StoryInfoDataInSessionStorage = new StoryInfoDataInSessionStorage();\n storyInfoDataInSessionStorage.response = new ResponseDataModel();\n storyInfoDataInSessionStorage.response.sId = this.storyItem.storyId;\n storyInfoDataInSessionStorage.response.subSId = this.storyItem.storyItemId;\n storyInfoDataInSessionStorage.response.uInput = eleName;\n storyInfoDataInSessionStorage.response.tType = this.templateType;\n storyInfoDataInSessionStorage.response.uAvg = this.uAvgResponse;\n storyInfoDataInSessionStorage.expiryTime = Math.round(currentEpocTime + this.expirationTime * 60);\n storyInfoDataInSessionStorage.userId = this.user.id ? this.user.id : '';\n storyInfoDataInSessionStorage.storyIndex = 2;\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== storyInfoDataInSessionStorage.storyIndex,\n );\n if (!this.user.isAuthenticated) {\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(storyInfoDataInSessionStorage);\n }\n }\n\n private appendInputOrUavgbasedonSelectedPostData(selectedOption: string) {\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((ysessionres: any) => {\n if (\n ysessionres.userId === this.user.id &&\n ysessionres.response.sId === this.storyItem.storyId &&\n ysessionres.response.subSId === this.storyItem.storyItemId &&\n ysessionres.response.uInput === undefined &&\n ysessionres.response.uAvg === undefined\n ) {\n ysessionres.response.uInput = selectedOption;\n ysessionres.response.uAvg = new Map();\n ysessionres.response.uAvg[ysessionres.response.uInput.toLowerCase()] = 100;\n this.bindQuizData(ysessionres.response);\n } else if (\n ysessionres.userId === this.user.id &&\n ysessionres.response.sId === this.storyItem.storyId &&\n ysessionres.response.subSId === this.storyItem.storyItemId &&\n ysessionres.response.uInput === undefined &&\n ysessionres.response.uAvg !== undefined\n ) {\n ysessionres.response.uInput = selectedOption;\n this.bindQuizData(ysessionres.response);\n }\n });\n sessionStorage.setItem('GS:StoryItemsInPostLoginSessionStorage', JSON.stringify(sessionStorageServiceStoryData));\n }\n // if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n // let sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage'));\n // sessionStorageServiceStoryData.forEach(ysessionres => {\n // if (ysessionres.userId === this.user.id && ysessionres.response.sId === this.storyItem.storyId && ysessionres.response.subSId === this.storyItem.storyItemId\n // && ysessionres.response.uInput === undefined && ysessionres.response.uAvg !== undefined) {\n // ysessionres.response.uInput = selectedOption;\n // this.bindQuizData(ysessionres.response);\n // }\n // });\n // sessionStorage.setItem('GS:StoryItemsInPostLoginSessionStorage', JSON.stringify(sessionStorageServiceStoryData));\n // }\n }\n\n private appendUserIdToPreLoginSession() {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.forEach((res) => {\n if (res.response.sId === this.storyItem.storyId && res.response.subSId === this.storyItem.storyItemId && res.userId === '') {\n res.userId = this.user.id ? this.user.id : '';\n this.userSessionStorageData = res;\n }\n });\n if (this.userSessionStorageData !== undefined) {\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList =\n this.gamingStoriesService.storyInfoDataInPreLoginSessionStorageList.filter(\n (x) => x.storyIndex !== this.userSessionStorageData.storyIndex,\n );\n this.gamingStoriesService.storingDataInPreLoginSessionStorage(this.userSessionStorageData);\n this.preparePreLoginSelectedDataForPostAPI(this.userSessionStorageData);\n }\n }\n }\n\n private preparePreLoginSelectedDataForPostAPI(storyInfoData: StoryInfoDataInSessionStorage) {\n const storyInfo: StoryInfoData = new StoryInfoData();\n storyInfo.storyId = storyInfoData.response.sId;\n storyInfo.subStoryId = storyInfoData.response.subSId;\n storyInfo.storyType = this.storyItem.storyType;\n storyInfo.templateType = this.templateType;\n storyInfo.userInput = storyInfoData.response.uInput;\n storyInfo.expTime = this.storyItem.expiryTime;\n storyInfo.storyIndex = 2;\n this.gamingStoriesService.storyInfoPostRequestList = this.gamingStoriesService.storyInfoPostRequestList.filter(\n (x) => x.storyIndex !== storyInfo.storyIndex,\n );\n this.gamingStoriesService.storyInfoRequestItemsList(storyInfo);\n }\n\n private validatePreLoginSessionToStoreInPostLoginSession() {\n // if fetch API response available.\n // we are not storing selected data any where when it matches with fetch api response.\n if (this.fetchingGamingStoriesAPIRes) {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData: any) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId === fetchData.subSId\n ) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n // if fetch API response not available or failed scenario.\n // storing selected data in Service level and session level in post-login key.\n else {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((res: any) => {\n this.fetchUserPreparedRequest.reqStoryIds.forEach((fetchReq: any) => {\n if (res.response.sId === fetchReq.storyId && res.response.subSId === fetchReq.subStoryId) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n }\n\n private storePreLoginSessionToPostLoginSession(res: StoryInfoDataInSessionStorage) {\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((sessionRes: any) => {\n if (\n sessionRes.userId === res.userId &&\n sessionRes.response.sId === res.response.sId &&\n sessionRes.response.subSId === res.response.subSId &&\n sessionRes.response.uInput === undefined\n ) {\n sessionRes.response.uInput = res.response.uInput;\n this.gamingStoriesService.storeFetchAPIDataRes(sessionRes);\n }\n });\n sessionStorage.removeItem('GS:StoryItemsInPreLoginSessionStorage');\n this.preLoginCheckDataBind();\n }\n }\n\n private preLoginCheckDataBind() {\n if (this.isAuthenticated) {\n // // fetch call response\n // if (this.fetchingGamingStoriesAPIRes) {\n // this.fetchingGamingStoriesAPIRes.response.forEach(yfetchres => {\n // if (this.fetchingGamingStoriesAPIRes.uId === this.user.id && yfetchres.sId === this.storyItem.storyId && yfetchres.subSId === this.storyItem.storyItemId && yfetchres.uAvg !== undefined && yfetchres.uInput !== undefined) {\n // this.bindQuizData(yfetchres);\n // }\n // });\n // }\n // service level data check bind\n if (this.gamingStoriesService.storeFetchAPIDataResList.length > 0) {\n this.gamingStoriesService.storeFetchAPIDataResList.forEach((yserviceres: any) => {\n if (\n yserviceres.userId === this.user.id &&\n yserviceres.response.sId === this.storyItem.storyId &&\n yserviceres.response.subSId === this.storyItem.storyItemId &&\n (yserviceres.response.uInput !== undefined || yserviceres.response.uAvg !== undefined)\n ) {\n this.bindQuizData(yserviceres.response);\n }\n });\n }\n // session storage check bind\n else if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((ysessionres: any) => {\n if (\n ysessionres.userId === this.user.id &&\n ysessionres.response.sId === this.storyItem.storyId &&\n ysessionres.response.subSId === this.storyItem.storyItemId &&\n ysessionres.response.uInput !== undefined &&\n ysessionres.response.uAvg !== undefined\n ) {\n this.bindQuizData(ysessionres.response);\n }\n });\n }\n this.gamingStoriesService.pauseStory(false);\n }\n }\n\n private postvalidationCheck() {\n if (this.user.isAuthenticated) {\n // session storage check bind\n this.showSiteCoreData = false;\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n if (this.fetchingGamingStoriesAPIRes) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') as string);\n this.fetchingGamingStoriesAPIRes.response.forEach((fetchData: any) => {\n sessionStorageServiceStoryData.forEach((res: any) => {\n if (\n res.userId === this.fetchingGamingStoriesAPIRes.uId &&\n res.response.sId === fetchData.sId &&\n res.response.subSId === fetchData.subSId\n ) {\n this.storePreLoginSessionToPostLoginSession(res);\n }\n });\n });\n }\n }\n // if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage') && sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n // let preSessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage'));\n // let postSessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage'));\n // postSessionStorageServiceStoryData.forEach(ysessionres => {\n // if (ysessionres.userId === preSessionStorageServiceStoryData[0].userId && ysessionres.response.sId === preSessionStorageServiceStoryData[0].response.sId &&\n // ysessionres.response.subSId === preSessionStorageServiceStoryData[0].response.subSId) {\n // this.bindQuizData(ysessionres.response);\n // }\n // });\n // }\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((ysessionres: any) => {\n if (\n this.user.id === ysessionres.userId &&\n this.storyItem.storyId === ysessionres.response.sId &&\n this.storyItem.storyItemId === ysessionres.response.subSId\n ) {\n if (\n (ysessionres.response.uInput === undefined && ysessionres.response.uAvg === undefined) ||\n (ysessionres.response.uInput === undefined && ysessionres.response.uAvg !== undefined)\n ) {\n this.showSiteCoreData = true;\n }\n }\n });\n }\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') && !this.showSiteCoreData) {\n const sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n sessionStorageServiceStoryData.forEach((ysessionres: any) => {\n if (\n ysessionres.userId === this.user.id &&\n ysessionres.response.sId === this.storyItem.storyId &&\n ysessionres.response.subSId === this.storyItem.storyItemId &&\n (ysessionres.response.uInput !== undefined || ysessionres.response.uAvg !== undefined)\n ) {\n this.bindQuizData(ysessionres.response);\n }\n });\n }\n this.gamingStoriesService.pauseStory(false);\n }\n }\n\n private bindQuizData(res: any) {\n this.isDisabled = true;\n this.uAvgResponse = res.uAvg;\n this.storyItem.yesNoPollOption.forEach((item: IOption) => {\n if (this.uAvgResponse !== undefined) {\n const selectedAnswer = this.uAvgResponse[(item?.key || '').toLowerCase()];\n if (\n (selectedAnswer === 100 || selectedAnswer === undefined) &&\n this.storyItem.yesNoPollOption.length !== Object.keys(this.uAvgResponse).length\n ) {\n const keys: any = Object.keys(this.uAvgResponse);\n if (keys && keys.length > 0) {\n for (let i = 0; i < keys.length; i++) {\n if (item.key.toLowerCase() !== keys[i].toLowerCase()) {\n this.uAvgResponse[item.key.toLowerCase()] = 0;\n }\n }\n }\n }\n if (selectedAnswer === 0) {\n item.selectedValue = 0;\n item.defaultValue = 0;\n this.selectedKey = res.uInput;\n } else if (selectedAnswer === 100) {\n item.selectedValue = parseFloat(selectedAnswer);\n item.defaultValue = item.selectedValue;\n if (this.selectedKey === undefined || this.selectedKey === '') this.selectedKey = item.key;\n } else if (selectedAnswer) {\n item.selectedValue = parseFloat(selectedAnswer);\n item.defaultValue = item.selectedValue;\n this.selectedKey = res.uInput;\n }\n if (item.key.toLowerCase() === 'yes' && item.selectedValue < this.yesBtnWidth) {\n item.defaultValue = this.yesBtnWidth;\n } else if (item.key.toLowerCase() === 'no' && item.selectedValue < this.noBtnWidth) {\n item.defaultValue = this.noBtnWidth;\n }\n } else {\n if (item.key.toLowerCase() === res.uInput.toLowerCase()) {\n item.selectedValue = 100;\n item.defaultValue = item.selectedValue;\n this.selectedKey = item.key;\n }\n }\n });\n\n this.storyItem.yesNoPollOption.forEach((item: IOption) => {\n if (item.key?.toLowerCase() === this.selectedKey?.toLowerCase() && !this.trackStoriesSkip) {\n this.trackStoriesSkip = true;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n this.storyItem.description.replace(/<[^>]*>/g, ''),\n this.storyItem.title,\n item.key + ' ' + ' - ' + ' ' + item.selectedValue + '%',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n });\n }\n}\n","<div\n #storyItemsContainer\n class=\"mobilestories-container\"\n *ngIf=\"loadFeatures\"\n style.background-image=\"{{ storyItem?.backgroundImage?.src ? 'url(' + storyItem?.backgroundImage?.src + ')' : '' }}\"\n [ngStyle]=\"!storyHasVideo && { 'background-color': storyItemBackgroundClr }\"\n [ngClass]=\"{ nobackgroundimage: storyItemBackgroundClr }\">\n <div class=\"mobilestories-header\">\n <div class=\"ms-header-title-leftsection\">\n <img class=\"{{ storyIconShape }}\" [src]=\"storyItem?.storyImage?.src\" (error)=\"onGameIconError(storyItem)\" />\n <span class=\"mobilestory-title\">{{ storyItem?.title }}</span>\n </div>\n <div class=\"ms-header-rightsection\">\n <button\n class=\"play-pause-btn\"\n aria-hidden=\"true\"\n [ngStyle]=\"{ color: closebtnClr }\"\n [ngClass]=\"{ 'theme-play-solid': pause, 'theme-pause': !pause }\"\n (click)=\"togglePausePlay(storyItem, $event)\"></button>\n <div class=\"casino-gamingstory-video-mute-button\" *ngIf=\"storyHasVideo\">\n <button\n class=\"toggle-mute-button\"\n aria-hidden=\"true\"\n [disabled]=\"soundDisabled\"\n [ngStyle]=\"{ color: muteunmuteClr }\"\n [ngClass]=\"{ 'theme-sound-loud': !mute, 'theme-sound-mute': mute, 'disabled': soundDisabled }\"\n (click)=\"toggleMute(storyItem, $event)\"></button>\n </div>\n <div class=\"casino-gamingstory-video-mute-button\" *ngIf=\"!storyHasVideo && storyItem?.showAudio\">\n <audio #casinoAudio onloadeddata=\"this.play();\" [src]=\"storyItem?.audioFile\" [muted]=\"mute\"></audio>\n <button\n class=\"toggle-mute-button\"\n aria-hidden=\"true\"\n *ngIf=\"storyItem?.audioFile && storyItem?.showAudio\"\n [disabled]=\"soundDisabled\"\n [ngStyle]=\"{ color: muteunmuteClr }\"\n [ngClass]=\"{ 'theme-sound-loud': !mute, 'theme-sound-mute': mute, 'disabled': soundDisabled }\"\n (click)=\"onAudioPlay(storyItem, $event)\"></button>\n </div>\n <span class=\"close theme-ex\" (click)=\"closeModal($event)\"></span>\n </div>\n </div>\n <div #gamingStoriesItemsdrag class=\"story-move-up\" id=\"gamingstoriesItemsContainer\" *ngIf=\"loadFeatures\">\n <div *ngIf=\"storyHasVideo\">\n <video\n class=\"casino-gamingstory-video\"\n id=\"casino-gamingstory-video\"\n autoplay\n playsinline\n onloadeddata=\"this.play();\"\n *ngIf=\"videoURL\"\n [src]=\"videoURL\"\n [muted]=\"mute\"\n (loadeddata)=\"videoLoaded()\"\n (timeupdate)=\"timeUpdate()\"></video>\n <cloudflare-stream\n class=\"casino-gamingstory-video\"\n id=\"casino-gamingstory-cmsvideo\"\n preload=\"auto\"\n *ngIf=\"cmsVideoURL\"\n [height]=\"'100%'\"\n [controls]=\"false\"\n [src]=\"cmsVideoURL\"\n [muted]=\"mute\"\n [autoplay]=\"true\"\n (timeupdate)=\"cmsTimeUpdate()\"></cloudflare-stream>\n </div>\n <cc-gaming-story-progress-bar\n [activeStoriesIndex]=\"activeStoriesIndex\"\n [activeStoryItemIndex]=\"activeStoryItemIndex\"\n [storyContainerData]=\"storyContainerData\"\n (sendStoryCompletionEvent)=\"storyCompletionEventFromProgressBar($event)\"></cc-gaming-story-progress-bar>\n <div class=\"mobilestories-content\" [ngSwitch]=\"storyItem?.storyItemActionType\">\n <div *ngSwitchCase=\"storyItemActionTypes.EmojiSelector\">\n <cc-gaming-story-emojis-animations\n [storyItem]=\"storyItem\"\n [fetchingGamingStoriesAPIRes]=\"fetchingGamingStoriesAPIRes\"\n [fetchUserPreparedRequest]=\"fetchUserPreparedRequest\"></cc-gaming-story-emojis-animations>\n </div>\n <div *ngSwitchCase=\"storyItemActionTypes.YesNoPoll\">\n <cc-gaming-story-yesno-poll\n [storyItem]=\"storyItem\"\n [storyContainerData]=\"storyContainerData\"\n [fetchingGamingStoriesAPIRes]=\"fetchingGamingStoriesAPIRes\"\n [fetchUserPreparedRequest]=\"fetchUserPreparedRequest\"></cc-gaming-story-yesno-poll>\n </div>\n <div *ngSwitchCase=\"storyItemActionTypes.EmojiSlider\">\n <cc-gaming-story-emoji-slider\n [storyItem]=\"storyItem\"\n [fetchingGamingStoriesAPIRes]=\"fetchingGamingStoriesAPIRes\"\n [fetchUserPreparedRequest]=\"fetchUserPreparedRequest\"></cc-gaming-story-emoji-slider>\n </div>\n <div *ngSwitchCase=\"storyItemActionTypes.QuestionAndAnswer\">\n <cc-gaming-story-quiz\n [storyItem]=\"storyItem\"\n [storyContainerData]=\"storyContainerData\"\n [fetchingGamingStoriesAPIRes]=\"fetchingGamingStoriesAPIRes\"\n [fetchUserPreparedRequest]=\"fetchUserPreparedRequest\"></cc-gaming-story-quiz>\n </div>\n <div *ngSwitchCase=\"storyItemActionTypes.CustomCTA\">\n <cc-gaming-story-cta [storyItem]=\"storyItem\"></cc-gaming-story-cta>\n </div>\n <div *ngSwitchCase=\"storyItemActionTypes.Promos\">\n <cc-gaming-story-optin\n *ngIf=\"userAuthentication && storyItem.isValid\"\n [storyItem]=\"storyItem\"\n [storyVersionList]=\"storyContainerData.versionedList\"></cc-gaming-story-optin>\n </div>\n </div>\n <div class=\"btn-move-up\" [ngClass]=\"'swipeupbtnposition-' + (swipeUpBtnPosition | lowercase)\">\n <span class=\"swipeuptxt\" *ngIf=\"displaySwipeUp\" [ngStyle]=\"{ color: swipeupTextColor }\">{{ swipeupText }}</span>\n <span\n class=\"theme-arrow-left\"\n *ngIf=\"displaySwipeUp\"\n [ngStyle]=\"{ 'border-color': swipeupClr, 'color': swipeupClr }\"\n (click)=\"swipeToBottom()\"></span>\n </div>\n </div>\n</div>\n<div #swipeupContentFrame class=\"story-move-down\" [ngStyle]=\"{ 'z-index': zIndex }\" (swipedown)=\"swipeToTop()\">\n <div class=\"story-move-down\" *ngIf=\"displaySwipeUpContent\">\n <div class=\"btn-move-down\" [ngStyle]=\"{ 'background-color': promotionTitleBgClr, 'color': promotionTitleClr }\">\n <span class=\"title-header\">{{ swipeUpContentData.title }}</span>\n <span class=\"theme-down\" *ngIf=\"displayDownArrow\" (click)=\"swipeToTop()\"></span>\n </div>\n <div class=\"swipeupstory-container\">\n <h2>{{ swipeUpContentData.subTitle }}</h2>\n <img [src]=\"swipeUpContentData?.storyImage?.src\" />\n <p>{{ swipeUpContentData.description }}</p>\n </div>\n </div>\n</div>\n<div\n class=\"optin-tncontent\"\n *ngIf=\"loadFeatures && storyItem?.showTnC\"\n [ngStyle]=\"{ 'background-color': storyItem?.configurations?.tncBgClr, 'color': storyItem?.configurations?.tncTxtClr }\">\n <span>{{ storyItem?.tnCContent }}</span>\n</div>\n\n<div class=\"tilt-landscape-message\">\n <img alt=\"Titling Phone\" [src]=\"storyContainerData?.tiltImageUrl?.src\" />\n <div class=\"casino-tiltmsg-text\" [textContent]=\"storyContainerData?.tiltMessage\"></div>\n</div>\n","import { LowerCasePipe, NgClass, NgIf, NgStyle, NgSwitch, NgSwitchCase } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport {\n CasinoManager,\n ConfigProviderService,\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesService,\n GamingStoriesStorageCloseModel,\n IGamingStory,\n IGamingStoryContainer,\n IGamingStoryItem,\n} from '@casinocore/platform/core';\nimport { addClass } from '@casinocore/platform/utils';\nimport { CloudflareStreamComponent, CloudflareStreamModule } from '@cloudflare/stream-angular';\nimport { DeviceService, Message, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { Subject, Subscription, filter, takeUntil } from 'rxjs';\n\nimport { GamingStoryCtaComponent } from '../gaming-story-cta/gaming-story-cta.component';\nimport { GamingStoryEmojiSliderComponent } from '../gaming-story-emoji-slider/gaming-story-emoji-slider.component';\nimport { GamingStoryEmojisAnimationsComponent } from '../gaming-story-emojis-animations/gaming-story-emojis-animations.component';\nimport { GamingStoryOptInComponent } from '../gaming-story-optin/gaming-story-optin.component';\nimport { GamingStoryProgressBarComponent } from '../gaming-story-progress-bar/gaming-story-progress-bar.component';\nimport { GamingStoryQuizComponent } from '../gaming-story-quiz/gaming-story-quiz.component';\nimport { GamingStoryYesNoPollComponent } from '../gaming-story-yesno-poll/gaming-story-yesno-poll.component';\n\nexport enum StoryItemActionType {\n EmojiSelector = 'EmojiSelector',\n YesNoPoll = 'YesNoPoll',\n EmojiSlider = 'EmojiSlider',\n QuestionAndAnswer = 'QuestionAndAnswer',\n CustomCTA = 'CustomCTA',\n Promos = 'Promos',\n}\n\n@Component({\n selector: 'cc-gaming-story-items',\n templateUrl: 'gaming-story-items.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgStyle,\n NgClass,\n CloudflareStreamModule,\n GamingStoryProgressBarComponent,\n NgSwitch,\n NgSwitchCase,\n GamingStoryEmojisAnimationsComponent,\n GamingStoryYesNoPollComponent,\n GamingStoryEmojiSliderComponent,\n GamingStoryQuizComponent,\n GamingStoryCtaComponent,\n GamingStoryOptInComponent,\n LowerCasePipe,\n ],\n})\nexport class GamingStoryItemsComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('storyItemsContainer', { read: ElementRef }) scrollContainer: ElementRef;\n @ViewChild('swipeupContentFrame', { read: ElementRef }) swipeUpContentContainer: ElementRef;\n @ViewChild('casinoAudio', { static: false }) casinoAudio: ElementRef<HTMLAudioElement>;\n @ViewChild('casinoAudioButton', { static: false }) casinoAudioButton: ElementRef<HTMLDivElement>;\n @ViewChild('gamingStoriesItemsdrag', { static: false }) gamingStoriesItemsdraggable: ElementRef<HTMLDivElement>;\n @ViewChild('cmsVideoPlayer') cmsVideoPlayer: CloudflareStreamComponent;\n\n defaultSrc: string;\n closebtnClr: string;\n pause: boolean;\n activeStoriesIndex: number;\n storyContainerData: IGamingStoryContainer;\n activeStoryItemIndex: number;\n storyItemList: Array<IGamingStoryItem>;\n storyItem: IGamingStoryItem;\n showPrevButton: boolean = true;\n showNextButton: boolean = true;\n displaySwipeUp: boolean;\n displayDownArrow: boolean;\n swipeupClr: string;\n swipeupTextColor: string;\n swipeupText: string;\n storyIconShape: string;\n displaySwipeUpContent: boolean;\n promotionTitleClr: string;\n promotionTitleBgClr: string;\n swipeUpContentData: IGamingStoryItem;\n videoURL: string;\n cmsVideoURL: string;\n storyHasVideo: boolean;\n muteunmuteClr: string;\n mute: boolean = true;\n soundDisabled: boolean;\n storyItemBackgroundClr: string;\n userAuthentication: boolean;\n swipeUpBtnPosition: string;\n fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n storyItemActionTypes = StoryItemActionType;\n loadFeatures: boolean;\n fetchUserPreparedRequest: FetchUserRequestAPIModel;\n zIndex: number;\n private readonly SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight', UP: 'swipeUp', TAP: 'tap' };\n private destroy$ = new Subject<void>();\n private gamingStoriesClientConfig: any;\n private disableTap: boolean;\n private counter: number = 0;\n private enableSwipeUp: boolean;\n private swipeUpContentDataList: Array<IGamingStoryItem>;\n activeStoryData: IGamingStory;\n fetchAPIObservable: Subscription;\n playpauseObservable: Subscription;\n\n constructor(\n public matDialogRef: MatDialogRef<GamingStoryItemsComponent>,\n private gamingStoriesService: GamingStoriesService,\n private deviceservice: DeviceService,\n private user: UserService,\n private configProviderService: ConfigProviderService,\n private changeDetectorRef: ChangeDetectorRef,\n private casinoManager: CasinoManager,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {\n this.playPauseObservable();\n }\n\n ngOnInit(): void {\n addClass('mobile-stories-enables');\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n this.user.events\n .pipe(takeUntil(this.destroy$))\n .pipe(filter((e: any) => e instanceof UserLoginEvent))\n .subscribe(() => {\n setTimeout(() => {\n this.loadFeatures = false;\n this.getFetchingUserResponseAPIData('loginEvent');\n }, 1000);\n });\n this.identifyLandscapeToPortrait();\n this.gamingStoriesClientConfig = this.configProviderService.provideGamingStoriesConfig();\n this.storyContainerData = this.data.storyContainerData;\n this.storyItemList = this.data.storyItem;\n this.fetchUserPreparedRequest = this.data.fetchUserPreparedRequest;\n this.activeStoriesIndex = this.data.activeStoriesIndex;\n this.fetchingGamingStoriesAPIRes = this.data.fetchingGamingStoriesAPIRes;\n this.activeStoryItemIndex = this.storyItemList[0].activeStoryItemIndex;\n this.storyItem = this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems[this.activeStoryItemIndex];\n if (this.storyItem === undefined) {\n this.activeStoryItemIndex = this.activeStoryItemIndex - 1;\n this.storyItem = this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems[this.activeStoryItemIndex];\n }\n this.closebtnClr = this.data.storyContainerData.sharedList.closebtnClr;\n this.swipeupClr = this.data.storyContainerData.sharedList.swipeupClr;\n this.swipeupText = this.data.storyContainerData.versionedList.swipeupText;\n this.promotionTitleClr = this.data.storyContainerData.sharedList.promotionTitleClr;\n this.promotionTitleBgClr = this.data.storyContainerData.sharedList.promotionTitleBgClr;\n this.swipeupTextColor = this.data.storyContainerData.sharedList.swipeupTextColor;\n this.muteunmuteClr = this.data.storyContainerData.sharedList.muteunmuteClr;\n this.activeStoryData = this.data.storyContainerData.storyList[this.activeStoriesIndex];\n this.userAuthentication = this.user.isAuthenticated;\n this.storyItemBackgroundClr = this.storyItem.configurations.storyItemBackgroundClr;\n this.swipeUpContentDataList = this.data.swipeUpContentDataList;\n this.storyIconShape = this.storyContainerData.storyIconType ? this.storyContainerData.storyIconType : 'Square';\n this.fetchSwipeUpContent();\n this.gamingStoriesService.muteVideo = 'muted';\n this.toggleMute(this.storyItem, null);\n this.setVideoAndAudio(this.storyItem);\n let storyContainerList = new GamingStoriesStorageCloseModel();\n storyContainerList.storyList = this.data.storyContainerData.storyList;\n storyContainerList.activeStoriesIndex = this.activeStoriesIndex;\n storyContainerList.activeStoryItemIndex = this.activeStoryItemIndex;\n this.gamingStoriesService.storeGamingStoriesCloseContainer(storyContainerList);\n this.swipeUpBtnPosition = this.storyItem.actionTypePosition;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'Story icon',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n this.loadFeatures = true;\n }\n\n ngAfterViewInit() {\n this.setupSwipeAndTapEvents();\n this.setVideoAndAudio(this.storyItem);\n }\n\n videoLoaded() {\n this.gamingStoriesService.playVideo();\n if (this.gamingStoriesService.storyPaused) {\n this.gamingStoriesService.pauseVideo();\n }\n }\n\n toggleMute(storyItem: IGamingStoryItem, $event: Event | null) {\n if (this.gamingStoriesService.muteVideo == 'muted') {\n this.gamingStoriesService.muteVideo = 'not_muted';\n } else {\n this.gamingStoriesService.muteVideo = 'muted';\n }\n if ($event !== null) {\n if (this.gamingStoriesService.muteVideo === 'muted') {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n storyItem.title,\n 'mute',\n storyItem.actionTypePosition,\n 'not applicable',\n );\n } else {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n storyItem.title,\n 'Unmute',\n storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n }\n this.gamingStoriesService.videoMuteBehaviourSubject.next(this.gamingStoriesService.muteVideo);\n $event && $event.stopImmediatePropagation();\n }\n\n togglePausePlay(storyItem: IGamingStoryItem, $event: Event) {\n this.gamingStoriesService.pausePlayStory = !this.pause;\n if (this.gamingStoriesService.pausePlayStory) {\n this.casinoAudio?.nativeElement.pause();\n this.soundDisabled = true;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n storyItem.title,\n 'pause',\n storyItem.actionTypePosition,\n 'not applicable',\n );\n } else {\n if (!this.casinoAudio?.nativeElement?.ended) {\n this.casinoAudio?.nativeElement.play();\n }\n this.soundDisabled = false;\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n storyItem.title,\n 'play',\n storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n this.gamingStoriesService.pauseStoryBehaviourSubject.next(this.gamingStoriesService.pausePlayStory);\n $event && $event.stopImmediatePropagation();\n }\n\n onGameIconError(storyItem: any): void {\n storyItem.storyImage.src = this.defaultSrc;\n }\n\n onAudioPlay(storyItem: IGamingStoryItem, $event: Event): void {\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n storyItem.title,\n 'play',\n storyItem.actionTypePosition,\n 'not applicable',\n );\n if (this.mute) {\n this.mute = !this.mute;\n if (!this.casinoAudio?.nativeElement?.ended) {\n this.casinoAudio?.nativeElement.play();\n }\n } else {\n this.mute = !this.mute;\n this.casinoAudio?.nativeElement.pause();\n }\n $event && $event.stopImmediatePropagation();\n }\n\n storyCompletionEventFromProgressBar(event: any) {\n let activeStoriesIndex = event.activeStoriesIndex;\n let activeStoryItemIndex = event.activeStoryItemIndex;\n if (activeStoriesIndex + 1 < this.data.storyContainerData.storyList.length) {\n if (activeStoryItemIndex + 1 < this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems.length) {\n this.goToNextStory(activeStoriesIndex, activeStoryItemIndex);\n } else {\n this.goToNextPromo(activeStoriesIndex, activeStoryItemIndex);\n }\n } else if (activeStoriesIndex + 1 == this.data.storyContainerData.storyList.length) {\n if (activeStoryItemIndex + 1 < this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems.length) {\n this.goToNextStory(activeStoriesIndex, activeStoryItemIndex);\n } else {\n this.closeModal(null);\n }\n } else {\n this.closeModal(null);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'auto',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n // if (this.data.storyContainerData.storyList[activeStoriesIndex].storyItems[activeStoryItemIndex].showVideo) {\n // this.storyHasVideo = false;\n // this.gamingStoriesService.storyHasVideo = false;\n // }\n }\n\n timeUpdate() {\n let counter: number = 0;\n let video = <HTMLVideoElement>document.getElementById('casino-gamingstory-video');\n if (video) {\n let percentage = (video.currentTime / video.duration) * 100;\n if (percentage == 100) {\n counter++;\n }\n if (counter <= 1) {\n this.gamingStoriesService.videoProgressStatus(percentage);\n }\n }\n }\n\n cmsTimeUpdate() {\n let counter: number = 0;\n const stream: any = document.querySelector('#casino-gamingstory-cmsvideo stream');\n if (stream) {\n let percentage = (stream.currentTime / stream.duration) * 100;\n if (percentage == 100) {\n counter++;\n }\n if (counter <= 1) {\n this.gamingStoriesService.videoProgressStatus(percentage);\n }\n }\n }\n\n closeModal($event: Event | null): void {\n this.gamingStoriesService.pauseVideo();\n this.setViewedStory(this.activeStoriesIndex, this.activeStoryItemIndex);\n this.setViewedPromo(this.activeStoriesIndex);\n $event && $event.stopImmediatePropagation();\n this.matDialogRef.close(this.data.storyContainerData);\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'Close',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n swipeToBottom() {\n if (this.displaySwipeUp) {\n this.getSwipeUpContentData();\n this.displaySwipeUpContent = true;\n this.toggleDisplayArrows();\n let swipeUpContent = this.swipeUpContentContainer.nativeElement;\n this.pauseStory();\n if (!this.deviceservice.isiOS) {\n swipeUpContent.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\n }\n if (this.deviceservice.isiOS) {\n swipeUpContent.scrollIntoView(true);\n }\n this.zIndex = 1;\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'swipeBottom',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n swipeToTop() {\n this.getSwipeUpContentData();\n this.displaySwipeUpContent = false;\n this.toggleDisplayArrows();\n let scrollContent = this.scrollContainer.nativeElement;\n this.resumeStory();\n this.zIndex = 0;\n if (!this.deviceservice.isiOS) {\n scrollContent.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\n }\n if (this.deviceservice.isiOS) {\n scrollContent.scrollIntoView(true);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'swipeUp',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n ngOnDestroy() {\n this.casinoAudio?.nativeElement.pause();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private identifyLandscapeToPortrait() {\n this.deviceservice.orientation.pipe(takeUntil(this.destroy$)).subscribe({\n next: (orientation: string) => {\n if (orientation) {\n if (this.deviceservice.isTouch && orientation === 'landscape') {\n this.pauseStory();\n } else {\n this.resumeStory();\n }\n }\n },\n error: () => {},\n });\n }\n\n private pauseStory() {\n this.gamingStoriesService.pauseStory(true);\n }\n\n private resumeStory() {\n this.gamingStoriesService.pauseStory(false);\n }\n\n private onLeftSwipe() {\n this.gamingStoriesService.pauseVideo();\n this.setStoryForLeftSwipe();\n }\n\n private onRightSwipe() {\n this.gamingStoriesService.pauseVideo();\n this.setStoryForRightSwipe();\n }\n\n private onTap(evt: any) {\n let gamingstoriesItemsContainer = document.getElementById('gamingstoriesItemsContainer')!;\n let tapHeightLimit = gamingstoriesItemsContainer?.offsetHeight / 4.5;\n if (tapHeightLimit < evt.changedPointers[0].clientY) {\n if (this.disableTap) {\n return;\n }\n this.disableTap = true;\n if (this.gamingStoriesService.storyHasVideo) {\n let video = <HTMLVideoElement>document.getElementById('casino-gamingstory-video');\n let stream: HTMLMediaElement = {} as HTMLMediaElement;\n if (!video) stream = document.querySelector('#casino-gamingstory-cmsvideo stream') as HTMLMediaElement;\n if (video && (video.readyState == 3 || video.readyState == 4) && video.currentTime >= 1) {\n video.pause();\n this.processOnTap(evt);\n } else if (stream && stream.currentTime >= 1) {\n stream.pause();\n this.processOnTap(evt);\n } else {\n this.disableTap = false;\n this.processOnTap(evt);\n }\n } else {\n this.processOnTap(evt);\n }\n }\n }\n\n private playPauseObservable() {\n this.playpauseObservable = this.gamingStoriesService.pauseStoryObservable.pipe(takeUntil(this.destroy$)).subscribe((isPaused: boolean) => {\n if (isPaused) {\n this.pause = true;\n } else {\n this.pause = false;\n }\n });\n }\n\n private setVideoAndAudio(gamingStoryItemsModel: IGamingStoryItem) {\n if (this.counter == 0 && this.storyItem.videoURL) {\n this.counter++;\n this.gamingStoriesService.videoPresentStatus(true);\n }\n if (gamingStoryItemsModel.showVideo && gamingStoryItemsModel?.cmsVideoURL?.id) {\n this.cmsVideoURL = gamingStoryItemsModel.cmsVideoURL.id;\n this.storyHasVideo = true;\n this.gamingStoriesService.storyHasVideo = true;\n this.videoURL = '';\n } else if (gamingStoryItemsModel.showVideo && gamingStoryItemsModel?.cmsVideoURL?.src) {\n this.cmsVideoURL = gamingStoryItemsModel.cmsVideoURL.src;\n this.storyHasVideo = true;\n this.gamingStoriesService.storyHasVideo = true;\n this.videoURL = '';\n } else if (gamingStoryItemsModel.showVideo && gamingStoryItemsModel.videoURL) {\n this.videoURL = gamingStoryItemsModel.videoURL;\n this.storyHasVideo = true;\n this.gamingStoriesService.storyHasVideo = true;\n this.cmsVideoURL = '';\n }\n this.gamingStoriesService.videoMuteObservable.pipe(takeUntil(this.destroy$)).subscribe((isMuted: string) => {\n if (isMuted) {\n if (isMuted == 'muted') {\n this.mute = true;\n } else {\n this.mute = false;\n }\n }\n });\n }\n\n private setActivePromoAndStory(storiesIndex: number, storyItemIndex: number, setCurrentStoriesIndex: number, setCurrentStoryItemIndex: number) {\n this.activeStoriesIndex = storiesIndex;\n this.activeStoryItemIndex = storyItemIndex;\n this.activeStoryData = this.data.storyContainerData.storyList[this.activeStoriesIndex];\n this.storyItem = this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems[this.activeStoryItemIndex];\n this.fetchSwipeUpContent();\n this.storyItemBackgroundClr = this.storyItem.configurations.storyItemBackgroundClr;\n this.gamingStoriesService.pauseStoryBehaviourSubject.next(false);\n this.soundDisabled = false;\n this.setViewedStory(setCurrentStoriesIndex, setCurrentStoryItemIndex);\n if (this.data.storyContainerData.storyList[setCurrentStoriesIndex].storyItems.length == setCurrentStoryItemIndex + 1) {\n this.setViewedPromo(setCurrentStoriesIndex);\n }\n this.displaySwipeUpArrows(this.enableSwipeUp);\n if (this.data.storyContainerData.storyList[setCurrentStoriesIndex].storyItems[setCurrentStoryItemIndex].showVideo) {\n this.storyHasVideo = false;\n this.gamingStoriesService.storyHasVideo = false;\n }\n this.gamingStoriesService.muteVideo = 'muted';\n this.toggleMute(this.storyItem, null);\n this.setVideoAndAudio(this.storyItem);\n let storyContainerList = new GamingStoriesStorageCloseModel();\n storyContainerList.storyList = this.data.storyContainerData.storyList;\n storyContainerList.activeStoriesIndex = this.activeStoriesIndex;\n storyContainerList.activeStoryItemIndex = this.activeStoryItemIndex;\n this.gamingStoriesService.storeGamingStoriesCloseContainer(storyContainerList);\n this.userAuthentication = this.user.isAuthenticated;\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n let playNowCTA = this.scrollContainer?.nativeElement?.querySelector('.more-info-btn');\n playNowCTA?.addEventListener('click', () => {\n this.closeModal(null);\n });\n }, this.gamingStoriesClientConfig.gameLaunchSetTimeOut);\n }\n\n private fetchSwipeUpContent() {\n this.enableSwipeUp = this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems[this.activeStoryItemIndex].enableSwipeup;\n let storyItemActionType =\n this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems[this.activeStoryItemIndex].storyItemActionType;\n if (\n this.enableSwipeUp &&\n storyItemActionType !== 'EmojiSlider' &&\n storyItemActionType !== 'EmojiSelector' &&\n storyItemActionType !== 'SelectList' &&\n storyItemActionType !== 'YesNo'\n ) {\n this.displaySwipeUpArrows(this.enableSwipeUp);\n }\n }\n\n private setViewedStory(activeStoriesIndex: number, activeStoryItemIndex: number) {\n this.data.storyContainerData.storyList[activeStoriesIndex].storyItems[activeStoryItemIndex].storyItemViewed = true;\n }\n\n private setViewedPromo(activeStoriesIndex: number) {\n let activeStoryData = this.data.storyContainerData.storyList[activeStoriesIndex];\n let promoHasNotViewedStory: boolean = false;\n activeStoryData.storyItems.forEach((story: IGamingStoryItem) => {\n if (!story.storyItemViewed) {\n promoHasNotViewedStory = true;\n }\n });\n if (!promoHasNotViewedStory) {\n this.data.storyContainerData.storyList[activeStoriesIndex].storyViewed = true;\n }\n }\n\n private displaySwipeUpArrows(enableSwipeUp: boolean) {\n this.displaySwipeUp = enableSwipeUp;\n this.displayDownArrow = false;\n }\n\n private toggleDisplayArrows() {\n this.displaySwipeUp = !this.displaySwipeUp;\n this.displayDownArrow = !this.displayDownArrow;\n }\n\n private getSwipeUpContentData(): void {\n this.gamingStoriesService.swipeUpObservable.pipe(takeUntil(this.destroy$)).subscribe((isReady: boolean) => {\n if (isReady) {\n const swipeUpContentDataList: Array<IGamingStoryItem> = this.gamingStoriesService.swipeUpContentList;\n if (swipeUpContentDataList) {\n this.swipeUpContentDataList = swipeUpContentDataList;\n this.swipeUpContentDataList.forEach((swipeUpdata: IGamingStoryItem) => {\n if (swipeUpdata.storyItemsPath.path === this.storyItem.swipeupStoryItemContent[0].path) {\n this.swipeUpContentData = swipeUpdata;\n this.swipeUpContentData.storyImage = this.storyItem.storyImage;\n }\n });\n }\n }\n });\n }\n\n private getFetchingUserResponseAPIData(loginStatus?: any): void {\n this.subscribeFetchUserResponse();\n this.gamingStoriesService.fetchGamingStoriesAPIObservable.pipe(takeUntil(this.destroy$)).subscribe((isReady: boolean) => {\n if (isReady) {\n const fetchGamingStoriesAPIResData: FetchUserResponseAPIModel = this.gamingStoriesService.fetchGamingStoriesAPIRes;\n if (fetchGamingStoriesAPIResData) {\n this.fetchingGamingStoriesAPIRes = fetchGamingStoriesAPIResData;\n if (this.fetchingGamingStoriesAPIRes?.response !== undefined && loginStatus === 'loginEvent') {\n this.loadFeatures = true;\n }\n }\n }\n });\n }\n\n private subscribeFetchUserResponse() {\n this.fetchAPIObservable = this.gamingStoriesService.fetchAPIObservable.pipe(takeUntil(this.destroy$)).subscribe((message: Message) => {\n if (message?.type === 'Error') {\n this.loadFeatures = true;\n }\n });\n }\n\n private setStoryAndStoryItemForLeftTap() {\n if (this.activeStoriesIndex == 0 && this.activeStoryItemIndex == 0) {\n this.gamingStoriesService.playVideo();\n this.closeModal(null);\n } else if (this.activeStoryItemIndex > 0) {\n this.goToPreviousStory(this.activeStoriesIndex, this.activeStoryItemIndex);\n } else if (this.activeStoryItemIndex == 0) {\n this.goToPreviousPromo(this.activeStoriesIndex);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'LeftTap',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n private setStoryAndStoryItemForRightTap() {\n if (\n this.activeStoriesIndex + 1 == this.data.storyContainerData.storyList.length &&\n this.activeStoryItemIndex + 1 == this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems.length\n ) {\n this.gamingStoriesService.playVideo();\n this.closeModal(null);\n } else if (this.activeStoryItemIndex + 1 < this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems.length) {\n this.goToNextStory(this.activeStoriesIndex, this.activeStoryItemIndex);\n } else if (this.activeStoryItemIndex + 1 == this.data.storyContainerData.storyList[this.activeStoriesIndex].storyItems.length) {\n this.goToNextPromo(this.activeStoriesIndex, this.activeStoryItemIndex);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'RightTap',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n private processOnTap(evt: any) {\n let gamingstoriesItemsContainer = document.getElementById('gamingstoriesItemsContainer')!;\n let clickXPosition = evt.changedPointers[0].clientX - (window.innerWidth - gamingstoriesItemsContainer.offsetWidth) / 2;\n if (clickXPosition < gamingstoriesItemsContainer.offsetWidth / 5) {\n this.setStoryAndStoryItemForLeftTap();\n } else if (clickXPosition > 4 * (gamingstoriesItemsContainer.offsetWidth / 5)) {\n this.setStoryAndStoryItemForRightTap();\n } else {\n this.gamingStoriesService.playVideo();\n }\n this.disableTap = false;\n }\n\n private setStoryForRightSwipe() {\n if (this.activeStoriesIndex > 0) {\n this.goToPreviousPromo(this.activeStoriesIndex);\n } else {\n this.closeModal(null);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'RightSwipe',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n private setStoryForLeftSwipe() {\n if (this.activeStoriesIndex + 1 < this.data.storyContainerData.storyList.length) {\n this.goToNextPromo(this.activeStoriesIndex, this.activeStoryItemIndex);\n } else {\n this.closeModal(null);\n }\n this.gamingStoriesService.trackingGamingStoriesPhase2Event(\n 'teaser - embedded video',\n 'stories',\n 'click',\n 'not applicable',\n this.storyItem.title,\n 'LeftSwipe',\n this.storyItem.actionTypePosition,\n 'not applicable',\n );\n }\n\n private goToNextPromo(currentStoriesIndex: number, currentStoryItemIndex: number) {\n this.setActivePromoAndStory(currentStoriesIndex + 1, 0, currentStoriesIndex, currentStoryItemIndex);\n }\n\n private goToPreviousPromo(currentStoryItemIndex: number) {\n this.setActivePromoAndStory(currentStoryItemIndex - 1, 0, currentStoryItemIndex, 0);\n }\n\n private goToNextStory(currentStoriesIndex: number, currentStoryItemIndex: number) {\n this.setActivePromoAndStory(currentStoriesIndex, currentStoryItemIndex + 1, currentStoriesIndex, currentStoryItemIndex);\n }\n\n private goToPreviousStory(currentStoriesIndex: number, currentStoryItemIndex: number) {\n this.setActivePromoAndStory(currentStoriesIndex, currentStoryItemIndex - 1, currentStoriesIndex, currentStoryItemIndex);\n }\n\n private setupSwipeAndTapEvents(): void {\n const manager = new Hammer.Manager(this.gamingStoriesItemsdraggable?.nativeElement);\n\n const swipe = new Hammer.Swipe();\n const tap = new Hammer.Tap();\n\n manager.add(swipe);\n manager.add(tap);\n\n manager.on(this.SWIPE_ACTION.LEFT, () => {\n this.onLeftSwipe();\n });\n manager.on(this.SWIPE_ACTION.RIGHT, () => {\n this.onRightSwipe();\n });\n manager.on(this.SWIPE_ACTION.UP, () => {\n this.swipeToBottom();\n });\n manager.on(this.SWIPE_ACTION.TAP, (event) => {\n this.onTap(event);\n });\n }\n}\n","<!-- It containes story containers and stories list-->\n<div class=\"casino-mobilestories-main\" *ngIf=\"storyContainerLoad\" [ngStyle]=\"{ 'background-color': promotionsBgClr }\">\n <div\n class=\"mobilestories-carousel\"\n [ngClass]=\"{\n 'storycarousal': !isTouch && storyContainerData?.storyList?.length <= 13 && storyTitlePosition === 'Bottom',\n 'touch-mobilestories-carousel': isTouch,\n 'touch-mobilestories-ipad': isTouch && storyContainerData?.storyList?.length > 1 && storyContainerData?.storyList?.length <= 8,\n 'storycarousalmobile': isTouch && storyContainerData?.storyList?.length <= 4,\n 'storycarousalmobileright': storyTitlePosition === 'Right' && storyContainerData?.storyList?.length <= 6,\n }\">\n <vn-swiper [swiperOptions]=\"swiperOptions\">\n <div class=\"swiper-slide\" *ngFor=\"let storiesData of storyContainerData.storyList; let i = index\">\n <div class=\"mobilestories-list\" [ngClass]=\"'storytitleposition-' + (storyTitlePosition | lowercase)\">\n <div\n class=\"mobilestories-story\"\n *ngIf=\"storiesData\"\n class=\"{{ storyIconShape }}\"\n [ngClass]=\"{ viewed: storiesData.storyViewed }\"\n [ngStyle]=\"{ 'border-color': storiesData.storyViewed ? viewedPromotionBrClr : notviewedPromotionBrClr }\"\n (click)=\"storyClick(i)\">\n <img [src]=\"storiesData?.storyImage?.src\" />\n </div>\n <span class=\"mobilestories-story-name\" [ngStyle]=\"{ color: storiesData.storyViewed ? viewedpromotionTxtClr : promotionTxtClr }\">{{\n storiesData.title\n }}</span>\n </div>\n </div>\n </vn-swiper>\n </div>\n</div>\n","import { LowerCasePipe, NgClass, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport {\n ConfigProviderService,\n FetchUserRequestAPIModel,\n FetchUserResponseAPIModel,\n GamingStoriesPhase2Configuration,\n GamingStoriesService,\n GamingStoriesStorageCloseModel,\n IGamingStory,\n IGamingStoryContainer,\n IGamingStoryItem,\n OptInStoriesTrack,\n PostUserRequestAPIModel,\n ReqStoryIdsModel,\n StoriesLocalStorageModel,\n StoryInfoModel,\n} from '@casinocore/platform/core';\nimport { DeviceService, Message, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { FreeMode, Mousewheel } from 'swiper/modules';\nimport { SwiperOptions } from 'swiper/types/swiper-options';\n\nimport { GamingStoryItemsComponent } from '../gaming-story-items/gaming-story-items.component';\n\n@Component({\n selector: 'cc-gaming-stories-container',\n templateUrl: 'gaming-stories-container.component.html',\n standalone: true,\n imports: [NgIf, NgStyle, NgClass, SwiperComponent, NgFor, LowerCasePipe],\n})\nexport class GamingStoriesContainerComponent implements OnChanges, OnInit, OnDestroy {\n storyContainerData: IGamingStoryContainer;\n isTouch: boolean;\n storyIconShape: string;\n viewedPromotionBrClr: string;\n notviewedPromotionBrClr: string;\n promotionTxtClr: string;\n promotionsBgClr: string;\n viewedpromotionTxtClr: string;\n storyTitlePosition: string;\n storyContainerLoad: boolean = false;\n tiltingMessage: string;\n tiltingImageUrl: string;\n\n private destroy$ = new Subject<void>();\n private gamingStoriesconfig: GamingStoriesPhase2Configuration;\n private expirationTime: number;\n themeCheckClr: string;\n themeCheckBgClr: string;\n private storyContainerCloseData: GamingStoriesStorageCloseModel;\n private casinoConfig: any;\n private fetchUserPreparedRequest: FetchUserRequestAPIModel;\n private skipFilterViewedAndUnviewed: boolean = false;\n private fetchFirstTime: boolean = false;\n private isStoryContainerAssigned: boolean;\n private fetchingGamingStoriesAPIRes: FetchUserResponseAPIModel;\n fetchAPIObservable: Subscription;\n private expiryTimeReached: boolean = false;\n private sessionStorageServiceStoryData: any;\n private currentEpocTime: number = 0;\n private gamingstoriesExpirationTimeInterval: number = 10;\n private isAlreadyResponseFired: boolean = false;\n private isAlreadyFailedResponseFired: boolean = false;\n\n swiperOptions: SwiperOptions = {\n modules: [FreeMode, Mousewheel],\n speed: 500,\n autoHeight: true,\n allowTouchMove: false,\n spaceBetween: 5,\n slidesPerView: 13,\n slidesPerGroup: 3,\n preventClicks: false,\n preventClicksPropagation: false,\n };\n\n constructor(\n private matDialog: MatDialog,\n private gamingStoriesService: GamingStoriesService,\n private deviceService: DeviceService,\n private user: UserService,\n private configProviderService: ConfigProviderService,\n ) {}\n\n ngOnChanges() {\n this.renderstoryContainerData();\n }\n\n ngOnInit(): void {\n this.isTouch = this.deviceService.isTouch;\n this.casinoConfig = this.configProviderService.provideCasinoConfig();\n this.getGamingStoriesData();\n if (this.isTouch) {\n this.swiperOptions.navigation = false;\n this.swiperOptions.allowTouchMove = true;\n this.swiperOptions.speed = 100;\n this.swiperOptions.navigation = false;\n this.swiperOptions.touchReleaseOnEdges = true;\n this.swiperOptions.freeMode = {\n enabled: true,\n minimumVelocity: 0.1,\n };\n this.swiperOptions.mousewheel = {\n forceToAxis: true,\n };\n this.swiperOptions.slidesPerView = 5;\n //for ipad/tab in portrait\n if (document.body.offsetWidth >= 768 && document.body.offsetWidth < 1024) {\n this.swiperOptions.slidesPerView = 10;\n }\n //for ipad/tab in landscape\n else if (document.body.offsetWidth >= 1024 && document.body.offsetWidth < 1200) {\n this.swiperOptions.slidesPerView = 13;\n }\n } else {\n this.swiperOptions.allowTouchMove = false;\n this.swiperOptions.navigation = true;\n this.swiperOptions.touchReleaseOnEdges = false;\n this.swiperOptions.freeMode = false;\n this.swiperOptions.mousewheel = false;\n this.swiperOptions.speed = 500;\n if (this.swiperOptions.slidesPerView === 13) {\n this.swiperOptions.slidesPerGroup = 13;\n }\n }\n }\n\n storyClick(index: number) {\n if (this.storyContainerData) {\n if (this.storyContainerData.storyList[index].storyViewed) this.skipFilterViewedAndUnviewed = true;\n else this.skipFilterViewedAndUnviewed = false;\n }\n if (this.user.isAuthenticated) {\n this.fetchAPIAfterExpiry(index);\n } else {\n this.prepareDialogRef(index);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private prepareDialogRef(index: any) {\n const dialogData = {\n storyContainerData: this.storyContainerData,\n storyItem: this.storyContainerData.storyList[index].storyItems,\n activeStoriesIndex: index,\n fetchUserPreparedRequest: this.fetchUserPreparedRequest,\n fetchingGamingStoriesAPIRes: this.fetchingGamingStoriesAPIRes,\n };\n this.gamingStoriesService.pauseStoryBehaviourSubject.next(false);\n const dialogRef = this.matDialog.open(GamingStoryItemsComponent, {\n width: '375px',\n height: '667px',\n data: dialogData,\n panelClass: 'mobile-stories-overlay',\n });\n dialogRef.afterClosed().subscribe((storyContainerData: IGamingStoryContainer) => {\n if (this.gamingStoriesService.postStoryInfoRequestItemsList.length > 0 && this.user.isAuthenticated) {\n let postUserRequestAPIModel: PostUserRequestAPIModel = new PostUserRequestAPIModel();\n postUserRequestAPIModel.userId = this.user.id ? this.user.id : '';\n postUserRequestAPIModel.brandId = this.casinoConfig.brandId;\n postUserRequestAPIModel.storyInfo = new Array<StoryInfoModel>();\n for (let storyInfoData of this.gamingStoriesService.postStoryInfoRequestItemsList) {\n const storyInfoObj = new StoryInfoModel();\n storyInfoObj.storyId = storyInfoData.storyId;\n storyInfoObj.subStoryId = storyInfoData.subStoryId;\n storyInfoObj.storyType = storyInfoData.storyType;\n storyInfoObj.templateType = storyInfoData.templateType;\n storyInfoObj.userInput = storyInfoData.userInput;\n storyInfoObj.expTime = this.utcConverter(storyInfoData.expTime);\n postUserRequestAPIModel.storyInfo.push(storyInfoObj);\n }\n this.gamingStoriesService.postGamingStoriesAPI(postUserRequestAPIModel);\n this.gamingStoriesService.storyInfoPostRequestList = [];\n }\n this.updateStoryFilterData(storyContainerData);\n });\n }\n\n private utcConverter(dateToday: any) {\n return this.epoch(dateToday);\n }\n\n private epoch(date: any) {\n return Date.parse(date);\n }\n\n private prepareSwipeUpData() {\n const swipeUpStoryListArray: Array<IGamingStoryItem> = new Array<IGamingStoryItem>();\n this.storyContainerData.storyList.forEach((stories) => {\n stories.storyItems.forEach((storyItem) => {\n if (\n storyItem.enableSwipeup &&\n storyItem.storyItemActionType !== 'EmojiSlider' &&\n storyItem.storyItemActionType !== 'EmojiSelector' &&\n storyItem.storyItemActionType !== 'SelectList' &&\n storyItem.storyItemActionType !== 'YesNo' &&\n storyItem.swipeupStoryItemContent.length !== 0\n ) {\n swipeUpStoryListArray.push(storyItem.swipeupStoryItemContent[0].path);\n }\n storyItem.storyId = stories.storyId;\n });\n });\n const swipeUpStoryListInString = swipeUpStoryListArray.join(',');\n this.gamingStoriesService.getSwipeUpContent(swipeUpStoryListInString);\n }\n\n private fetchAPIAfterExpiry(index: any) {\n // fetch session storage for Exipry time\n if (sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n this.currentEpocTime = Math.round(new Date().getTime() / 1000);\n this.sessionStorageServiceStoryData = JSON.parse(sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') as string);\n }\n if (\n sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage') &&\n this.currentEpocTime > this.sessionStorageServiceStoryData[this.sessionStorageServiceStoryData.length - 1].expiryTime\n ) {\n this.expiryTimeReached = true;\n this.getFetchingUserResponseAPIData(index);\n this.gamingStoriesService.fetchGamingStoriesAPI(this.fetchUserPreparedRequest, this.expirationTime);\n } else if ((!this.fetchFirstTime && !this.expiryTimeReached) || !sessionStorage.getItem('GS:StoryItemsInPostLoginSessionStorage')) {\n this.getFetchingUserResponseAPIData(index);\n this.gamingStoriesService.fetchGamingStoriesAPI(this.fetchUserPreparedRequest, this.expirationTime);\n this.fetchFirstTime = true;\n } else {\n this.prepareDialogRef(index);\n }\n }\n\n private getFetchingUserResponseAPIData(index?: any): void {\n this.subscribeFetchUserResponse(index);\n this.isAlreadyResponseFired = false;\n this.gamingStoriesService.fetchGamingStoriesAPIObservable.pipe(takeUntil(this.destroy$)).subscribe((isReady: boolean) => {\n if (isReady) {\n const fetchGamingStoriesAPIResData: FetchUserResponseAPIModel = this.gamingStoriesService.fetchGamingStoriesAPIRes;\n if (fetchGamingStoriesAPIResData) {\n this.fetchingGamingStoriesAPIRes = fetchGamingStoriesAPIResData;\n if (this.fetchingGamingStoriesAPIRes?.response && !this.isAlreadyResponseFired) {\n this.prepareDialogRef(index);\n this.isAlreadyResponseFired = true;\n }\n }\n }\n });\n }\n\n private subscribeFetchUserResponse(index?: any) {\n this.isAlreadyFailedResponseFired = false;\n this.fetchAPIObservable = this.gamingStoriesService.fetchAPIObservable.pipe(takeUntil(this.destroy$)).subscribe((message: Message) => {\n if (message?.type === 'Error' && !this.isAlreadyFailedResponseFired) {\n this.prepareDialogRef(index);\n this.isAlreadyFailedResponseFired = true;\n }\n });\n }\n\n private setViewedPromo(activeStoriesIndex: number) {\n const activeStoryData = this.storyContainerCloseData.storyList[activeStoriesIndex];\n let storiesHasNotViewedStory: boolean = false;\n activeStoryData.storyItems.forEach((story: IGamingStoryItem) => {\n if (!story.storyItemViewed) {\n storiesHasNotViewedStory = true;\n }\n });\n if (!storiesHasNotViewedStory) {\n this.storyContainerData.storyList[activeStoriesIndex].storyViewed = true;\n }\n }\n\n private setViewedStory(activeStoriesIndex: number, activeStoryItemIndex: number) {\n this.storyContainerCloseData.storyList[activeStoriesIndex].storyItems[activeStoryItemIndex].storyItemViewed = true;\n }\n\n private filterViewedAndUnviewed(storyList: Array<IGamingStory>) {\n const viewedGamingStoriesList: Array<IGamingStory> = new Array<IGamingStory>();\n const notViewedGamingStoriesList: Array<IGamingStory> = new Array<IGamingStory>();\n storyList.forEach((stories: IGamingStory) => {\n if (stories.storyViewed) {\n viewedGamingStoriesList.push(stories);\n } else {\n notViewedGamingStoriesList.push(stories);\n }\n });\n if (this.user.isAuthenticated) {\n this.storeStoriesViewedStateInLocalStorage(viewedGamingStoriesList);\n this.filterStories();\n } else {\n let reversedViewedStories = [...viewedGamingStoriesList].reverse();\n this.storyContainerData.storyList = notViewedGamingStoriesList.concat(reversedViewedStories);\n }\n }\n\n private renderstoryContainerData() {\n if (this.storyContainerData) {\n this.storyIconShape = this.storyContainerData.storyIconType ? this.storyContainerData.storyIconType : 'Square';\n this.viewedPromotionBrClr = this.storyContainerData.sharedList.viewedPromotionBrClr;\n this.notviewedPromotionBrClr = this.storyContainerData.sharedList.notviewedPromotionBrClr;\n this.themeCheckClr = this.storyContainerData.sharedList.themeCheckClr;\n this.themeCheckBgClr = this.storyContainerData.sharedList.themeCheckBgClr;\n this.viewedpromotionTxtClr = this.storyContainerData.sharedList.viewedpromotionTxtClr;\n this.promotionTxtClr = this.storyContainerData.sharedList.promotionTxtClr;\n this.promotionsBgClr = this.storyContainerData.sharedList.promotionsBgClr;\n this.storyTitlePosition = this.storyContainerData.titlePosition;\n this.filterStories();\n }\n }\n\n private filterStories() {\n const gamingStoriesArrayFromLocalStorage = this.gamingStoriesService.readGamingStoriesPhase2Array();\n if (gamingStoriesArrayFromLocalStorage) {\n let viewedGamingStoriesList: Array<IGamingStory> = new Array<IGamingStory>();\n const unViewedGamingStoriesList: Array<IGamingStory> = new Array<IGamingStory>();\n let gamingStoriesLocalStorageArray: Array<StoriesLocalStorageModel> = new Array<StoriesLocalStorageModel>();\n this.storyContainerData.storyList.forEach((storyListData: IGamingStory) => {\n let isViewedStory: boolean = false;\n let localstorageStory: StoriesLocalStorageModel;\n for (let i = 0; i < gamingStoriesArrayFromLocalStorage.length; i++) {\n localstorageStory = gamingStoriesArrayFromLocalStorage[i];\n if (storyListData.storyId === localstorageStory.storyId && this.user.id === localstorageStory.userId) {\n if (this.checkViewedStoryExpiration(localstorageStory.viewedTimeStamp)) {\n isViewedStory = true;\n storyListData.storyViewed = true;\n viewedGamingStoriesList[i] = storyListData;\n gamingStoriesLocalStorageArray[i] = localstorageStory;\n break;\n }\n }\n }\n if (!isViewedStory) {\n unViewedGamingStoriesList.push(storyListData);\n }\n });\n viewedGamingStoriesList = viewedGamingStoriesList.filter((story) => story !== undefined);\n gamingStoriesLocalStorageArray = gamingStoriesLocalStorageArray.filter((storyId) => storyId !== undefined);\n this.storyContainerData.storyList = unViewedGamingStoriesList.concat(viewedGamingStoriesList);\n this.gamingStoriesService.writeGamingStoriesPhase2Array(gamingStoriesLocalStorageArray); //Updating local storage array\n }\n }\n\n private checkViewedStoryExpiration(storyTimeStamp: number) {\n //Function to check if local storage has expired for a particular promo\n const expirationTimeStamp = this.gamingstoriesExpirationTimeInterval * 24 * 60 * 60 * 1000; //Converting days to milliseconds\n return new Date().getTime() - storyTimeStamp < expirationTimeStamp;\n }\n\n private storeStoriesViewedStateInLocalStorage(viewedGamingStoriesList: Array<IGamingStory>) {\n const gamingStoriesArrayFromLocalStorage = this.gamingStoriesService.readGamingStoriesPhase2Array();\n let gamingStoriesLocalStorageArray: Array<StoriesLocalStorageModel> = gamingStoriesArrayFromLocalStorage\n ? gamingStoriesArrayFromLocalStorage\n : new Array<StoriesLocalStorageModel>();\n viewedGamingStoriesList.forEach((stories: IGamingStory) => {\n if (gamingStoriesArrayFromLocalStorage) {\n let storiesAlreadyInLocalStorageArray: boolean = false;\n for (let gamingStoriesArrayFromLocalStorageItem of gamingStoriesArrayFromLocalStorage) {\n if (stories.storyId === gamingStoriesArrayFromLocalStorageItem.storyId) {\n storiesAlreadyInLocalStorageArray = true;\n break;\n }\n }\n if (!storiesAlreadyInLocalStorageArray) {\n gamingStoriesLocalStorageArray = this.pushViewedStoryItemToArray(gamingStoriesLocalStorageArray, stories.storyId);\n }\n } else {\n gamingStoriesLocalStorageArray = this.pushViewedStoryItemToArray(gamingStoriesLocalStorageArray, stories.storyId);\n }\n });\n if (gamingStoriesLocalStorageArray.length > 0) {\n this.gamingStoriesService.writeGamingStoriesPhase2Array(gamingStoriesLocalStorageArray);\n }\n }\n private pushViewedStoryItemToArray(gamingStoriesLocalStorageArray: Array<StoriesLocalStorageModel>, storyId: string) {\n const localStorageStories: StoriesLocalStorageModel = new StoriesLocalStorageModel();\n localStorageStories.userId = this.user.id ? this.user.id : '';\n localStorageStories.storyId = storyId;\n localStorageStories.viewedTimeStamp = new Date().getTime();\n gamingStoriesLocalStorageArray.push(localStorageStories);\n return gamingStoriesLocalStorageArray;\n }\n\n //private setCaourselOptions(storyTitlePosition: string) {\n // if (storyTitlePosition.toLowerCase() === 'bottom') {\n // this.swiperOptionsGamingStories = {\n // // grid: { sm: 14, md: 14, lg: 14, all: 0 },\n // slidesPerView: 14,\n // loop: false,\n // allowTouchMove: false,\n // };\n // } else {\n // this.swiperOptionsGamingStories = {\n // // grid: { xs: 7, sm: 7, md: 7, lg: 7, all: 0 },\n // slidesPerView: 7,\n // loop: false,\n // allowTouchMove: false,\n // };\n // }\n //}\n\n private getGamingStoriesData(): void {\n this.gamingStoriesService.observable.pipe(takeUntil(this.destroy$)).subscribe((isReady: any) => {\n if ((isReady && !this.user.isAuthenticated) || (this.user.isAuthenticated && isReady.AfterApiCall && !this.isStoryContainerAssigned)) {\n this.isStoryContainerAssigned = true;\n const storyContainer: IGamingStoryContainer = this.gamingStoriesService.getStoryContainerData;\n if (storyContainer) {\n const fetchUserRequestAPIModel: FetchUserRequestAPIModel = new FetchUserRequestAPIModel();\n fetchUserRequestAPIModel.userId = this.user.id ? this.user.id : '';\n fetchUserRequestAPIModel.brandId = this.casinoConfig.brandId;\n fetchUserRequestAPIModel.reqStoryIds = new Array<ReqStoryIdsModel>();\n this.storyContainerData = storyContainer;\n this.storyContainerLoad = true;\n const optInStoriesTrackList = new Array<OptInStoriesTrack>();\n this.storyContainerData.storyList.forEach((stories) => {\n stories.storyViewed = false;\n stories.storyItems.forEach((storyItem) => {\n storyItem.storyItemViewed = false;\n storyItem.storyImage = stories.storyImage;\n storyItem.title = stories.title;\n storyItem.storyId = stories.storyId;\n const optInStoriesTrack = new OptInStoriesTrack();\n // if (!this.user.isAuthenticated && storyItem.showOptIn && storyItem.targetPromoId != null && storyItem.storyItemActionType === 'Promos') {\n // optInStoriesTrack.activeStoriesIndex = storyItem.activeStoriesIndex;\n // optInStoriesTrack.activeStoryItemIndex = storyItem.activeStoryItemIndex;\n // optInStoriesTrackList.push(optInStoriesTrack);\n // }\n // else\n if (\n this.user.isAuthenticated &&\n !storyItem.isValid &&\n storyItem.showOptIn &&\n storyItem.targetPromoId != null &&\n storyItem.storyItemActionType === 'Promos'\n ) {\n optInStoriesTrack.activeStoriesIndex = storyItem.activeStoriesIndex;\n optInStoriesTrack.activeStoryItemIndex = storyItem.activeStoryItemIndex;\n optInStoriesTrackList.push(optInStoriesTrack);\n }\n const reqStoryIdsModel = new ReqStoryIdsModel();\n if (\n storyItem.storyItemActionType === 'EmojiSelector' ||\n storyItem.storyItemActionType === 'YesNoPoll' ||\n storyItem.storyItemActionType === 'EmojiSlider' ||\n storyItem.storyItemActionType === 'QuestionAndAnswer'\n ) {\n reqStoryIdsModel.storyId = storyItem.storyId;\n reqStoryIdsModel.subStoryId = storyItem.storyItemId;\n fetchUserRequestAPIModel.reqStoryIds.push(reqStoryIdsModel);\n }\n if (storyItem.enableSwipeup) {\n this.prepareSwipeUpData();\n }\n });\n });\n this.fetchUserPreparedRequest = fetchUserRequestAPIModel;\n this.gamingStoriesconfig = this.gamingStoriesService.config;\n if (this.gamingStoriesconfig) {\n this.expirationTime = this.gamingStoriesconfig.expirationTime;\n this.gamingstoriesExpirationTimeInterval = this.gamingStoriesconfig.localStorageExpirationDuration;\n }\n this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n if (sessionStorage.getItem('GS:StoryItemsInPreLoginSessionStorage')) {\n this.fetchUserPreparedRequest.userId = this.user.id ? this.user.id : '';\n this.gamingStoriesService.fetchGamingStoriesAPI(this.fetchUserPreparedRequest, this.expirationTime);\n }\n });\n if (optInStoriesTrackList.length > 0) {\n optInStoriesTrackList.forEach((optinStories) => {\n const storyItemIndex = this.storyContainerData.storyList[optinStories.activeStoriesIndex].storyItems.findIndex(\n (x) => x.activeStoryItemIndex === optinStories.activeStoryItemIndex,\n );\n if (storyItemIndex !== optinStories.activeStoryItemIndex) {\n optinStories.activeStoryItemIndex = storyItemIndex;\n }\n this.storyContainerData.storyList[optinStories.activeStoriesIndex].storyItems.splice(\n optinStories.activeStoryItemIndex,\n 1,\n );\n });\n }\n this.renderstoryContainerData();\n }\n }\n });\n }\n private updateStoryFilterData(storyContainerData: IGamingStoryContainer): void {\n if (storyContainerData) {\n if (!this.skipFilterViewedAndUnviewed) {\n this.filterViewedAndUnviewed(storyContainerData.storyList);\n }\n } else {\n this.storyContainerCloseData = this.gamingStoriesService.getStoryContainerCloseList;\n if (this.storyContainerCloseData) {\n this.setViewedStory(this.storyContainerCloseData.activeStoriesIndex, this.storyContainerCloseData.activeStoryItemIndex);\n if (\n this.storyContainerCloseData.storyList[this.storyContainerCloseData.activeStoriesIndex].storyItems.length ==\n this.storyContainerCloseData.activeStoryItemIndex + 1\n ) {\n this.setViewedPromo(this.storyContainerCloseData.activeStoriesIndex);\n }\n if (!this.skipFilterViewedAndUnviewed) {\n this.filterViewedAndUnviewed(this.storyContainerCloseData.storyList);\n }\n }\n }\n }\n}\n","<cc-gaming-stories-container *ngIf=\"isLoadingGamingStories\"></cc-gaming-stories-container>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoLobbyService, ConfigProviderService, GamingStoriesService } from '@casinocore/platform/core';\nimport { Subscription } from 'rxjs';\n\nimport { GamingStoriesContainerComponent } from '../gaming-story-container/gaming-stories-container.component';\n\n@Component({\n selector: 'cc-gaming-stories-phase2-wrapper',\n templateUrl: 'gaming-stories-phase2-wrapper.component.html',\n standalone: true,\n imports: [NgIf, GamingStoriesContainerComponent],\n})\nexport class GamingStoriesPhase2WrapperComponent implements OnInit {\n @Input() lobbyType: string;\n @Input() data: any;\n @Input() product: string;\n @Input() productPath: string;\n\n isLoadingGamingStories: boolean = false;\n\n private lobbyLoadSubscription: Subscription;\n\n constructor(\n private gamingStoriesService: GamingStoriesService,\n private configProviderService: ConfigProviderService,\n private casinoLobbyService: CasinoLobbyService,\n ) {}\n\n ngOnInit(): void {\n this.initialize();\n }\n\n ngOnDestroy() {\n if (this.lobbyLoadSubscription) {\n this.lobbyLoadSubscription.unsubscribe();\n }\n }\n\n private initialize(): void {\n this.lobbyLoadSubscription = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.gamingStoriesService.getGamingStories('', this.product, this.productPath);\n this.getConfig();\n }\n });\n }\n\n private getConfig(): void {\n const casinoConfig = this.configProviderService.provideGamingStoriesPhase2Config();\n if (casinoConfig && casinoConfig.enabled) {\n this.isLoadingGamingStories = true;\n }\n }\n}\n","<div\n class=\"casino-news-feed-item-wrapper\"\n [ngStyle]=\"{ 'border-color': attributes.NewsFeedBoxOuterLineColor, 'background-color': attributes.NewsFeedItemBgcolor }\"\n (click)=\"itemCliked()\">\n <div class=\"casino-news-feed-icon-v2 casino-news-valign\" *ngIf=\"newsFeedItem.iconClass\">\n <i class=\"{{ newsFeedItem.iconClass }}\" [ngStyle]=\"{ color: attributes.IconColor }\"></i>\n </div>\n <div class=\"casino-news-feed-content-v2 casino-news-valign\">\n <div class=\"news-feed-title-v2\" [ngStyle]=\"{ color: attributes.HeaderTextColor }\">{{ jackpotHeader }}</div>\n <div class=\"news-feed-name-v2\" [ngStyle]=\"{ color: attributes.SubHeaderTextColor }\">{{ jackpotGameName }}</div>\n </div>\n <div class=\"news-feed-jackpot-v2 casino-news-valign\" [ngStyle]=\"{ color: attributes.JackpotValueColor }\">\n {{ jackpotValue }}\n </div>\n</div>\n","import { NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoCoreGamelaunchService, CasinoManager, GameLaunch } from '@casinocore/platform/core';\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-news-feed-v2-jackpot',\n templateUrl: 'news-feed-v2-jackpot.component.html',\n standalone: true,\n imports: [NgStyle, NgIf],\n})\nexport class NewsFeedV2JackpotComponent implements OnInit {\n @Input() newsFeedItem: any;\n @Input() jackpotObj: any;\n @Input() index: number;\n @Input() lobbyType: string;\n @Input() attributes: any;\n @Input() data: any;\n jackpotHeader: string;\n jackpotValue: string;\n jackpotGameName: string;\n isTouch: boolean;\n categoryType: string;\n constructor(\n private tracking: TrackingService,\n private casinoManager: CasinoManager,\n private gameLaunchService: CasinoCoreGamelaunchService,\n ) {}\n\n ngOnInit() {\n this.isTouch = this.casinoManager.isTouch();\n this.categoryType = 'NewsFeed';\n if (this.jackpotObj) {\n this.jackpotHeader = this.jackpotObj.jackpotHeader;\n this.jackpotValue = this.jackpotObj.jackpotValue;\n this.jackpotGameName = this.jackpotObj.jackpotGameName;\n }\n }\n\n itemCliked() {\n this.newsFeedItem.gameId = this.newsFeedItem.gameID;\n this.itemTrackingOnClick(this.index);\n const gameModel = new GameLaunch();\n gameModel.game = this.newsFeedItem;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.index;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.categoryType;\n gameModel.gridPosition = 1;\n gameModel.gameSection = this.categoryType;\n gameModel.gameContainer = '';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.returnUrl = window.location.href;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n itemTrackingOnClick(positionEvent: number) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': this.newsFeedItem.type,\n 'component.ActionEvent': 'Click',\n 'component.PositionEvent': ++positionEvent,\n 'component.LocationEvent': this.data ? this.data.trackPos : '',\n 'component.EventDetails': this.newsFeedItem.jackpotGroupName,\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n","<div\n class=\"casino-news-feed-item-wrapper\"\n *ngIf=\"isTableOnline\"\n [ngStyle]=\"{ 'border-color': attributes.NewsFeedBoxOuterLineColor, 'background-color': attributes.NewsFeedItemBgcolor }\"\n (click)=\"itemClicked()\">\n <div class=\"casino-news-feed-icon-v2 casino-news-valign\">\n <i *ngIf=\"!displayDealerImage\" class=\"{{ newsFeedItem.iconClass }}\" [ngStyle]=\"{ color: attributes.IconColor }\"></i>\n <img *ngIf=\"displayDealerImage\" [src]=\"dealerImage\" />\n </div>\n <div class=\"casino-news-feed-content-v2 casino-news-valign\">\n <div class=\"news-feed-title-v2\" [ngStyle]=\"{ color: attributes.HeaderTextColor }\">{{ gameName }}</div>\n <div class=\"news-feed-name-v2 livenowdot\" *ngIf=\"displayLiveStatus\" [ngStyle]=\"{ color: attributes.SubHeaderTextColor }\">\n <span class=\"dot\"></span>{{ attributes.LiveNowText }}\n </div>\n <div class=\"news-feed-name-v2\" *ngIf=\"!displayLiveStatus\" [ngStyle]=\"{ color: attributes.SubHeaderTextColor }\">\n {{ newsFeedItem.subTitle }}\n </div>\n </div>\n <div class=\"win-numbers\" *ngIf=\"liveGameInfo.results && liveGameInfo.results.length > 0\">\n <ul class=\"win-numbers-list\">\n <li *ngFor=\"let item of resultsDisplayed\" [ngStyle]=\"{ 'background-color': lastResultNumberColor(item) }\">\n {{ item }}\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"enablelctimer && !isTableOnline\">\n <cc-lc-timer [showTimer]=\"false\" [startTime]=\"offlineTableTime\" (onTimerEnd)=\"onTimerEnd($event)\"></cc-lc-timer>\n</div>\n","import { NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n CasinoCoreGamelaunchService,\n CasinoManager,\n GameLaunch,\n GameManagerService,\n LCTimerComponent,\n LiveCasinoService,\n TimeZoneService,\n} from '@casinocore/platform/core';\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-news-feed-v2-livecasino-api-item',\n templateUrl: 'news-feed-v2-livecasino-api-item.component.html',\n standalone: true,\n imports: [NgIf, NgStyle, NgFor, LCTimerComponent],\n})\nexport class NewsFeedV2LiveCasinoAPIItemComponent implements OnInit, OnDestroy, OnChanges {\n @Input() newsFeedItem: any;\n @Input() attributes: any;\n @Input() index: number;\n @Input() lobbyType: string;\n @Input() data: any;\n liveCasinoApiSubscriber: any;\n liveGameInfo: any;\n resultsDisplayed: any;\n displayLiveStatus: boolean;\n displayDealerImage: boolean;\n dealerImage: any;\n gameName: string;\n categoryType: string;\n isTouch: boolean;\n isTableOnline: boolean;\n offlineTableTime: string;\n enablelctimer: boolean;\n constructor(\n private liveCasinoService: LiveCasinoService,\n private tracking: TrackingService,\n private casinoManager: CasinoManager,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private timeZoneService: TimeZoneService,\n private gameManagerService: GameManagerService,\n ) {}\n\n ngOnInit() {\n this.isTouch = this.casinoManager.isTouch();\n this.categoryType = 'NewsFeed';\n const gameInfo: any = this.gameManagerService.getGameInfo(this.newsFeedItem.gameID);\n if (gameInfo) {\n this.gameName = gameInfo.name;\n }\n\n this.liveCasinoApiSubscriber = this.liveCasinoService.liveGamesFeedObservable.subscribe((response) => {\n if (response && response.size > 0) {\n this.setLiveCasinoItemInfo();\n }\n });\n }\n setLiveCasinoItemInfo() {\n if (this.newsFeedItem && this.newsFeedItem.gameID) {\n this.liveGameInfo = this.liveCasinoService.getLiveGameLookUpInfo(this.newsFeedItem?.gameID?.toLowerCase());\n\n this.resultsDisplayed = this.liveGameInfo.results.slice(0, 3);\n if (this.newsFeedItem.displayLiveStatus) {\n this.displayLiveStatus = true;\n } else {\n if (!this.newsFeedItem.subTitle) {\n this.displayLiveStatus = true;\n }\n }\n if (this.newsFeedItem.displayDealerImage) {\n this.displayDealerImage = true;\n } else {\n if (!this.newsFeedItem.iconClass) {\n this.displayLiveStatus = true;\n }\n }\n\n this.dealerImage = this.liveGameInfo?.dealerInfo?.dealerPictureUrl;\n this.setTableOnlineStatus();\n }\n }\n lastResultNumberColor(item: number) {\n if (item == 0) {\n // green;\n return this.attributes['LiveCasinoGreenColor'];\n }\n\n if ((item >= 1 && item <= 10) || (item >= 19 && item <= 28)) {\n if (item % 2 == 0)\n // black;\n return this.attributes['LiveCasinoBlackColor'];\n else {\n // red;\n return this.attributes['LiveCasinoRedColor'];\n }\n }\n\n if ((item >= 11 && item <= 18) || (item >= 29 && item <= 36)) {\n if (item % 2 == 0) {\n // red;\n return this.attributes['LiveCasinoRedColor'];\n }\n // black;\n else return this.attributes['LiveCasinoBlackColor'];\n }\n }\n itemClicked() {\n const gameInfo: any = this.gameManagerService.getGameInfo(this.newsFeedItem.gameID);\n this.newsFeedItem.gameId = this.newsFeedItem.gameID;\n if (gameInfo) {\n this.itemTrackingOnClick(gameInfo.game, this.index, gameInfo.name);\n }\n const gameModel = new GameLaunch();\n gameModel.game = this.newsFeedItem;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.index;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.categoryType;\n gameModel.gridPosition = 1;\n gameModel.gameSection = this.categoryType;\n gameModel.gameContainer = '';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.returnUrl = window.location.href;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n itemTrackingOnClick(gameId: string, positionEvent: number, gameName: string) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': 'LiveCasino',\n 'component.ActionEvent': 'Click',\n 'component.PositionEvent': ++positionEvent,\n 'component.LocationEvent': this.data ? this.data.trackPos : '',\n 'component.EventDetails': gameId,\n 'component.URLClicked': 'not applicable',\n 'component.DisplayGameName': gameName,\n });\n }\n ngOnChanges() {\n this.setTableOnlineStatus();\n }\n setTableOnlineStatus() {\n this.liveGameInfo = this.liveCasinoService.getLiveGameLookUpInfo(this.newsFeedItem?.gameID?.toLowerCase());\n if (this.liveGameInfo && this.liveGameInfo.tableStatus) {\n if (this.liveGameInfo.countdown && this.liveGameInfo.countdown.type) {\n if (this.liveGameInfo?.countdown?.type?.toLowerCase() === 'full time') {\n this.isTableOnline = true;\n } else if (this.liveGameInfo?.countdown?.type?.toLowerCase() === 'bounded') {\n this.startTimer();\n }\n }\n }\n }\n startTimer() {\n if (this.liveGameInfo.countdown.time) {\n this.offlineTableTime = this.timeZoneService.getTimerStartInstance(this.liveGameInfo.countdown.time + ':00', 'UTC') || '';\n if (!this.offlineTableTime) {\n this.isTableOnline = true;\n } else {\n this.enablelctimer = true;\n }\n }\n }\n onTimerEnd(value: any) {\n if (value) {\n this.isTableOnline = true;\n }\n }\n ngOnDestroy() {\n if (this.liveCasinoApiSubscriber) {\n this.liveCasinoApiSubscriber.unsubscribe();\n }\n }\n}\n","import { NgStyle } from '@angular/common';\nimport { Component, Input, OnInit, inject } from '@angular/core';\n\nimport {\n CasinoCoreGamelaunchService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n GameLaunch,\n GameManagerService,\n} from '@casinocore/platform/core';\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-news-feed-v2-newgames',\n templateUrl: 'news-feed-v2-newgames.component.html',\n standalone: true,\n imports: [NgStyle],\n})\nexport class NewsFeedV2NewgamesComponent implements OnInit {\n @Input() gameData: any;\n @Input() newsFeedItem: any;\n @Input() index: number;\n @Input() lobbyType: string;\n @Input() attributes: any;\n @Input() data: any;\n gameName: string = '';\n gameIcon: any;\n isTouch: boolean;\n categoryType: string;\n\n private readonly tracking = inject(TrackingService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly gameLaunchService = inject(CasinoCoreGamelaunchService);\n private readonly casinoStyles = inject(CasinoStylesService);\n private readonly gameManagerService = inject(GameManagerService);\n\n ngOnInit() {\n this.isTouch = this.casinoManager.isTouch();\n this.categoryType = 'NewsFeed';\n this.gameName = this.gameData.name;\n this.gameIcon = this.gameData.icon.src;\n const feature: any = this.configProviderService.provideFeaturesConfig();\n if (feature.enableGameIconTheming) this.gameIcon = this.casinoStyles.appendTheme(this.gameIcon, this.gameData.name);\n }\n\n itemCliked() {\n const gameInfo: any = this.gameManagerService.getGameInfo(this.newsFeedItem.gameID);\n this.newsFeedItem.gameId = this.newsFeedItem.gameID;\n if (gameInfo) {\n this.itemTrackingOnClick(gameInfo.game, this.index, gameInfo.name);\n }\n const gameModel = new GameLaunch();\n gameModel.game = this.newsFeedItem;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.index;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.categoryType;\n gameModel.gridPosition = 1;\n gameModel.gameSection = this.categoryType;\n gameModel.gameContainer = '';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.returnUrl = window.location.href;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n }\n itemTrackingOnClick(gameId: string, positionEvent: number, gameName: string) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': 'Game_Launch',\n 'component.ActionEvent': 'Click',\n 'component.PositionEvent': ++positionEvent,\n 'component.LocationEvent': this.data ? this.data.trackPos : '',\n 'component.EventDetails': gameId,\n 'component.URLClicked': 'not applicable',\n 'component.DisplayGameName': gameName,\n });\n }\n}\n","<div\n class=\"casino-news-feed-item-wrapper\"\n [ngStyle]=\"{ 'border-color': attributes.NewsFeedBoxOuterLineColor, 'background-color': attributes.NewsFeedItemBgcolor }\"\n (click)=\"itemCliked()\">\n <div class=\"casino-news-feed-icon-v2 casino-news-valign\">\n <img [src]=\"gameIcon\" />\n </div>\n <div class=\"casino-news-feed-content-v2 casino-news-valign\">\n <div class=\"news-feed-title-v2\" [ngStyle]=\"{ color: attributes.HeaderTextColor }\">{{ newsFeedItem.header }}</div>\n <div class=\"news-feed-name-v2\" [ngStyle]=\"{ color: attributes.SubHeaderTextColor }\">{{ gameName }}</div>\n </div>\n</div>\n","<div\n class=\"casino-news-feed-item-wrapper\"\n [ngStyle]=\"{ 'border-color': attributes.NewsFeedBoxOuterLineColor, 'background-color': attributes.NewsFeedItemBgcolor }\"\n (click)=\"itemCliked()\">\n <div class=\"casino-news-feed-icon-v2 casino-news-valign\" *ngIf=\"newsFeedItem.iconClass\">\n <i class=\"{{ newsFeedItem.iconClass }}\" [ngStyle]=\"{ color: attributes.IconColor }\"></i>\n </div>\n <div class=\"casino-news-feed-content-v2 casino-news-valign\">\n <div class=\"news-feed-title-v2\" [ngStyle]=\"{ color: attributes.HeaderTextColor }\">{{ newsFeedItem.header }}</div>\n <div class=\"news-feed-name-v2\" [ngStyle]=\"{ color: attributes.SubHeaderTextColor }\">{{ newsFeedItem.subHeader }}</div>\n </div>\n <div class=\"news-feed-jackpot-v2 casino-news-valign\" [ngStyle]=\"{ color: attributes.JackpotValueColor }\">\n {{ newsFeedItem.value }}\n </div>\n</div>\n","import { NgIf, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoCoreGamelaunchService, CasinoManager, ConfigProviderService, GameLaunch } from '@casinocore/platform/core';\nimport { NavigationService, TrackingService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cc-news-feed-v2-promo-marketing',\n templateUrl: 'news-feed-v2-promo-marketing.component.html',\n standalone: true,\n imports: [NgStyle, NgIf],\n})\nexport class NewsFeedV2PromoMarketingComponent implements OnInit {\n @Input() newsFeedItem: any;\n @Input() index: number;\n @Input() lobbyType: string;\n @Input() attributes: any;\n @Input() data: any;\n isTouch: boolean;\n categoryType: string;\n videoLaunchRealtiveUri: string;\n constructor(\n private tracking: TrackingService,\n private casinoManager: CasinoManager,\n private configProviderService: ConfigProviderService,\n private gameLaunchService: CasinoCoreGamelaunchService,\n private navigation: NavigationService,\n ) {}\n\n ngOnInit() {\n this.isTouch = this.casinoManager.isTouch();\n this.categoryType = 'NewsFeed';\n const mcPageConfig = this.configProviderService.provideMcPageConfig();\n this.videoLaunchRealtiveUri = '/' + mcPageConfig.labelPrefix + '/launchng/';\n }\n\n itemCliked() {\n this.itemTrackingOnClick(this.index);\n this.newsFeedItem.gameId = this.getGameIdFromLaunchUrl(this.newsFeedItem.link);\n const gameModel = new GameLaunch();\n gameModel.game = this.newsFeedItem;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = this.index;\n gameModel.categoryType = this.categoryType;\n gameModel.from = 'q';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = this.categoryType;\n gameModel.gridPosition = 1;\n gameModel.gameSection = this.categoryType;\n gameModel.gameContainer = '';\n gameModel.game.lobbyType = this.lobbyType;\n gameModel.returnUrl = window.location.href;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n if (this.newsFeedItem.link) {\n if (this.isGameUrl(this.newsFeedItem.link)) {\n this.gameLaunchService.launchGame(gameModel);\n } else {\n this.navigation.goTo(this.newsFeedItem?.link);\n }\n }\n }\n itemTrackingOnClick(positionEvent: number) {\n this.tracking.triggerEvent('Event.Clicks', {\n 'component.CategoryEvent': 'NewsFeed',\n 'component.LabelEvent': 'Promotion',\n 'component.ActionEvent': 'Click',\n 'component.PositionEvent': ++positionEvent,\n 'component.LocationEvent': this.data ? this.data.trackPos : '',\n 'component.EventDetails': this.newsFeedItem.header,\n 'component.URLClicked': 'not applicable',\n });\n }\n getGameIdFromLaunchUrl(link: string) {\n return link.substr(link.indexOf(this.videoLaunchRealtiveUri) + this.videoLaunchRealtiveUri.length);\n }\n\n isGameUrl(link: string) {\n return link.indexOf(this.videoLaunchRealtiveUri) > 0;\n }\n}\n","<ng-container *ngIf=\"displayEnabled && !isDisabledGame\">\n <div class=\"news-feed-custom-item\" [ngSwitch]=\"item.type\">\n <cc-news-feed-v2-jackpot\n *ngSwitchCase=\"'jackpot'\"\n [newsFeedItem]=\"item\"\n [jackpotObj]=\"jackpotObj\"\n [index]=\"index\"\n [lobbyType]=\"lobbyType\"\n [attributes]=\"attributes\"\n [data]=\"data\"></cc-news-feed-v2-jackpot>\n <cc-news-feed-v2-newgames\n *ngSwitchCase=\"'newgame'\"\n [newsFeedItem]=\"item\"\n [gameData]=\"gameData\"\n [index]=\"index\"\n [lobbyType]=\"lobbyType\"\n [attributes]=\"attributes\"\n [data]=\"data\">\n </cc-news-feed-v2-newgames>\n <cc-news-feed-v2-promo-marketing\n *ngSwitchCase=\"'promo_marketing_bigwinner'\"\n [newsFeedItem]=\"item\"\n [index]=\"index\"\n [lobbyType]=\"lobbyType\"\n [attributes]=\"attributes\"\n [data]=\"data\">\n </cc-news-feed-v2-promo-marketing>\n <cc-news-feed-v2-livecasino-api-item\n *ngSwitchCase=\"'livecasinonewsfeeditem'\"\n [newsFeedItem]=\"item\"\n [attributes]=\"attributes\"\n [lobbyType]=\"lobbyType\"\n [index]=\"index\"\n [data]=\"data\">\n </cc-news-feed-v2-livecasino-api-item>\n </div>\n</ng-container>\n","import { NgIf, NgSwitch, NgSwitchCase } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport {\n CasinoLobbyService,\n CasinoManager,\n GameDataManager,\n GameManagerService,\n JackpotDataService,\n LiveCasinoService,\n} from '@casinocore/platform/core';\n\nimport { NewsFeedV2JackpotComponent } from '../news-feed-v2-jackpot/news-feed-v2-jackpot.component';\nimport { NewsFeedV2LiveCasinoAPIItemComponent } from '../news-feed-v2-livecasino-api-item/news-feed-v2-livecasino-api-item.component';\nimport { NewsFeedV2NewgamesComponent } from '../news-feed-v2-newgames/news-feed-v2-newgames.component';\nimport { NewsFeedV2PromoMarketingComponent } from '../news-feed-v2-promo-marketing/news-feed-v2-promo-marketing.component';\n\n@Component({\n selector: 'cc-news-feed-v2-custom-item',\n templateUrl: 'news-feed-v2-custom-item.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NewsFeedV2JackpotComponent,\n NewsFeedV2NewgamesComponent,\n NewsFeedV2PromoMarketingComponent,\n NewsFeedV2LiveCasinoAPIItemComponent,\n ],\n})\nexport class NewsFeedV2CustomItemComponent implements OnInit, OnDestroy, OnChanges {\n @Input() item: any;\n @Input() index: number;\n @Input() lobbyType: string;\n @Input() attributes: any;\n @Input() data: any;\n displayEnabled: boolean;\n isDisabledGame: boolean;\n showJackpotItem: boolean;\n gameData: any;\n isTouch: boolean;\n jackpotSubscriber: any;\n jackpotObj: any = {};\n liveCasinoApiSubscriber: any;\n liveGameInfo: any;\n isLiveCasinoDisplay: boolean;\n promoCaseText: string;\n constructor(\n private casinoLobbyService: CasinoLobbyService,\n private gameDataManager: GameDataManager,\n private casinoManager: CasinoManager,\n private jackpotDataService: JackpotDataService,\n private liveCasinoService: LiveCasinoService,\n private gameManagerService: GameManagerService,\n ) {}\n\n ngOnInit() {\n this.isTouch = this.casinoManager.isTouch();\n if (this.item.type == 'jackpot') {\n this.jackpotObj.jackpotHeader = this.item.header;\n this.jackpotSubscription();\n }\n }\n ngOnChanges() {\n this.setDisplayCriteria();\n }\n\n ngOnDestroy() {\n if (this.jackpotSubscriber) {\n this.jackpotSubscriber.unsubscribe();\n }\n if (this.liveCasinoApiSubscriber) {\n this.liveCasinoApiSubscriber.unsubscribe();\n }\n }\n\n setDisplayCriteria() {\n switch (this.item.type) {\n case 'jackpot':\n this.displayEnabled = this.isJackpotValid();\n break;\n case 'newgame':\n this.displayEnabled = this.isgameValid(this.item.gameID);\n break;\n case 'promo_marketing_bigwinner':\n this.displayEnabled = true;\n break;\n case 'livecasinonewsfeeditem':\n const isValidGame = this.isgameValid(this.item.gameID);\n this.liveCasinoApiSubscriber = this.liveCasinoService.liveGamesFeedObservable.subscribe((response) => {\n if (response && response.size >= 0) {\n this.liveGameInfo = this.liveCasinoService.getLiveGameLookUpInfo(this.item?.gameID?.toLowerCase());\n if (isValidGame && this.liveGameInfo && this.liveGameInfo.tableStatus) {\n this.displayEnabled = true;\n }\n }\n });\n break;\n }\n }\n\n isJackpotValid() {\n if (this.showJackpotItem) {\n this.findDisabledGame(this.item.gameID);\n return true;\n }\n return false;\n }\n\n isgameValid(gameID: any) {\n if (this.item) {\n this.findDisabledGame(gameID);\n const gameObj: any = this.gameManagerService.getGameInfo(gameID);\n if (gameObj) {\n const gameInfo: any = this.gameDataManager.setGameLobbyModel(gameObj, this.isTouch);\n this.gameData = gameInfo;\n return true;\n }\n }\n return false;\n }\n findDisabledGame(gameID: string) {\n const disabledGames = this.casinoLobbyService.getDisabledGames();\n disabledGames.forEach((game: string) => {\n if (game?.toLowerCase() == gameID?.toLowerCase()) {\n this.isDisabledGame = true;\n }\n });\n }\n jackpotSubscription() {\n if (this.item.type === 'jackpot') {\n if (this.item.header === '') {\n this.jackpotObj.jackpotHeader = this.item.jackpotGroupName;\n }\n if (!this.jackpotSubscriber) {\n this.jackpotSubscriber = this.jackpotDataService.jackpotFeedObservable.subscribe((jackpotResponse) => {\n if (jackpotResponse) {\n const jackpotData = this.jackpotDataService.getJackpotByGroupName(this.item?.jackpotGroupName?.toLowerCase());\n if (jackpotData) {\n this.jackpotObj.jackpotValue = jackpotData.amount;\n const gameList = jackpotData.gamesAvailable;\n gameList.forEach((gameItem: any) => {\n if (gameItem['game'] === this.item.gameID) {\n const gameInfo = this.gameManagerService.getGameInfo(this.item.gameID);\n if (gameInfo != null) {\n this.jackpotObj.jackpotGameName = gameItem['name'];\n this.showJackpotItem = true;\n this.setDisplayCriteria();\n }\n }\n });\n }\n }\n });\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'cc-news-feed-v2-item',\n templateUrl: 'news-feed-v2-item.component.html',\n standalone: true,\n})\nexport class NewsFeedV2ItemComponent {\n @Input() item: any;\n @Input() attributes: any;\n gameIcon: any;\n constructor() {}\n}\n","<div class=\"news-feed-v2-item\">\n <ng-content></ng-content>\n</div>\n","import { NgStyle } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'cc-news-feed-v2',\n templateUrl: 'news-feed-v2.component.html',\n standalone: true,\n imports: [NgStyle],\n})\nexport class NewsFeedV2Component {\n @Input() attributes: any;\n newsFeed: any;\n constructor() {}\n}\n","<div class=\"news-feed-v2\" [ngStyle]=\"{ 'background-color': attributes.NewsFeedBoxBgcolor }\">\n <ng-content></ng-content>\n</div>\n","<cc-news-feed-v2 [attributes]=\"newsFeedAttributes\">\n <ng-container *ngFor=\"let arr of fillingArray\">\n <div\n class=\"news-feed-v2-wrapper\"\n [ngClass]=\"{ 'touch-on-items': !triggerForMobileDevices }\"\n (touchcancel)=\"touchReleased()\"\n (touchstart)=\"touchStarted()\"\n (touchend)=\"touchReleased()\">\n <cc-news-feed-v2-item *ngFor=\"let item of newsFeeedItems | dsl | async; let i = index\">\n <cc-news-feed-v2-custom-item\n [item]=\"item\"\n [index]=\"i\"\n [lobbyType]=\"lobbyType\"\n [attributes]=\"newsFeedAttributes\"\n [data]=\"data\"></cc-news-feed-v2-custom-item>\n </cc-news-feed-v2-item>\n </div>\n </ng-container>\n</cc-news-feed-v2>\n","import { AsyncPipe, NgClass, NgFor } from '@angular/common';\nimport { AfterViewInit, Component, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { ConfigProviderService } from '@casinocore/platform/core';\nimport { DslPipe } from '@frontend/vanilla/shared/browser';\n\nimport { NewsFeedV2CustomItemComponent } from '../news-feed-v2-custom-item/news-feed-v2-custom-item.component';\nimport { NewsFeedV2ItemComponent } from '../news-feed-v2-item/news-feed-v2-item.component';\nimport { NewsFeedV2Component } from '../news-feed-v2/news-feed-v2.component';\n\n@Component({\n selector: 'cc-news-feed-v2-container',\n templateUrl: 'news-feed-v2-container.component.html',\n standalone: true,\n imports: [NewsFeedV2Component, NgFor, NgClass, NewsFeedV2ItemComponent, NewsFeedV2CustomItemComponent, DslPipe, AsyncPipe],\n})\nexport class NewsFeedV2ContainerComponent implements OnInit, AfterViewInit, OnChanges {\n @Input() newsFeeedItems: any;\n @Input() attributes: any;\n @Input() lobbyType: string;\n @Input() data: any;\n fillingArray: any;\n triggerForMobileDevices: boolean;\n newsFeedAttributes: any = {};\n\n constructor(private configProviderService: ConfigProviderService) {}\n\n ngOnInit() {\n this.fillingArray = new Array(5);\n this.triggerForMobileDevices = true;\n }\n ngAfterViewInit() {\n if (document.getElementsByClassName('news-feed-v2-wrapper')) {\n const newsfeedWrapperDoc = document.getElementsByClassName('news-feed-v2-wrapper');\n if (newsfeedWrapperDoc && newsfeedWrapperDoc.length > 0) {\n for (let i = 0; i < newsfeedWrapperDoc.length; i++) {\n const doc: any = document.getElementsByClassName('news-feed-v2-wrapper')[i];\n doc.style.animationPlayState = 'running';\n doc.style.webkitAnimationPlayState = 'running';\n doc.style.mozAnimationPlayState = 'running';\n doc.style.oAnimationPlayState = 'running';\n }\n }\n }\n }\n ngOnChanges() {\n this.assigningAttributes();\n }\n touchStarted() {\n this.triggerForMobileDevices = false;\n }\n touchReleased() {\n this.triggerForMobileDevices = true;\n }\n assigningAttributes() {\n this.newsFeedAttributes.NewsFeedBoxOuterLineColor = this.getAttribute('NewsFeedBoxOuterLineColor');\n this.newsFeedAttributes.NewsFeedBoxBgcolor = this.getAttribute('NewsFeedBoxBgcolor');\n this.newsFeedAttributes.NewsFeedAnimationTiming = this.getAttribute('NewsFeedAnimationTiming');\n this.newsFeedAttributes.NewsFeedItemBgcolor = this.getAttribute('NewsFeedItemBgcolor');\n this.newsFeedAttributes.IconColor = this.getAttribute('IconColor');\n this.newsFeedAttributes.HeaderTextColor = this.getAttribute('HeaderTextColor');\n this.newsFeedAttributes.SubHeaderTextColor = this.getAttribute('SubHeaderTextColor');\n this.newsFeedAttributes.JackpotValueColor = this.getAttribute('JackpotValueColor');\n this.newsFeedAttributes.LiveCasinoBlackColor = this.getAttribute('LiveCasinoBlackColor');\n this.newsFeedAttributes.LiveCasinoRedColor = this.getAttribute('LiveCasinoRedColor');\n this.newsFeedAttributes.LiveCasinoGreenColor = this.getAttribute('LiveCasinoGreenColor');\n this.newsFeedAttributes.LiveNowText = this.getAttribute('LiveNowText');\n const NewsFeedAnimationTiming = this.getAttribute('NewsFeedAnimationTiming');\n if (NewsFeedAnimationTiming) {\n document.documentElement.style.setProperty('--newsfeed-animation-timing', NewsFeedAnimationTiming);\n }\n }\n getAttribute(key: string): string {\n const newsFeedConfig = this.configProviderService.provideNewsFeedCasinoConfig();\n return this.attributes && this.attributes[key] ? this.attributes[key] : newsFeedConfig.newsFeedConfiguration[key];\n }\n}\n","<ng-container *ngIf=\"newsFeedResponse && newsFeedResponse.length > 0\">\n <cc-news-feed-v2-container [newsFeeedItems]=\"newsFeedResponse\" [attributes]=\"newsFeedAttributes\" [lobbyType]=\"null\"> </cc-news-feed-v2-container>\n</ng-container>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { NewsFeedV2Service } from '@casinocore/platform/core';\nimport { Subscription } from 'rxjs';\n\nimport { NewsFeedV2ContainerComponent } from '../news-feed-v2-container/news-feed-v2-container.component';\n\n@Component({\n selector: 'cc-news-feed-v2-wrapper',\n templateUrl: 'news-feed-v2-wrapper.component.html',\n standalone: true,\n imports: [NgIf, NewsFeedV2ContainerComponent],\n})\nexport class NewsFeedV2WrapperComponent implements OnInit, OnDestroy {\n @Input() containerPath: string;\n @Input() trackData: any;\n newsFeedResponse: any = [];\n newsFeedAttributes: any;\n newFeedWidgetData: Subscription;\n constructor(private newsFeedV2Service: NewsFeedV2Service) {}\n ngOnInit() {\n this.newsFeedV2Service.setNewsFeedContent(this.containerPath);\n this.newFeedWidgetData = this.newsFeedV2Service.newsFeedV2WidgetObservable.subscribe((response: any) => {\n if (response) {\n this.newsFeedResponse = response.newsFeedObjList;\n this.newsFeedAttributes = response.attributes;\n if (this.newsFeedResponse && this.newsFeedResponse.length > 0) {\n this.createNewsFeedResponseArray(this.newsFeedResponse);\n }\n }\n });\n }\n createNewsFeedResponseArray(newsFeedResponse: any) {\n this.newsFeedResponse = this.newsFeedV2Service.setNewsFeedResponseArray(newsFeedResponse);\n }\n ngOnDestroy() {\n if (this.newFeedWidgetData) {\n this.newFeedWidgetData.unsubscribe();\n }\n }\n}\n","<div *ngIf=\"isLobbyLoaded\">\n <cc-news-feed-v2-wrapper [containerPath]=\"containerPath\" [trackData]=\"trackData\"></cc-news-feed-v2-wrapper>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoLobbyService } from '@casinocore/platform/core';\nimport { Subscription } from 'rxjs';\n\nimport { NewsFeedV2WrapperComponent } from '../news-feed-v2-wrapper/news-feed-v2-wrapper.component';\n\n@Component({\n selector: 'cc-news-feed-v2-widget',\n templateUrl: 'news-feed-v2-widget.component.html',\n standalone: true,\n imports: [NgIf, NewsFeedV2WrapperComponent],\n})\nexport class NewsFeedV2WidgetComponent implements OnInit, OnDestroy {\n @Input() containerPath: string;\n @Input() trackData: any;\n isLobbyLoaded: boolean;\n lobbyLoadSubscription: Subscription;\n constructor(private casinoLobbyService: CasinoLobbyService) {}\n ngOnInit() {\n this.lobbyLoadSubscription = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.isLobbyLoaded = true;\n }\n });\n }\n ngOnDestroy() {\n if (this.lobbyLoadSubscription) {\n this.lobbyLoadSubscription.unsubscribe();\n }\n }\n}\n","import { Injectable, Injector, NgModuleRef, Type } from '@angular/core';\n\nimport {\n CasinoGridOnLobbyTypeComponent,\n NavOnLobbyTypeComponent,\n RpFavWidgetWrapperComponent,\n ThunderbiteIframeLauncherComponent,\n} from '@casinocore/platform';\nimport { GeolocationInstallerComponent } from '@casinocore/platform/core';\nimport { GamingStoriesPhase2WrapperComponent } from '@casinocore/platform/gaming-stories-phase2';\nimport { NewsFeedV2WidgetComponent } from '@casinocore/platform/news-feed-v2-section';\nimport { SlotRacesWidgetComponent } from '@casinocore/platform/slot-races';\nimport { TeaserOnLobbyTypeComponent, TeasersWrapperComponent } from '@casinocore/platform/teasers';\nimport { NativeAppService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasinoPlatformLoaderService {\n ngModuleRef: NgModuleRef<any>;\n casinoLobbyService: any;\n otherProductService: any;\n favouriteService: any;\n casinoManagerService: any;\n onAppInitHandler: any;\n casinoMenuActionsBootstrapService: any;\n casinoModuleLoadedSubject = new BehaviorSubject<boolean>(false);\n casinoModuleLoadedObservable: Observable<boolean> = this.casinoModuleLoadedSubject.asObservable();\n casinoModuleLoaded: boolean;\n casinoCoreGameLaunchService: any;\n gameLaunchUrlFormationService: any;\n\n constructor(\n private injector: Injector,\n private nativeAppService: NativeAppService,\n ) {}\n\n loadCasinoPlatformModule(configs: any): void {\n const isODR: boolean = this.nativeAppService?.applicationName?.toLowerCase() === 'casinowodr';\n const isSportsODR: boolean = this.nativeAppService?.applicationName?.toLowerCase() === 'sportswodr';\n if (!isODR || !isSportsODR) this.lazyloader(configs);\n }\n\n getLazyComponentFactory(componentName: string): Type<any> {\n return componentsMap[componentName];\n }\n\n isCasinoModuleLoaded(): boolean {\n return this.casinoModuleLoaded;\n }\n\n getOtherProductService(): any {\n return this.otherProductService;\n }\n\n getFavouriteService(): any {\n return this.favouriteService;\n }\n getCasinoLobbyService(): any {\n return this.casinoLobbyService;\n }\n getCasinoManagerService(): any {\n return this.casinoManagerService;\n }\n\n getCasinoCoreGameLaunchService(): any {\n return this.casinoCoreGameLaunchService;\n }\n\n getGameLaunchUrlFormationService(): any {\n return this.gameLaunchUrlFormationService;\n }\n\n updateFavGamesForOtherProducts(): void {\n if (this.casinoModuleLoaded) {\n this.updateBingoFav();\n } else {\n const otherProductServiceModuleLoadSubscription: Subscription = this.casinoModuleLoadedObservable.subscribe((isModuleLoaded: boolean) => {\n if (isModuleLoaded) {\n this.updateBingoFav();\n if (otherProductServiceModuleLoadSubscription) {\n otherProductServiceModuleLoadSubscription.unsubscribe();\n }\n }\n });\n }\n }\n\n private updateBingoFav(): void {\n const otherProductServiceInstance: any = this.getOtherProductService();\n otherProductServiceInstance.updateFavGamesForOtherProducts();\n }\n\n lazyloader(configs: any) {\n import('./services').then(({ dynamicServicesMap }) => {\n this.casinoManagerService = this.injector.get(dynamicServicesMap.casinoManager);\n this.casinoLobbyService = this.injector.get(dynamicServicesMap.lobbyService);\n this.otherProductService = this.injector.get(dynamicServicesMap.otherProductService);\n this.casinoMenuActionsBootstrapService = this.injector.get(dynamicServicesMap.casinoMenuActionsBootstrapService);\n this.favouriteService = this.injector.get(dynamicServicesMap.favouriteService);\n this.onAppInitHandler = this.injector.get(dynamicServicesMap.onAppInitHandler);\n this.casinoCoreGameLaunchService = this.injector.get(dynamicServicesMap.casinoCoreGamelaunchService);\n this.gameLaunchUrlFormationService = this.injector.get(dynamicServicesMap.gameLaunchUrlFormationService);\n this.onAppInitHandler.execute();\n\n const casinoCoreNpmParams: any = {};\n casinoCoreNpmParams.isDll = false;\n casinoCoreNpmParams.fastLoadingVisibleOnLobby = true;\n if (configs) {\n casinoCoreNpmParams.disableFullLobbyFetch = configs.disableProductLobbyDataFetch;\n casinoCoreNpmParams.customLobbyTypeMaps = configs.lobbyTypeMap;\n casinoCoreNpmParams.disableCasinoLocalStorage = configs.disableCasinoLocalStorage;\n casinoCoreNpmParams.disableSlotracesCallsOnBootstrap = configs.disableSlotracesCallsOnBootstrap;\n casinoCoreNpmParams.isDisableLiveCasinoCalls = configs.isDisableLiveCasinoCalls;\n casinoCoreNpmParams.isDisableJackpotCalls = configs.isDisableJackpotCalls;\n casinoCoreNpmParams.targetOverlayLobby = configs.targetOverlayLobby;\n }\n this.casinoLobbyService.initiateCasinoLobby(casinoCoreNpmParams);\n\n this.casinoModuleLoaded = true;\n this.casinoModuleLoadedSubject.next(true);\n });\n }\n}\n\nexport const componentsMap: Record<string, Type<any>> = {\n RpFavWidgetWrapperComponent: RpFavWidgetWrapperComponent,\n ThunderbiteIframeLauncherComponent: ThunderbiteIframeLauncherComponent,\n CasinoGridOnLobbyTypeComponent: CasinoGridOnLobbyTypeComponent,\n NavOnLobbyTypeComponent: NavOnLobbyTypeComponent,\n GeolocationInstallerComponent: GeolocationInstallerComponent,\n SportsOverlayComponent: GeolocationInstallerComponent,\n NewsFeedV2WidgetComponent: NewsFeedV2WidgetComponent,\n SlotRacesWidgetComponent: SlotRacesWidgetComponent,\n GamingStoriesPhase2WrapperComponent: GamingStoriesPhase2WrapperComponent,\n TeaserOnLobbyTypeComponent: TeaserOnLobbyTypeComponent,\n TeasersWrapperComponent: TeasersWrapperComponent,\n};\n","import { Directive, Input, NgModuleRef, OnChanges, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from './casino-platform-loader.service';\n\n@Directive({\n selector: '[bgCasinoModuleLoad]',\n standalone: true,\n})\nexport class CasinoModuleLoadDirective implements OnInit, OnChanges, OnDestroy {\n @Input('bgCasinoModuleLoad') selectorName: string;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('data') jsonData: any;\n casinoModuleLoaded: boolean;\n componentRef_: any;\n\n private ngModuleRef: NgModuleRef<any>;\n\n constructor(\n private casinoPlatformLoaderService: CasinoPlatformLoaderService,\n private viewContainerRef: ViewContainerRef,\n private renderer2: Renderer2,\n ) {}\n\n ngOnChanges(): void {\n if (this.componentRef_ && this.jsonData) {\n this.assignDatatoComponent(this.jsonData);\n }\n }\n ngOnInit(): void {\n this.casinoPlatformLoaderService.casinoModuleLoadedObservable.subscribe((moduleLoaded) => {\n this.casinoModuleLoaded = moduleLoaded;\n if (moduleLoaded) {\n this.createComponent();\n }\n });\n }\n createComponent() {\n const cmpFactory = this.casinoPlatformLoaderService.getLazyComponentFactory(this.selectorName);\n if (cmpFactory) {\n this.componentRef_ = this.viewContainerRef.createComponent(cmpFactory);\n this.renderer2.addClass(this.componentRef_.location.nativeElement, 'casino-lobby-container-main');\n if (this.componentRef_ && this.jsonData) {\n this.assignDatatoComponent(this.jsonData);\n }\n }\n }\n assignDatatoComponent(jsonData: any) {\n Object.keys(jsonData).forEach((key: string) => {\n this.componentRef_.instance[key] = jsonData[key];\n });\n }\n\n ngOnDestroy(): void {\n this.ngModuleRef && this.ngModuleRef.destroy();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { CasinoModuleLoadDirective } from './casino-module-load.directive';\nimport { CasinoPlatformLoaderService } from './casino-platform-loader.service';\n\n@NgModule({\n imports: [CasinoModuleLoadDirective],\n exports: [CasinoModuleLoadDirective],\n})\nexport class CasinoPlatformLoaderModule {\n public static forRoot(): ModuleWithProviders<CasinoPlatformLoaderModule> {\n return {\n ngModule: CasinoPlatformLoaderModule,\n providers: [CasinoPlatformLoaderService, CasinoModuleLoadDirective],\n };\n }\n}\n","@if (faqTitle && dataArray && dataArray.length > 0) {\n <div class=\"lot-faq\">\n <div class=\"lot-faq-heading\">{{ faqTitle }}</div>\n <div *ngFor=\"let item of dataArray; let i = index\" class=\"lot-faq-collapsible\" (click)=\"faqClicked(i)\">\n <div class=\"lot-faq-question\">\n <span class=\"lot-faq-question-icon theme-plus\" [ngClass]=\"{ 'lot-faq-question-icon-rotate': item.expanded == 'expanded' }\"></span>\n <div class=\"lot-faq-question-content\" [innerHtml]=\"item.key\"></div>\n </div>\n <div class=\"lot-faq-answer\" [@slideInOut]=\"item.expanded\">\n <p class=\"lot-faq-answer-content\" [innerHtml]=\"item.value\"></p>\n </div>\n </div>\n </div>\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, NgClass, NgFor } from '@angular/common';\nimport { Component, Input, OnChanges, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lot-faq-items',\n templateUrl: 'faq-items.component.html',\n animations: [\n trigger('slideInOut', [\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n height: '*',\n }),\n ),\n state(\n 'not-expanded',\n style({\n opacity: '0',\n overflow: 'hidden',\n height: '0px',\n }),\n ),\n transition('expanded => not-expanded', animate('800ms ease-out')),\n transition('not-expanded => expanded', animate('800ms ease-out')),\n ]),\n ],\n standalone: true,\n imports: [CommonModule, NgFor, NgClass],\n})\nexport class FaqItemsComponent implements OnInit, OnChanges {\n @Input() faqsData: any;\n faqData: Object = new Object();\n faq: any;\n faqTitle: string;\n dataArray: Array<any> = new Array<any>();\n data: Object = new Object();\n\n ngOnInit() {\n this.setFAQItemsData();\n }\n\n ngOnChanges() {\n this.setFAQItemsData();\n }\n\n setFAQItemsData() {\n if (this.faqsData) {\n let faqHtmlToJsonData = this.mapDOM(this.faqsData);\n this.formFAQDataArray(faqHtmlToJsonData);\n }\n }\n\n formFAQDataArray(faqHtmlToJsonData: any) {\n if (faqHtmlToJsonData && faqHtmlToJsonData.content) {\n let content: Array<any> = faqHtmlToJsonData.content;\n this.faqTitle = content.length >= 1 ? content[1].content[0] : '';\n let faqListContent: Array<any> = new Array<any>();\n content.forEach((item: any) => {\n if (item.attributes && item.content && item.attributes.class) {\n if (item.attributes.class == 'faq-title') {\n this.faqTitle = item.content[0];\n }\n if (item.attributes.class == 'faq-list') {\n faqListContent = item.content;\n }\n }\n });\n faqListContent.forEach((faqItem: any) => {\n if (faqItem.content && faqItem.content.length > 0) {\n let questionAnswerArray: Array<any> = new Array<any>();\n let question: any;\n let answer: any;\n faqItem.content.forEach((faq: any) => {\n if (faq.attributes && faq.content && faq.attributes.class && faq.attributes.class == 'question') {\n question = faq.content[1];\n }\n if (faq.attributes && faq.content && faq.attributes.class && faq.attributes.class == 'answer') {\n answer = faq.content[1];\n }\n });\n if (question && answer) {\n questionAnswerArray.push(question);\n questionAnswerArray.push(answer);\n this.data[question as keyof typeof this.data] = answer;\n }\n }\n });\n let i = 0;\n for (const [key, value] of Object.entries(this.data)) {\n let obj = {\n key: key,\n value: value,\n expanded: 'not-expanded',\n };\n this.dataArray[i] = obj;\n i++;\n }\n }\n }\n\n mapDOM(elementData: string) {\n let parser = new DOMParser();\n let docNode = parser.parseFromString(elementData, 'text/xml');\n let ele = docNode.firstChild;\n let treeObject = this.treeHTML(ele, new Object());\n return treeObject;\n }\n\n treeHTML(element: any, object: any) {\n object['type'] = element.nodeName;\n let nodeList = element.childNodes;\n if (nodeList != null) {\n if (nodeList.length) {\n object['content'] = [];\n for (let i = 0; i < nodeList.length; i++) {\n let node = nodeList[i];\n if (node.nodeType == 3) {\n object['content'].push(node.nodeValue);\n } else if (node.parentElement.className == 'question' || node.parentElement.className == 'answer') {\n object['content'].push(node.innerHTML);\n } else {\n object['content'].push({});\n this.treeHTML(node, object['content'][object['content'].length - 1]);\n }\n }\n }\n }\n if (element.attributes != null) {\n if (element.attributes.length) {\n object['attributes'] = {};\n for (let i = 0; i < element.attributes.length; i++) {\n object['attributes'][element.attributes[i].nodeName] = element.attributes[i].nodeValue;\n }\n }\n }\n return object;\n }\n\n faqClicked(index: number) {\n for (let i = 0; i < this.dataArray.length; i++) {\n if (i == index) {\n this.dataArray[index].expanded = this.dataArray[index].expanded === 'not-expanded' ? 'expanded' : 'not-expanded';\n } else {\n this.dataArray[i].expanded = 'not-expanded';\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderModule, CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-nav-section',\n templateUrl: 'lottery-nav-section.component.html',\n standalone: true,\n imports: [CommonModule, CasinoPlatformLoaderModule],\n})\nexport class LotteryNavSectionComponent implements OnInit, OnDestroy {\n categoryChangeObs: Subscription;\n routeCurrentProduct: string;\n routeCategoryType: string;\n casinoLobbyService: any;\n @Input() lobbyType: string;\n jsonData: any = {};\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((productAndCat: any) => {\n if (productAndCat) {\n this.routeCurrentProduct = productAndCat.routeCurrentProduct;\n this.setRouteCategory(productAndCat);\n }\n });\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n\n setRouteCategory(productAndCat: any) {\n if (!productAndCat.routeCategoryType || productAndCat.routeCategoryType === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.routeCategoryType = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.routeCategoryType = productAndCat.routeCategoryType;\n }\n this.jsonData = {\n lobbyType: this.lobbyType,\n categoryRoute: this.routeCategoryType,\n lobbyProduct: productAndCat.routeCurrentProduct,\n productOverride: 'lottery',\n stickyInputQueryElement: 'lot-nav-section',\n };\n }\n}\n","<ng-container [bgCasinoModuleLoad]=\"'NavOnLobbyTypeComponent'\" [data]=\"jsonData\"></ng-container>\n","<div class=\"lottery-seo-margin lottery-lobby-width\">\n <div *ngFor=\"let seobox of seoboxes\" class=\"seo-main-header\">\n <div class=\"toggle-element\">\n @if (seobox.path) {\n <div class=\"content seo-blocks\">\n <vn-page-matrix [path]=\"seobox.decodedPath\"></vn-page-matrix>\n </div>\n }\n </div>\n </div>\n</div>\n","import { CommonModule, NgFor } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\n\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\n\n@Component({\n selector: 'lot-seoboxes',\n templateUrl: 'lottery-seoboxes.component.html',\n standalone: true,\n imports: [CommonModule, PageMatrixComponent, NgFor],\n})\nexport class LotterySeoboxesComponent implements OnChanges {\n @Input() seoboxes: any;\n constructor() {}\n\n ngOnChanges() {\n if (this.seoboxes && this.seoboxes.length > 0) {\n for (let i = 0; i < this.seoboxes.length; i++) {\n this.seoboxes[i].decodedPath = decodeURI(this.seoboxes[i].path);\n }\n }\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { FaqItemsComponent } from '../faq-items/faq-items.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-faq',\n templateUrl: 'faq.component.html',\n animations: [\n trigger('slideInOut', [\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n height: '*',\n }),\n ),\n state(\n 'not-expanded',\n style({\n opacity: '0',\n overflow: 'hidden',\n height: '0px',\n }),\n ),\n transition('expanded => not-expanded', animate('800ms ease-out')),\n transition('not-expanded => expanded', animate('800ms ease-out')),\n ]),\n ],\n standalone: true,\n imports: [CommonModule, FaqItemsComponent],\n})\nexport class FaqComponent implements OnInit, OnChanges, OnDestroy {\n @Input() lobbyType: string;\n @Input() categoryRoute: string;\n categorySitecoreDataObs: Subscription;\n casinoLobbyService: any;\n faqsData: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categorySitecoreDataObs = this.lobbyService.sitecoreCategoryDataObservable.subscribe((sitecoreDataResponse: any) => {\n if (sitecoreDataResponse) {\n this.setFAQData();\n }\n });\n }\n\n ngOnChanges() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.setFAQData();\n }\n\n setFAQData() {\n let categoryObj = this.casinoLobbyService.getCategoryInfo(this.lobbyType, this.categoryRoute);\n if (categoryObj && categoryObj.categoryInfo) {\n let categorySitecoreData = this.lobbyService.getCategorySitecoreData(this.lobbyType, categoryObj.categoryInfo.lmtCategoryId);\n if (categorySitecoreData.faqsData) {\n this.faqsData = categorySitecoreData.faqsData;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.categorySitecoreDataObs) {\n this.categorySitecoreDataObs.unsubscribe();\n }\n }\n}\n","<lot-faq-items [faqsData]=\"faqsData\"></lot-faq-items>\n","@if (catRouteFetched) {\n <lot-faq [lobbyType]=\"lobbyType\" [categoryRoute]=\"categoryRoute\"></lot-faq>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { FaqComponent } from '../faq/faq.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-faq-section',\n templateUrl: 'faq-section.component.html',\n standalone: true,\n imports: [CommonModule, FaqComponent],\n})\nexport class FaqSectionComponent implements OnInit, OnDestroy {\n @Input() lobbyType: string;\n categoryChangeObs: Subscription;\n categoryRoute: string;\n catRouteFetched: boolean;\n casinoLobbyService: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((containerMode: any) => {\n if (containerMode) {\n this.catRouteFetched = true;\n this.getRouteCategory(containerMode.routeCategoryType);\n }\n });\n }\n\n getRouteCategory(routeCategory: string) {\n if (!routeCategory || routeCategory === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.categoryRoute = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.categoryRoute = routeCategory;\n }\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\n\nimport { GloablClientConfig } from '../client-config/lottery-client-config.models';\n\n@Component({\n selector: 'lot-how-to-play-items',\n templateUrl: 'how-to-play-items.component.html',\n standalone: true,\n imports: [CommonModule, PageMatrixComponent],\n})\nexport class HowToPlayItemsComponent implements OnInit {\n @Input() howToPlayPath: any;\n header: string;\n\n constructor(private gloablClientConfig: GloablClientConfig) {}\n\n ngOnInit() {\n this.header = this.gloablClientConfig.messages['HowToPlayTitle'];\n }\n}\n","<div class=\"lot-howtoplay-sec\">\n <div class=\"lot-howtoplay-heading\">{{ header }}</div>\n <vn-page-matrix [path]=\"howToPlayPath\"></vn-page-matrix>\n</div>\n","@if (howToPlayPath) {\n <lot-how-to-play-items [howToPlayPath]=\"howToPlayPath\"></lot-how-to-play-items>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { HowToPlayItemsComponent } from '../how-to-play-items/how-to-play-items.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-how-to-play',\n templateUrl: 'how-to-play.component.html',\n standalone: true,\n imports: [CommonModule, HowToPlayItemsComponent],\n})\nexport class HowToPlayComponent implements OnInit, OnChanges, OnDestroy {\n @Input() lobbyType: string;\n @Input() categoryRoute: string;\n categorySitecoreDataObs: Subscription;\n howToPlayPath: string;\n casinoLobbyService: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categorySitecoreDataObs = this.lobbyService.sitecoreCategoryDataObservable.subscribe((sitecoreDataResponse: any) => {\n if (sitecoreDataResponse) {\n this.setHowToPlayPath();\n }\n });\n }\n\n ngOnChanges() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.setHowToPlayPath();\n }\n\n setHowToPlayPath() {\n let categoryObj = this.casinoLobbyService.getCategoryInfo(this.lobbyType, this.categoryRoute);\n if (categoryObj && categoryObj.categoryInfo) {\n let categorySitecoreData = this.lobbyService.getCategorySitecoreData(this.lobbyType, categoryObj.categoryInfo.lmtCategoryId);\n this.howToPlayPath = categorySitecoreData.howtoPlayPath;\n }\n }\n\n ngOnDestroy() {\n if (this.categorySitecoreDataObs) {\n this.categorySitecoreDataObs.unsubscribe();\n }\n }\n}\n","@if (catRouteFetched) {\n <lot-how-to-play [lobbyType]=\"lobbyType\" [categoryRoute]=\"categoryRoute\"></lot-how-to-play>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { HowToPlayComponent } from '../how-to-play/how-to-play.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-how-to-play-section',\n templateUrl: 'how-to-play-section.component.html',\n standalone: true,\n imports: [CommonModule, HowToPlayComponent],\n})\nexport class HowToPlaySectionComponent implements OnInit, OnDestroy {\n @Input() lobbyType: string;\n categoryChangeObs: Subscription;\n categoryRoute: string;\n catRouteFetched: boolean;\n casinoLobbyService: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((containerMode: any) => {\n if (containerMode) {\n this.catRouteFetched = true;\n this.getRouteCategory(containerMode.routeCategoryType);\n }\n });\n }\n\n getRouteCategory(routeCategory: string) {\n if (!routeCategory || routeCategory === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.categoryRoute = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.categoryRoute = routeCategory;\n }\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","<vn-message-panel [scope]=\"'gameiframelauncher'\"></vn-message-panel>\n@if (iframeUrl) {\n <div (window:resize)=\"onResize()\" [ngStyle]=\"{ overflow: 'hidden', position: 'relative' }\">\n <div class=\"wrapper\">\n <div class=\"livegames_iframe\" #iframeId>\n <iframe\n id=\"live-games\"\n allowfullscreen=\"true\"\n [style.height]=\"heightIframe + 'px'\"\n [style.width]=\"widthIframe + 'px'\"\n frameborder=\"0\"\n scrolling=\"yes\"\n [src]=\"iframeUrl | trustAsResourceUrl\"\n title=\"\">\n Preview not available</iframe\n >\n </div>\n </div>\n </div>\n}\n","import { CommonModule, NgStyle } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { ConfigProviderService } from '@casinocore/platform/core';\nimport {\n CookieService,\n Logger,\n Message,\n MessageLifetime,\n MessageQueueService,\n MessageType,\n Page,\n UserLoginEvent,\n UserService,\n WindowRef,\n} from '@frontend/vanilla/core';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { TrustAsResourceUrlPipe } from '@frontend/vanilla/shared/browser';\nimport { filter } from 'rxjs/operators';\n\nimport { FeaturesClientConfig } from '../client-config/lottery-client-config.models';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-iframe',\n templateUrl: 'iframe.component.html',\n standalone: true,\n imports: [CommonModule, MessagePanelComponent, TrustAsResourceUrlPipe, NgStyle],\n})\nexport class IframeComponent implements OnInit {\n @Input() lobbyType: string;\n @Input() categoryRoute: string;\n casinoCoreGamelaunchService: any;\n gamelaunchUrlFormationService: any;\n casinoManagerService: any;\n isIframeReady: boolean;\n iframeUrl: string;\n heightIframe: number;\n widthIframe: number;\n\n constructor(\n private casinoLoader: CasinoPlatformLoaderService,\n private window: WindowRef,\n private messageQueue: MessageQueueService,\n private featuresConfig: FeaturesClientConfig,\n private user: UserService,\n private lobbyService: LotteryLobbyService,\n private logger: Logger,\n private configProviderService: ConfigProviderService,\n private cookies: CookieService,\n private page: Page,\n ) {}\n\n ngOnInit() {\n this.initiateIframe();\n this.user.events.pipe(filter((e: any) => e instanceof UserLoginEvent)).subscribe(() => {\n this.setIframeURL();\n });\n }\n handleMessageEvent(event: any) {\n if (event.origin !== window.origin) {\n return;\n } else if (event && event.data && event.data.message == 'game_resize') {\n this.heightIframe = event.data.height;\n }\n }\n\n initiateIframe() {\n window.addEventListener('message', this.handleMessageEvent);\n this.casinoCoreGamelaunchService = this.casinoLoader.getCasinoCoreGameLaunchService();\n this.gamelaunchUrlFormationService = this.casinoLoader.getGameLaunchUrlFormationService();\n this.casinoManagerService = this.casinoLoader.getCasinoManagerService();\n this.setIframeURL();\n }\n\n // setIframeURL() {\n // let lotteryGameIds = this.featuresConfig.lotteryGameIds;\n // let gameObj = {\n // gameId: lotteryGameIds[this.categoryRoute],\n // lobbyType: this.lobbyType\n // };\n // let gameModel: any = {\n // game: gameObj,\n // isTouch: false,\n // gamePosition: 0,\n // categoryType: '',\n // from: 'LotteryGameIframe',\n // replaceRouteInHistory: false,\n // isDemoLaunch: false,\n // skipUnfinGame: false,\n // gameLaunchedFrom: 'LotteryGameIframe',\n // gridPosition: 1,\n // gameSection: 'LotteryGameIframe',\n // lobbyType: this.lobbyType,\n // gameContainer: 'PageContainer',\n // returnUrl: window.location.href,\n // skipMetaDataCheck: true,\n // fetchLiveGameIFrame: true\n // };\n // this.casinoCoreGamelaunchService.launchGame(gameModel, (callbackResponse: any) => {\n // if (!callbackResponse.isError && callbackResponse.gameLaunchUrl) {\n // this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(callbackResponse.gameLaunchUrl);\n // this.isIframeReady = true;\n // this.widthIframe = this.window.nativeWindow.innerWidth;\n // this.heightIframe = this.featuresConfig.lotteryIframeHeight;;\n // }\n // else {\n // this.gameNotFoundAction(callbackResponse.errorMessage);\n // }\n // });\n // }\n setIframeURL() {\n let lotteryGameIds = this.featuresConfig.lotteryGameIds;\n let gameObj = {\n gameId: lotteryGameIds[this.categoryRoute],\n lobbyType: this.lobbyType,\n };\n let isTouch = this.lobbyService.isTouch();\n let gameModel = {\n game: gameObj,\n isTouch: isTouch,\n gamePosition: 1,\n categoryType: '',\n from: 'LotteryGameIframe',\n replaceRouteInHistory: false,\n isDemoLaunch: false,\n skipUnfinGame: false,\n gameLaunchedFrom: 'LotteryGameIframe',\n gridPosition: 0,\n gameSection: 'LotteryGameIframe',\n gameContainer: 'PageContainer',\n isLive: true,\n clickTimeStamp: this.casinoCoreGamelaunchService.currentTimeStamp(),\n skipMetaDataCheck: true,\n };\n this.casinoManagerService.setGameHomeUrl(this.lobbyService.getCasinoBaseUrl());\n let params: any = this.casinoCoreGamelaunchService.getParams(gameModel);\n this.casinoCoreGamelaunchService.getLaunchData(params).subscribe(\n (response: any) => {\n if (response && this.user.isAuthenticated) {\n this.storeUserInfo();\n this.storeSsoTokenInCookies();\n }\n response.isLiveGame = true;\n let url = this.gamelaunchUrlFormationService.launchMGSGame(response, gameModel);\n // this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(encodeURI(url));\n this.iframeUrl = url;\n this.isIframeReady = true;\n this.widthIframe = this.window.nativeWindow.innerWidth;\n this.heightIframe = this.featuresConfig.lotteryIframeHeight;\n },\n (error: any) => {\n this.logger.error(error);\n this.gameNotFoundAction();\n },\n );\n }\n onResize() {\n this.widthIframe = this.window.nativeWindow.innerWidth;\n }\n\n gameNotFoundAction(errorMessage?: any) {\n this.messageQueue.clear();\n let errormessage: string = errorMessage ? errorMessage : 'Game is not available.';\n let message: Message = {\n html: errormessage,\n type: MessageType.Information,\n lifetime: MessageLifetime.Single,\n scope: 'gameiframelauncher',\n };\n this.messageQueue.add(message);\n return;\n }\n\n storeUserInfo() {\n const gamesConfig = this.configProviderService.provideGameConfig();\n if (gamesConfig.storeUserDetails) {\n const cookieObj: any = {\n userToken: this.user.claims.get('usertoken') || '',\n sessionToken: this.user.claims.get('sessiontoken') || '',\n };\n\n this.cookies.putObject('PCGameData', cookieObj, {\n domain: this.page.domain,\n });\n }\n }\n private storeSsoTokenInCookies() {\n const gamesConfig = this.configProviderService.provideGameConfig();\n if (this.user.isAuthenticated && gamesConfig.storeLottoSsotokenInCookies) {\n this.cookies.put('ssoToken', this.user.ssoToken || '', {\n domain: this.page.domain,\n });\n }\n }\n}\n","@if (isIframeCategory) {\n <lot-iframe [lobbyType]=\"lobbyType\" [categoryRoute]=\"categoryRoute\"></lot-iframe>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { FeaturesClientConfig } from '../client-config/lottery-client-config.models';\nimport { IframeComponent } from '../iframes/iframe.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-iframe-widget',\n templateUrl: 'iframe-widget.component.html',\n standalone: true,\n imports: [CommonModule, IframeComponent],\n})\nexport class IframeWidgetComponent implements OnInit, OnDestroy {\n @Input() lobbyType: string;\n isIframeCategory: boolean;\n categoryRoute: string;\n casinoManager: any;\n categoryChangeObs: Subscription;\n\n constructor(\n private casinoLoader: CasinoPlatformLoaderService,\n private lobbyService: LotteryLobbyService,\n private featuresConfig: FeaturesClientConfig,\n ) {}\n\n ngOnInit() {\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((containerMode: any) => {\n if (containerMode) {\n this.categoryRoute = containerMode.routeCategoryType;\n this.checkforIframeCategory(this.categoryRoute);\n }\n });\n }\n\n checkforIframeCategory(category: string) {\n this.isIframeCategory = this.featuresConfig.iframeCategories.indexOf(category) > -1;\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderModule, CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-lottery-games-section',\n templateUrl: 'lottery-games-section.component.html',\n standalone: true,\n imports: [CasinoPlatformLoaderModule],\n})\nexport class LotteryGamesSectionComponent implements OnInit, OnDestroy {\n casinoLobbyService: any;\n categoryChangeObs: Subscription;\n routeCurrentProduct: string;\n routeCategoryType: string;\n @Input() lobbyType: string;\n jsonData: any = {};\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((productAndCat: any) => {\n if (productAndCat) {\n this.routeCurrentProduct = productAndCat.routeCurrentProduct;\n this.setRouteCategory(productAndCat.routeCategoryType);\n }\n });\n }\n\n setRouteCategory(routeCategory: string) {\n if (!routeCategory || routeCategory === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.routeCategoryType = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.routeCategoryType = routeCategory;\n }\n this.jsonData = {\n lobbyType: this.lobbyType,\n categoryRoute: this.routeCategoryType,\n };\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","<div class=\"lot-game-section\">\n <ng-container [bgCasinoModuleLoad]=\"'CasinoGridOnLobbyTypeComponent'\" [data]=\"jsonData\"></ng-container>\n</div>\n","@if (iconData) {\n <div class=\"lot-icons-item-container\">\n <div class=\"lot-icons-item\">\n <img [src]=\"imageUrl\" alt=\"\" />\n <div class=\"lot-icons-opacity\"></div>\n <div class=\"lot-icons-content\">\n <div class=\"lot-icons-title\">{{ title }}</div>\n <div class=\"lot-icons-subtitle\">{{ subTitle }}</div>\n <div>\n <a class=\"lot-icons-cta\" [href]=\"ctaUrl\">{{ ctaText }}</a>\n </div>\n </div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lot-icons-item',\n templateUrl: 'lottery-icons-item.component.html',\n standalone: true,\n imports: [CommonModule],\n})\nexport class LotteryIconsItemComponent implements OnInit {\n @Input() iconData: any;\n title: string;\n subTitle: string;\n imageUrl: string;\n ctaUrl: string;\n ctaText: string;\n\n ngOnInit() {\n this.title = this.iconData.title ? this.iconData.title : '';\n this.subTitle = this.iconData.subtitle ? this.iconData.subtitle : '';\n this.imageUrl = this.iconData.versionedImage ? this.iconData.versionedImage.src : this.iconData.image ? this.iconData.image.src : '';\n this.ctaUrl = this.iconData.cta ? this.iconData.cta.url : '';\n this.ctaText = this.iconData.cta ? this.iconData.cta.text : '';\n }\n}\n","@if (lotteryIconData && lotteryIconData.length > 0) {\n <div class=\"lot-icons-container\">\n <div *ngFor=\"let item of lotteryIconData\" class=\"lot-icons\">\n <lot-icons-item [iconData]=\"item\"></lot-icons-item>\n </div>\n </div>\n}\n","import { CommonModule, NgFor } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { LotteryIconsItemComponent } from '../lottery-icons-item/lottery-icons-item.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-icons',\n templateUrl: 'lottery-icons.component.html',\n standalone: true,\n imports: [CommonModule, LotteryIconsItemComponent, NgFor],\n})\nexport class LotteryIconsComponent implements OnInit {\n categorySitecoreDataObs: Subscription;\n lotteryIconData: Array<any>;\n\n constructor(private lobbyService: LotteryLobbyService) {}\n\n ngOnInit() {\n this.categorySitecoreDataObs = this.lobbyService.sitecoreCategoryDataObservable.subscribe((sitecoreDataResponse: any) => {\n if (sitecoreDataResponse) {\n this.lotteryIconData = sitecoreDataResponse.lotteryIconData;\n }\n });\n }\n}\n","@if (whyPlayWithUsPath) {\n <div>\n <vn-page-matrix [path]=\"whyPlayWithUsPath\"></vn-page-matrix>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-why-play-with-us',\n templateUrl: 'whyplaywithus.component.html',\n standalone: true,\n imports: [CommonModule, PageMatrixComponent],\n})\nexport class WhyPlayWithusComponent implements OnInit, OnDestroy {\n categorySitecoreDataObs: Subscription;\n whyPlayWithUsPath: string;\n\n constructor(private lobbyService: LotteryLobbyService) {}\n\n ngOnInit() {\n this.categorySitecoreDataObs = this.lobbyService.sitecoreCategoryDataObservable.subscribe((sitecoreDataResponse: any) => {\n if (sitecoreDataResponse) {\n if (sitecoreDataResponse.whyPlayWithUs) {\n this.whyPlayWithUsPath = sitecoreDataResponse.whyPlayWithUs.path;\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.categorySitecoreDataObs) {\n this.categorySitecoreDataObs.unsubscribe();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryGamesSectionComponent } from '../lottery-games-section/lottery-games-section.component';\nimport { LotteryIconsComponent } from '../lottery-icons/lottery-icons.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\nimport { WhyPlayWithusComponent } from '../why-play-with-us/whyplaywithus.component';\n\n@Component({\n selector: 'lot-homewidget-lobby',\n templateUrl: 'lottery-home-widget.component.html',\n standalone: true,\n imports: [CommonModule, LotteryIconsComponent, LotteryGamesSectionComponent, WhyPlayWithusComponent],\n})\nexport class LotteryHomeWidgetComponent implements OnInit, OnDestroy {\n casinoManager: any;\n lobbyType: string;\n categoryChangeObs: Subscription;\n\n constructor(\n private casinoLoader: CasinoPlatformLoaderService,\n private lobbyService: LotteryLobbyService,\n ) {}\n\n ngOnInit(): void {\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((containerMode) => {\n if (containerMode) {\n this.lobbyType = this.casinoManager.getLobbyTypeForProduct(containerMode.routeCurrentProduct);\n }\n });\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","<div class=\"lot-sec\">\n <div class=\"lot-left-sec fLeft\">\n <div class=\"lot-top-sec\"><lot-icons></lot-icons></div>\n <div class=\"lot-games-tab\"><lot-lottery-games-section [lobbyType]=\"lobbyType\"></lot-lottery-games-section></div>\n </div>\n <div class=\"lot-right-sec fLeft\"><lot-why-play-with-us></lot-why-play-with-us></div>\n <div class=\"cBoth\"></div>\n</div>\n<div class=\"lot-games-desk\"><lot-lottery-games-section [lobbyType]=\"lobbyType\"></lot-lottery-games-section></div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { IframeComponent } from '../iframes/iframe.component';\n\n@Component({\n selector: 'lot-iframe-widget-section',\n templateUrl: 'lottery-iframe-widget-section.component.html',\n standalone: true,\n imports: [CommonModule, IframeComponent],\n})\nexport class LotteryIframeWidgetSectionComponent implements OnInit {\n @Input() lobbyType: string;\n @Input() data: any;\n iframeCategory: string;\n\n constructor() {}\n\n ngOnInit() {\n this.iframeCategory = this.data ? this.data.iframeCategory : '';\n }\n}\n","<lot-iframe [lobbyType]=\"lobbyType\" [categoryRoute]=\"iframeCategory\"></lot-iframe>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotterySeoboxesComponent } from '../lottery-seoboxes/lottery-seoboxes.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-seo-box-section',\n templateUrl: 'lottery-seo-box-section.component.html',\n standalone: true,\n imports: [CommonModule, LotterySeoboxesComponent],\n})\nexport class LotterySeoBoxSectionComponent implements OnInit, OnDestroy, OnChanges {\n categoryChangeObs: Subscription;\n routeCurrentProduct: string;\n routeCategoryType: string;\n @Input() lobbyType: string;\n seoboxes: any[];\n casinoLobbyService: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((productAndCat: any) => {\n if (productAndCat) {\n this.routeCurrentProduct = productAndCat.routeCurrentProduct;\n this.bindSeoBoxes(productAndCat.routeCategoryType);\n }\n });\n }\n\n ngOnChanges() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n\n bindSeoBoxes(routeCategory: string) {\n if (!routeCategory || routeCategory === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.routeCategoryType = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.routeCategoryType = routeCategory;\n }\n this.getSeoBoxes();\n }\n\n getSeoBoxes() {\n let category: any = this.casinoLobbyService.getCategoryInfo(this.lobbyType, this.routeCategoryType);\n if (category && category.categoryInfo) {\n this.seoboxes = category.categoryInfo.sitecoreData.seoBoxes;\n }\n }\n}\n","<div>\n <lot-seoboxes [seoboxes]=\"seoboxes\"></lot-seoboxes>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderModule, CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-teaser-section',\n templateUrl: 'lottery-teaser-section.component.html',\n standalone: true,\n imports: [CommonModule, CasinoPlatformLoaderModule],\n})\nexport class LotteryTeaserSectionComponent implements OnInit, OnDestroy {\n categoryChangeObs: Subscription;\n routeCurrentProduct: string;\n routeCategoryType: string;\n casinoLobbyService: any;\n @Input() lobbyType: string;\n jsonData: any = {};\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((productAndCat: any) => {\n if (productAndCat) {\n this.routeCurrentProduct = productAndCat.routeCurrentProduct;\n this.setRouteCategory(productAndCat);\n }\n });\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n\n setRouteCategory(productAndCat: any) {\n if (!productAndCat.routeCategoryType || productAndCat.routeCategoryType === '') {\n let defaultCatInfo: any = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType);\n if (defaultCatInfo && defaultCatInfo.categoryInfo) {\n this.routeCategoryType = defaultCatInfo.categoryInfo.categoryid;\n }\n } else {\n this.routeCategoryType = productAndCat.routeCategoryType;\n }\n this.jsonData = {\n lobbyType: this.lobbyType,\n categoryRoute: this.routeCategoryType,\n lobbyProduct: productAndCat.routeCurrentProduct,\n };\n }\n}\n","<ng-container [bgCasinoModuleLoad]=\"'TeaserOnLobbyTypeComponent'\" [data]=\"jsonData\"></ng-container>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LotteryWidgetCompositionService {\n components: any;\n constructor() {}\n\n setWidgetComposition(componentList: any) {\n this.components = componentList;\n }\n getWidgetComposition() {\n return this.components;\n }\n}\n","<ng-template #template> </ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, ComponentFactoryResolver, HostListener, Input, OnChanges, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Logger } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { ComponentCompositionsClientConfig } from '../client-config/lottery-client-config.models';\nimport { FaqSectionComponent } from '../faq-section/faq-section.component';\nimport { HowToPlaySectionComponent } from '../how-to-play-section/how-to-play-section.component';\nimport { IframeWidgetComponent } from '../iframes-widget/iframe-widget.component';\nimport { LotteryGamesSectionComponent } from '../lottery-games-section/lottery-games-section.component';\nimport { LotteryHomeWidgetComponent } from '../lottery-home-widget/lottery-home-widget.component';\nimport { LotteryIframeWidgetSectionComponent } from '../lottery-iframe-widget-section/lottery-iframe-widget-section.component';\nimport { LotteryNavSectionComponent } from '../lottery-nav-section/lottery-nav-section.component';\nimport { LotterySeoBoxSectionComponent } from '../lottery-seo-box-section/lottery-seo-box-section.component';\nimport { LotteryTeaserSectionComponent } from '../lottery-teaser-section/lottery-teaser-section.component';\nimport { LotteryWidgetCompositionService } from '../shared/lottery-widget-composition.service';\n\n@Component({\n selector: 'lot-widgets',\n templateUrl: 'lottery-widgets.component.html',\n standalone: true,\n imports: [CommonModule],\n})\nexport class LotteryWidgetsComponent implements OnInit, OnDestroy, OnChanges {\n @Input() lobbyType: string;\n @Input() isDefaultComposition: boolean;\n @Input() categoryRoute: string;\n casinoLobbyService: any;\n casinoManager: any;\n componentRef_: any;\n lobbyLoadedSubscription: Subscription;\n componentConfigEnabled: boolean;\n mobileDefaultCompositions: any;\n mobileNonDefaultCompositions: any;\n desktopDefaultCompositions: any;\n desktopNonDefaultCompositions: any;\n isMobileWidth: boolean;\n prevLobbyType: string;\n\n @ViewChild('template', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n\n componentsView: { [key: string]: any } = {\n CasinoGamesSectionComponent: LotteryGamesSectionComponent,\n SeoBoxSectionComponent: LotterySeoBoxSectionComponent,\n NavSectionComponent: LotteryNavSectionComponent,\n TeaserSectionComponent: LotteryTeaserSectionComponent,\n HomeLobbyWidgetComponent: LotteryHomeWidgetComponent,\n HowToPlayComponent: HowToPlaySectionComponent,\n FaqComponent: FaqSectionComponent,\n IframeWidgetComponent: IframeWidgetComponent,\n IframeWidgetSectionComponent: LotteryIframeWidgetSectionComponent,\n };\n\n constructor(\n private componentCompositionsClientConfig: ComponentCompositionsClientConfig,\n private casinoLoader: CasinoPlatformLoaderService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private widgetCompositionService: LotteryWidgetCompositionService,\n private logger: Logger,\n ) {}\n ngOnInit() {\n this.lobbyLoadedSubscription = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response && response.isPostLogin) {\n this.generateComponents();\n }\n });\n this.logger.info('widgets ngoninit called');\n }\n\n ngOnChanges() {\n this.logger.info('widgets ngonchanges called');\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n this.assignConfigs();\n this.loadComposition();\n }\n\n assignConfigs() {\n this.isMobileWidth = window.innerWidth < 768 || document.body.offsetWidth < 768;\n this.componentConfigEnabled = this.componentCompositionsClientConfig.enabled;\n this.mobileDefaultCompositions = this.componentCompositionsClientConfig.mobileDefaultHomeComposition;\n this.mobileNonDefaultCompositions = this.componentCompositionsClientConfig.mobileNonDefaultHomeComposition;\n this.desktopDefaultCompositions = this.componentCompositionsClientConfig.desktopDefaultHomeComposition;\n this.desktopNonDefaultCompositions = this.componentCompositionsClientConfig.desktopNonDefaultHomeComposition;\n }\n\n loadComposition() {\n if (this.prevLobbyType != this.lobbyType) {\n this.generateComponents();\n this.prevLobbyType = this.lobbyType;\n }\n }\n\n generateComponents() {\n if (this.container) {\n this.container.clear();\n }\n let componentList: any = this.getComponentList();\n this.logger.info('ComponentList' + componentList);\n }\n\n getComponentList(): any {\n let composition: any;\n if (this.isMobileWidth) {\n if (this.isDefaultComposition) {\n composition = this.mobileDefaultCompositions;\n } else {\n composition = this.mobileNonDefaultCompositions;\n }\n } else {\n if (this.isDefaultComposition) {\n composition = this.desktopDefaultCompositions;\n } else {\n composition = this.desktopNonDefaultCompositions;\n }\n }\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n const componentList = this.casinoManager.IsFeatureEnabledforLobbytype(this.lobbyType, composition);\n if (componentList && componentList.length > 0) {\n for (let i = 0; i < componentList.length; i++) {\n if (componentList[i] && componentList[i].enabled) {\n this.generateComponentWithLobbyType(componentList[i].component, componentList[i].data);\n }\n }\n }\n this.widgetCompositionService.setWidgetComposition(componentList);\n this.logger.info('ComponentList' + componentList);\n return componentList;\n }\n\n generateComponentWithLobbyType(componentName: string, componentDataFromDynacon: any) {\n if (this.componentsView[componentName]) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentsView[componentName]);\n this.componentRef_ = this.container.createComponent(componentFactory);\n this.componentRef_.instance.lobbyType = this.lobbyType;\n this.componentRef_.instance.data = componentDataFromDynacon;\n }\n }\n @HostListener('window:resize', ['$event']) onResize() {\n let windowWidthStatus: boolean = window.innerWidth < 768 || document.body.offsetWidth < 768;\n if (windowWidthStatus != this.isMobileWidth) {\n this.isMobileWidth = windowWidthStatus;\n this.generateComponents();\n }\n }\n ngOnDestroy() {\n if (this.lobbyLoadedSubscription) {\n this.lobbyLoadedSubscription.unsubscribe();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryWidgetsComponent } from '../lottery-widgets/lottery-widgets.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-widget-composition',\n templateUrl: 'lottery-widget-composition.component.html',\n standalone: true,\n imports: [CommonModule, LotteryWidgetsComponent],\n})\nexport class LotteryWidgetCompositionComponent implements OnInit, OnDestroy {\n isDefaultComposition: boolean;\n lobbyType: string;\n categoryRoute: string;\n categoryChangeObs: Subscription;\n casinoManager: any;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n this.categoryChangeObs = this.lobbyService.categoryChangeObservable.subscribe((containerMode) => {\n if (containerMode) {\n this.isDefaultComposition = containerMode.isRootOrDefault;\n this.lobbyType = this.casinoManager.getLobbyTypeForProduct(containerMode.routeCurrentProduct);\n this.categoryRoute = containerMode.routeCategoryType;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.categoryChangeObs) {\n this.categoryChangeObs.unsubscribe();\n }\n }\n}\n","<lot-widgets [lobbyType]=\"lobbyType\" [isDefaultComposition]=\"isDefaultComposition\" [categoryRoute]=\"categoryRoute\"></lot-widgets>\n","@if (isLobbyLoaded) {\n <lot-widget-composition></lot-widget-composition>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryWidgetCompositionComponent } from '../lottery-widget-composition/lottery-widget-composition.component';\n\n@Component({\n selector: 'lot-widget-container',\n templateUrl: 'lottery-widget-container.component.html',\n standalone: true,\n imports: [CommonModule, LotteryWidgetCompositionComponent],\n})\nexport class LotteryWidgetContainerComponent implements OnInit, OnDestroy {\n isLobbyLoaded: boolean;\n lobbyLoadedObs: Subscription;\n casinoLobbyService: any;\n\n constructor(private casinoLoader: CasinoPlatformLoaderService) {}\n\n ngOnInit() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.lobbyLoadedObs = this.casinoLobbyService.lobbyLoadedObservable.subscribe((lobbyTypeMaps: any) => {\n if (lobbyTypeMaps) {\n this.isLobbyLoaded = true;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.lobbyLoadedObs) {\n this.lobbyLoadedObs.unsubscribe();\n }\n }\n}\n","@if (lobbyLoaded) {\n <div>\n @if (!pageNotFound) {\n <lot-widget-container></lot-widget-container>\n }\n @if (pageNotFound) {\n <vn-page-matrix path=\"App-v1.0/partials/notfound\"></vn-page-matrix>\n }\n @if (lastScrollTop) {\n <span class=\"casino-go-to-top theme-arrow-right\" (click)=\"toggleGoToTop(); scrollToTop()\"> </span>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, HostListener, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { NativeAppService } from '@frontend/vanilla/core';\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryWidgetContainerComponent } from '../lottery-widget-container/lottery-widget-container.component';\n\n@Component({\n selector: 'lot-lobby-conatiner',\n templateUrl: 'lottery-lobby-container.component.html',\n standalone: true,\n imports: [CommonModule, PageMatrixComponent, LotteryWidgetContainerComponent],\n})\nexport class LotteryLobbyContainerComponent implements OnInit, OnDestroy, OnChanges {\n @Input() routeCurrentProduct: string;\n @Input() routeCategoryType: string;\n lobbyLoaded: boolean;\n lobbyLoadSubscription: Subscription;\n currentLobbyType: string;\n lobbyTypeMaps: Map<string, any> = new Map<string, any>();\n pageNotFound: boolean = false;\n initialScrollTop: number = 0;\n lastScrollTop: number = 0;\n isTopArrowVisible: boolean;\n casinoLobbyService: any;\n casinoManager: any;\n\n constructor(\n private nativeAppService: NativeAppService,\n private casinoLoader: CasinoPlatformLoaderService,\n ) {}\n\n ngOnInit() {\n this.initialScrollTop = document.documentElement.scrollTop;\n }\n\n ngOnChanges() {\n this.casinoLobbyService = this.casinoLoader.getCasinoLobbyService();\n this.casinoManager = this.casinoLoader.getCasinoManagerService();\n\n this.lobbyLoadSubscription = this.casinoLobbyService.lobbyLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.currentLobbyType = this.casinoManager.getLobbyTypeForProduct(this.routeCurrentProduct);\n if (!this.currentLobbyType) {\n this.lobbyLoaded = true;\n this.pageNotFound = true;\n } else if (\n response &&\n response.lobbyTypeMaps &&\n response.lobbyTypeMaps.size > 0 &&\n response.lobbyTypeMaps.get(this.currentLobbyType) &&\n response.lobbyTypeMaps.get(this.currentLobbyType).categoriesMap &&\n response.lobbyTypeMaps.get(this.currentLobbyType).categoriesMap.size > 0\n ) {\n this.lobbyLoaded = true;\n this.pageNotFound = false;\n } else {\n this.lobbyLoaded = false;\n }\n }\n });\n }\n // for back to top arrow functionality\n\n @HostListener('window:scroll', ['$event'])\n onWindowScroll(event: Event) {\n let scrollElement: any = event.target;\n if (scrollElement.scrollingElement) {\n let scrollTop = scrollElement.scrollingElement.scrollTop;\n //display go to top icon on scrolling up only\n if (window.pageYOffset && scrollTop && scrollTop > 100 && this.lastScrollTop > scrollTop) {\n this.isTopArrowVisible = true;\n } else if ((this.isTopArrowVisible && window.pageYOffset) || scrollTop || document.body.scrollTop < 10) {\n this.isTopArrowVisible = false;\n }\n this.lastScrollTop = scrollTop;\n }\n }\n\n scrollToTop() {\n let currentScroll = Math.max(window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);\n if (currentScroll > 0) {\n if (this.nativeAppService.isNativeApp || this.nativeAppService.isNativeWrapper) {\n window.scrollTo(0, this.initialScrollTop);\n }\n }\n }\n\n toggleGoToTop() {\n window.scroll(0, 0);\n return false;\n }\n\n ngOnDestroy() {\n this.unSubscribeLobbyLoadSubscription();\n }\n\n unSubscribeLobbyLoadSubscription() {\n if (this.lobbyLoadSubscription) {\n this.lobbyLoadSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"lottery-lobby-container\">\n @if (moduleLoaded) {\n <lot-lobby-conatiner [routeCurrentProduct]=\"routeCurrentProduct\" [routeCategoryType]=\"routeCategoryType\"></lot-lobby-conatiner>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { Subscription } from 'rxjs';\n\nimport { LotteryLobbyContainerComponent } from '../lottery-lobby-container/lottery-lobby-container.component';\n\n@Component({\n selector: 'lot-lobby-container-wrapper',\n templateUrl: 'lottery-lobby-container-wrapper.component.html',\n standalone: true,\n imports: [CommonModule, LotteryLobbyContainerComponent],\n})\nexport class LotteryLobbyContainerWrapperComponent implements OnInit, OnDestroy {\n @Input() routeCurrentProduct: string;\n @Input() routeCategoryType: string;\n moduleLoaded: boolean;\n casinoModuleLoadedObservable: Subscription;\n\n constructor(private casinoloader: CasinoPlatformLoaderService) {}\n\n ngOnInit(): void {\n this.casinoModuleLoadedObservable = this.casinoloader.casinoModuleLoadedObservable.subscribe((response: any) => {\n if (response) {\n this.moduleLoaded = response;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.casinoModuleLoadedObservable) {\n this.casinoModuleLoadedObservable.unsubscribe();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { MessageQueueService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\nimport { LmtClientConfig } from '../client-config/lottery-client-config.models';\nimport { LotteryLobbyContainerWrapperComponent } from '../lottery-lobby-container-wrapper/lottery-lobby-container-wrapper.component';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Component({\n selector: 'lot-homemod-lobby',\n templateUrl: 'lottery-home.component.html',\n standalone: true,\n imports: [CommonModule, LotteryLobbyContainerWrapperComponent],\n})\nexport class LotteryHomeComponent implements OnInit, OnDestroy {\n routeCurrentProduct: string;\n routeCategoryType: string;\n routeSubscription: Subscription;\n routeInfoPublished: boolean;\n\n constructor(\n private lobbyService: LotteryLobbyService,\n private route: ActivatedRoute,\n private lmtDataClientConfig: LmtClientConfig,\n private messageQueue: MessageQueueService,\n ) {}\n\n ngOnInit(): void {\n this.routeSubscription = this.route.params.subscribe((params: any) => {\n this.messageQueue.clear();\n this.routeCurrentProduct = params.product;\n if ((!this.routeCurrentProduct || this.routeCurrentProduct === '') && (!params.categoryType || params.categoryType === '')) {\n let defaultProduct: string = this.lmtDataClientConfig.defaultProductHomeUrl;\n if (defaultProduct && defaultProduct != '') {\n this.routeCurrentProduct = defaultProduct;\n } else {\n this.routeCurrentProduct = 'lotto';\n }\n }\n this.routeCategoryType = params.categoryType;\n this.lobbyService.publishCategoryChange(this.routeCurrentProduct.toLowerCase(), this.routeCategoryType);\n this.routeInfoPublished = true;\n });\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"lottery-lobby-container\">\n <lot-lobby-container-wrapper [routeCurrentProduct]=\"routeCurrentProduct\" [routeCategoryType]=\"routeCategoryType\"></lot-lobby-container-wrapper>\n</div>\n","<div class=\"casino-thumbnail-wrapper\" *ngIf=\"displayThumbnail\" [style.background]=\"thumbnailBgColor\">\n <div class=\"thumbnail-data\" (click)=\"action(game)\">\n <div class=\"thumbnail-icon-div vthumbnail-inline\" *ngIf=\"ImageSrc\">\n <img class=\"thumbnail-icon\" src=\"{{ ImageSrc }}\" (error)=\"onGameIconError()\" />\n </div>\n <div class=\"thumbnail-title-wrapper vthumbnail-inline\" [style.color]=\"fontColor\">\n <div class=\"thumbnail-title\" *ngIf=\"data.title\">{{ data.title }}</div>\n <div class=\"thumbnail-subtitle\" *ngIf=\"data.subTitle\">{{ data.subTitle }}</div>\n <div class=\"thumbnail-sticker-wrapper\" *ngIf=\"data.isVipThumbnail && data.sticker != ''\">\n <div\n class=\"thumbnail-sticker\"\n *ngFor=\"let VIPSticker of data.sticker?.split(',')\"\n [ngStyle]=\"{ color: config.VIPStickerColor, background: config.VIPStickerBackgroundColor }\">\n {{ VIPSticker }}\n </div>\n </div>\n </div>\n <div class=\"thumbnail-ctalink vthumbnail-inline\" [style.color]=\"fontColor\">{{ buttonText }}</div>\n <div class=\"clear\"></div>\n </div>\n <div class=\"thumbnail-close\" [style.color]=\"fontColor\">\n <div class=\"theme-ex\" (click)=\"hideThumbnail(false)\"></div>\n <div class=\"clear\"></div>\n </div>\n</div>\n","import { NgFor, NgIf, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\n\nimport {\n CacheManagerService,\n CasinoCoreGamelaunchService,\n CasinoLobbyService,\n CasinoManager,\n CasinoStylesService,\n ConfigProviderService,\n GameLaunch,\n ThumbnailService,\n UtilityService,\n} from '@casinocore/platform/core';\nimport { NavigationService, TrackingService, UserService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cc-thumbnail-newgame',\n templateUrl: 'thumbnail-newgame.component.html',\n standalone: true,\n imports: [NgIf, NgFor, NgStyle],\n})\nexport class ThumbnailNewgameComponent implements OnInit, OnDestroy {\n @Input() category: any;\n @Input() isTouch: boolean;\n @Input() place: string = '';\n @Input() lobbyType: string;\n @Output() closeThumbnail: EventEmitter<boolean> = new EventEmitter();\n\n defaultSrc: string;\n game: string;\n data: any;\n displayThumbnail: boolean = false;\n config: any;\n isVipUser: boolean;\n fontColor: string = '';\n thumbnailBgColor: string = '';\n buttonText: string = '';\n gameConfig: any;\n thumbnailConfig: any;\n thumbnailObs: Subscription;\n ImageSrc: string;\n\n private readonly configProviderService = inject(ConfigProviderService);\n private readonly gameLaunchService = inject(CasinoCoreGamelaunchService);\n private readonly user = inject(UserService);\n private readonly cacheManager = inject(CacheManagerService);\n private readonly tracking = inject(TrackingService);\n private readonly navigation = inject(NavigationService);\n private readonly casinoManager = inject(CasinoManager);\n private readonly casinoLobbyService = inject(CasinoLobbyService);\n private readonly thumbnailService = inject(ThumbnailService);\n private readonly utilityService = inject(UtilityService);\n private readonly casinoStyles = inject(CasinoStylesService);\n\n ngOnInit() {\n //get from session storage\n this.gameConfig = this.configProviderService.provideGameConfig();\n this.defaultSrc = this.casinoManager.getGrayImageUrl();\n this.thumbnailConfig = this.configProviderService.provideThumbnailConfig();\n this.isVipUser = this.user.claims.get('vipLevel') != null;\n this.setThumbnail(true);\n this.thumbnailObs = this.thumbnailService.thumbnailDataObservable.subscribe((thumbnailRes: any) => {\n if (thumbnailRes) {\n this.setThumbnail(false);\n }\n });\n }\n\n setThumbnail(onInit: boolean) {\n const thumnailCategory = this.casinoLobbyService.getThumbnailbasedonroute(this.category);\n if (thumnailCategory) {\n this.game = thumnailCategory.gameId;\n if (this.game != this.cacheManager.getThumbnailsfromLocalStorage(this.lobbyType)) {\n this.cacheManager.removeThumbnailfromLocalStorage(this.lobbyType);\n if (onInit) {\n this.trackingInitEvent();\n }\n this.displayThumbnail = true;\n this.bindThumbnailData(thumnailCategory);\n //session games and category\n this.bindStyles(thumnailCategory);\n const feature: any = this.configProviderService.provideFeaturesConfig();\n if (this.game && this.data) {\n this.ImageSrc = this.casinoLobbyService.getImagePath(this.game, 'square');\n if (feature.enableGameIconTheming) {\n this.ImageSrc = this.casinoStyles.appendTheme(this.ImageSrc, this.game);\n }\n }\n } else {\n this.closeThumbnail.emit(false);\n }\n }\n //}\n }\n bindThumbnailData(thumnailCategory: any) {\n this.data = thumnailCategory;\n this.config = this.thumbnailConfig.thumbnailConfigurations;\n }\n onGameIconError() {\n this.ImageSrc = this.defaultSrc;\n }\n action(game: any) {\n if (game) {\n const thumbnailBGColor = this.isVipUser\n ? this.thumbnailConfig.thumbnailConfigurations.VIPThumbnailColor\n : this.thumbnailConfig.thumbnailConfigurations.AnonymousThumbnailColor;\n const gameItem: any = {};\n gameItem.gameId = game;\n gameItem.isDemo = false;\n gameItem.iconType = 1;\n gameItem.lobbyType = this.lobbyType;\n const gameModel = new GameLaunch();\n gameModel.game = gameItem;\n gameModel.isTouch = this.isTouch;\n gameModel.gamePosition = 1;\n gameModel.categoryType = this.category.categoryid;\n gameModel.from = !this.user.isAuthenticated ? 'thumbnail' : '';\n gameModel.replaceRouteInHistory = false;\n gameModel.isDemoLaunch = false;\n gameModel.skipUnfinGame = false;\n gameModel.gameLaunchedFrom = 'thumbnail';\n gameModel.gridPosition = this.category.categoryIndex;\n gameModel.gameSection = 'thumbnail';\n gameModel.gameContainer = 'Page Container';\n gameModel.lobbyType = this.lobbyType;\n gameModel.highlightedColor = thumbnailBGColor;\n gameModel.clickTimeStamp = this.gameLaunchService.currentTimeStamp();\n this.gameLaunchService.launchGame(gameModel);\n\n //update session storage\n this.displayThumbnail = false;\n this.hideThumbnail(true);\n }\n }\n\n bindStyles(thumnailCategory: any) {\n if (this.thumbnailConfig.thumbnailConfigurations) {\n if (!thumnailCategory.isVipThumbnail) {\n this.fontColor = this.thumbnailConfig.thumbnailConfigurations.AnonymousTextColor;\n this.thumbnailBgColor = this.thumbnailConfig.thumbnailConfigurations.AnonymousThumbnailColor;\n this.buttonText = this.thumbnailConfig.thumbnailConfigurations.AnonymousCTAText;\n } else {\n this.fontColor = this.thumbnailConfig.thumbnailConfigurations.VIPTextColor;\n this.thumbnailBgColor = this.thumbnailConfig.thumbnailConfigurations.VIPThumbnailColor;\n this.buttonText = this.thumbnailConfig.thumbnailConfigurations.VIPCTAText;\n }\n }\n }\n\n hideThumbnail(fromGameLaunch: boolean) {\n this.cacheManager.setThumbnailLocalStorageCacheMap(this.lobbyType, this.game);\n if (!fromGameLaunch) this.trackingCloseEvent();\n this.displayThumbnail = false;\n this.closeThumbnail.emit(false);\n }\n getLocation() {\n const defaultCategory = this.casinoLobbyService.getDefaultOrFirstCategoryInfo(this.lobbyType).categoryInfo;\n let isDefaultCategory: any;\n if (defaultCategory && defaultCategory.categoryid?.toLowerCase() === this.category?.categoryid?.toLowerCase()) {\n isDefaultCategory = true;\n }\n return isDefaultCategory ? this.utilityService.getProductForGivenLobbyType(this.lobbyType) : this.navigation.location.url();\n }\n\n trackingInitEvent() {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'Game Containers',\n 'component.LabelEvent': 'Thumbnail',\n 'component.ActionEvent': 'Displayed',\n 'component.PositionEvent': this.place,\n 'component.LocationEvent': this.getLocation(),\n 'component.EventDetails': this.game + '-' + this.gameLaunchService.getGameLunchType(this.game),\n 'component.URLClicked': 'thumbnail | ' + this.category.categoryid,\n });\n }\n trackingCloseEvent() {\n this.tracking.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'Game Containers',\n 'component.LabelEvent': 'Thumbnail',\n 'component.ActionEvent': 'Close (x) - Click',\n 'component.PositionEvent': this.place,\n 'component.LocationEvent': this.getLocation(),\n 'component.EventDetails': this.game + '-' + this.gameLaunchService.getGameLunchType(this.game),\n 'component.URLClicked': 'thumbnail | ' + this.category.categoryid,\n });\n }\n ngOnDestroy() {\n if (this.thumbnailObs) {\n this.thumbnailObs.unsubscribe();\n }\n }\n}\n","import * as i0 from '@angular/core';\nimport { inject, IterableDiffers, ChangeDetectorRef, NgZone, Injector, ViewContainerRef, ErrorHandler, isSignal, Directive, Input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { coerceObservableWith, coerceDistinctWith } from '@rx-angular/cdk/coercing';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { RxDefaultListViewContext, createListTemplateManager } from '@rx-angular/cdk/template';\nimport { isObservable, ReplaySubject, Subscription } from 'rxjs';\nimport { switchAll, shareReplay } from 'rxjs/operators';\nclass RxForViewContext extends RxDefaultListViewContext {\n rxForOf;\n constructor(item, rxForOf, customProps) {\n super(item, customProps);\n this.rxForOf = rxForOf;\n }\n}\n\n/**\n * @Directive RxFor\n *\n * @description\n *\n * The most common way to render lists in angular is by using the `*ngFor` structural directive. `*ngFor` is able\n * to take an arbitrary list of data and repeat a defined template per item of the list. However, it can\n * only do it synchronously.\n *\n * Compared to the `NgFor`, `RxFor` treats each child template as single renderable unit.\n * The change detection of the child templates get prioritized, scheduled and executed by\n * leveraging `RenderStrategies` under the hood.\n * This technique enables non-blocking rendering of lists and can be referred to as `concurrent mode`.\n *\n * Read more about this in the [strategies\n * section](https://www.rx-angular.io/docs/template/api/rx-for-directive#rxfor-with-concurrent-strategies).\n *\n * Furthermore, `RxFor` provides hooks to react to rendered items in form of a `renderCallback: Subject`.\n *\n * Together with the `RxRenderStrategies`, this makes the rendering behavior extremely versatile\n * and transparent for the developer.\n * Each instance of `RxFor` can be configured to render with different settings.\n *\n * Read more in the [official docs](https://www.rx-angular.io/docs/template/api/rx-for-directive)\n *\n * @docsCategory RxFor\n * @docsPage RxFor\n * @publicApi\n */\nlet RxFor = /*#__PURE__*/(() => {\n class RxFor {\n templateRef;\n /** @internal */\n iterableDiffers = inject(IterableDiffers);\n /** @internal */\n cdRef = inject(ChangeDetectorRef);\n /** @internal */\n ngZone = inject(NgZone);\n /** @internal */\n injector = inject(Injector);\n /** @internal */\n viewContainerRef = inject(ViewContainerRef);\n /** @internal */\n strategyProvider = inject(RxStrategyProvider);\n /** @internal */\n errorHandler = inject(ErrorHandler);\n /** @internal */\n staticValue;\n /** @internal */\n renderStatic = false;\n /**\n * @description\n * The iterable input\n *\n * @example\n * <ng-container *rxFor=\"heroes$; let hero\">\n * <app-hero [hero]=\"hero\"></app-hero>\n * </ng-container>\n *\n * @param { Observable<(U & NgIterable<T>) | undefined | null>\n * | Signal<(U & NgIterable<T>) | undefined | null>\n * | (U & NgIterable<T>)\n * | null\n * | undefined } potentialSignalOrObservable\n */\n set rxForOf(potentialSignalOrObservable) {\n if (isSignal(potentialSignalOrObservable)) {\n this.staticValue = undefined;\n this.renderStatic = false;\n this.observables$.next(toObservable(potentialSignalOrObservable, {\n injector: this.injector\n }));\n } else if (!isObservable(potentialSignalOrObservable)) {\n this.staticValue = potentialSignalOrObservable;\n this.renderStatic = true;\n } else {\n this.staticValue = undefined;\n this.renderStatic = false;\n this.observables$.next(potentialSignalOrObservable);\n }\n }\n /**\n * @internal\n * A reference to the template that is created for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n * (inspired by @angular/common `ng_for_of.ts`)\n */\n _template;\n set rxForTemplate(value) {\n this._template = value;\n }\n /**\n * @description\n *\n * You can change the used `RenderStrategy` by using the `strategy` input of the `*rxFor`. It accepts\n * an `Observable<RxStrategyNames>` or [`RxStrategyNames`](https://github.com/rx-angular/rx-angular/blob/b0630f69017cc1871d093e976006066d5f2005b9/libs/cdk/render-strategies/src/lib/model.ts#L52).\n *\n * The default value for strategy is\n * [`normal`](https://www.rx-angular.io/docs/template/cdk/render-strategies/strategies/concurrent-strategies).\n *\n * Read more about this in the\n * [official docs](https://www.rx-angular.io/docs/template/api/rx-for-directive#use-render-strategies-strategy).\n *\n * @example\n *\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * <ng-container *rxFor=\"let hero of heroes$; strategy: strategy\">\n * <app-hero [hero]=\"hero\"></app-hero>\n * </ng-container>\n *\n * <ng-container *rxFor=\"let hero of heroes$; strategy: strategy$\">\n * <app-hero [hero]=\"hero\"></app-hero>\n * </ng-container>\n * `\n * })\n * export class AppComponent {\n * strategy = 'low';\n * strategy$ = of('immediate');\n * }\n *\n * @param {string | Observable<string> | undefined} strategyName\n * @see {@link strategies}\n */\n set rxForStrategy(strategyName) {\n this.strategyInput$.next(strategyName);\n }\n /**\n * @description\n *\n * When local rendering strategies are used, we need to treat view and content queries in a\n * special way.\n * To make `*rxFor` in such situations, a certain mechanism is implemented to\n * execute change detection on the parent (`parent`).\n *\n * This is required if your components state is dependent on its view or content children:\n *\n * - `@ViewChild`\n * - `@ViewChildren`\n * - `@ContentChild`\n * - `@ContentChildren`\n *\n * Read more about this in the\n * [official docs](https://www.rx-angular.io/docs/template/api/rx-for-directive#local-strategies-and-view-content-queries-parent).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * <app-list-component>\n * <app-list-item\n * *rxFor=\"\n * let item of items$;\n * trackBy: trackItem;\n * parent: true;\n * \"\n * >\n * <div>{{ item.name }}</div>\n * </app-list-item>\n * </app-list-component>\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * }\n *\n * @param {boolean} renderParent\n *\n * @deprecated this flag will be dropped soon, as it is no longer required when using signal based view & content queries\n */\n renderParent = this.strategyProvider.config.parent;\n /**\n * @description\n *\n * A flag to control whether *rxFor templates are created within `NgZone` or not.\n * The default value is `true, `*rxFor` will create it's `EmbeddedViews` inside `NgZone`.\n *\n * Event listeners normally trigger zone. Especially high frequently events cause performance issues.\n *\n * Read more about this in the\n * [official docs](https://www.rx-angular.io/docs/template/api/rx-for-directive#working-with-event-listeners-patchzone).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * <app-list-component>\n * <app-list-item\n * *rxFor=\"\n * let item of items$;\n * trackBy: trackItem;\n * patchZone: false;\n * \"\n * >\n * <div>{{ item.name }}</div>\n * </app-list-item>\n * </app-list-component>\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * }\n *\n * @param {boolean} patchZone\n */\n patchZone = this.strategyProvider.config.patchZone;\n /**\n * @description\n * A function or key that defines how to track changes for items in the iterable.\n *\n * When items are added, moved, or removed in the iterable,\n * the directive must re-render the appropriate DOM nodes.\n * To minimize churn in the DOM, only nodes that have changed\n * are re-rendered.\n *\n * By default, rxFor assumes that the object instance identifies the node in the iterable (equality check `===`).\n * When a function or key is supplied, rxFor uses the result to identify the item node.\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * <app-list-component>\n * <app-list-item\n * *rxFor=\"\n * let item of items$;\n * trackBy: 'id';\n * \"\n * >\n * <div>{{ item.name }}</div>\n * </app-list-item>\n * </app-list-component>\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * }\n *\n * // OR\n *\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * <app-list-component>\n * <app-list-item\n * *rxFor=\"\n * let item of items$;\n * trackBy: trackItem;\n * \"\n * >\n * <div>{{ item.name }}</div>\n * </app-list-item>\n * </app-list-component>\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * trackItem = (idx, item) => item.id;\n * }\n *\n * @param trackByFnOrKey\n */\n set trackBy(trackByFnOrKey) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && trackByFnOrKey != null && typeof trackByFnOrKey !== 'string' && typeof trackByFnOrKey !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(trackByFnOrKey)}.`);\n }\n if (trackByFnOrKey == null) {\n this._trackBy = null;\n } else {\n this._trackBy = typeof trackByFnOrKey !== 'function' ? (i, a) => a[trackByFnOrKey] : trackByFnOrKey;\n }\n }\n /**\n * @description\n * A `Subject` which emits whenever *rxFor finished rendering a set changes to the view.\n * This enables developers to perform actions when a list has finished rendering.\n * The `renderCallback` is useful in situations where you rely on specific DOM properties like the `height` a\n * table after all items got rendered.\n * It is also possible to use the renderCallback in order to determine if a view should be visible or not. This\n * way developers can hide a list as long as it has not finished rendering.\n *\n * The result of the `renderCallback` will contain the currently rendered set of items in the iterable.\n *\n * @example\n * \\Component({\n * selector: 'app-root',\n * template: `\n * <app-list-component>\n * <app-list-item\n * *rxFor=\"\n * let item of items$;\n * trackBy: trackItem;\n * renderCallback: itemsRendered;\n * \">\n * <div>{{ item.name }}</div>\n * </app-list-item>\n * </app-list-component>\n * `\n * })\n * export class AppComponent {\n * items$: Observable<Item[]> = itemService.getItems();\n * trackItem = (idx, item) => item.id;\n * // this emits whenever rxFor finished rendering changes\n * itemsRendered = new Subject<Item[]>();\n *\n * constructor(elementRef: ElementRef<HTMLElement>) {\n * itemsRendered.subscribe(() => {\n * // items are rendered, we can now scroll\n * elementRef.scrollTo({bottom: 0});\n * })\n * }\n * }\n *\n * @param {Subject<U>} renderCallback\n */\n set renderCallback(renderCallback) {\n this._renderCallback = renderCallback;\n }\n get template() {\n return this._template || this.templateRef;\n }\n /** @internal */\n strategyInput$ = new ReplaySubject(1);\n /** @internal */\n observables$ = new ReplaySubject(1);\n /** @internal */\n _renderCallback;\n /** @internal */\n values$ = this.observables$.pipe(coerceObservableWith(), switchAll(), shareReplay({\n refCount: true,\n bufferSize: 1\n }));\n /** @internal */\n values = null;\n /** @internal */\n strategy$ = this.strategyInput$.pipe(coerceDistinctWith());\n /** @internal */\n listManager;\n /** @internal */\n _subscription = new Subscription();\n /** @internal */\n _trackBy;\n /** @internal */\n _distinctBy = (a, b) => a === b;\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n /** @internal */\n ngOnInit() {\n this._subscription.add(this.values$.subscribe(v => this.values = v));\n this.listManager = createListTemplateManager({\n iterableDiffers: this.iterableDiffers,\n renderSettings: {\n cdRef: this.cdRef,\n strategies: this.strategyProvider.strategies,\n // TODO: move strategyProvider\n defaultStrategyName: this.strategyProvider.primaryStrategy,\n parent: !!this.renderParent,\n patchZone: this.patchZone ? this.ngZone : false,\n errorHandler: this.errorHandler\n },\n templateSettings: {\n viewContainerRef: this.viewContainerRef,\n templateRef: this.template,\n createViewContext: this.createViewContext.bind(this),\n updateViewContext: this.updateViewContext.bind(this)\n },\n trackBy: this._trackBy\n });\n this.listManager.nextStrategy(this.strategy$);\n this._subscription.add(this.listManager.render(this.values$).subscribe(v => this._renderCallback?.next(v)));\n }\n /** @internal */\n createViewContext(item, computedContext) {\n return new RxForViewContext(item, this.values, computedContext);\n }\n /** @internal */\n updateViewContext(item, view, computedContext) {\n view.context.updateContext(computedContext);\n view.context.rxForOf = this.values;\n view.context.$implicit = item;\n }\n /** @internal */\n ngDoCheck() {\n if (this.renderStatic) {\n this.observables$.next(this.staticValue);\n }\n }\n /** @internal */\n ngOnDestroy() {\n this._subscription.unsubscribe();\n this.viewContainerRef.clear();\n }\n /** @internal */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n /** @nocollapse */\n static ɵfac = function RxFor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxFor)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n /** @nocollapse */\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RxFor,\n selectors: [[\"\", \"rxFor\", \"\", \"rxForOf\", \"\"]],\n inputs: {\n rxForOf: \"rxForOf\",\n rxForTemplate: \"rxForTemplate\",\n rxForStrategy: \"rxForStrategy\",\n renderParent: [0, \"rxForParent\", \"renderParent\"],\n patchZone: [0, \"rxForPatchZone\", \"patchZone\"],\n trackBy: [0, \"rxForTrackBy\", \"trackBy\"],\n renderCallback: [0, \"rxForRenderCallback\", \"renderCallback\"]\n },\n standalone: true\n });\n }\n return RxFor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxFor, RxForViewContext };\n","/**\n * @license Angular v18.2.6\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nlet InjectableAnimationEngine = /*#__PURE__*/(() => {\n class InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static {\n this.ɵfac = function InjectableAnimationEngine_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n }\n return InjectableAnimationEngine;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: ɵAnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: ɵAnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useFactory: () => new ɵWebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nlet BrowserAnimationsModule = /*#__PURE__*/(() => {\n class BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static {\n this.ɵfac = function BrowserAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return BrowserAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nlet NoopAnimationsModule = /*#__PURE__*/(() => {\n class NoopAnimationsModule {\n static {\n this.ɵfac = function NoopAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoopAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return NoopAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { Injectable } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ClientConfigProductName, ContentService, HtmlNode, Page, StylesService, WebpackManifestService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { StyleOptions } from './loaders.client-config';\n\n/**\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderStylesService {\n constructor(\n private webpackManifestService: WebpackManifestService,\n private page: Page,\n private stylesService: StylesService,\n private contentService: ContentService,\n private htmlNode: HtmlNode,\n ) {}\n\n async loadStyles(styles?: StyleOptions[]) {\n if (!styles) return;\n for await (const style of styles) {\n if (style.htmlCssClass) {\n this.htmlNode.setCssClass(style.htmlCssClass, true);\n }\n switch (style.type) {\n case 'url':\n await this.stylesService.loadStyle({ url: style.id, lazyLoad: 'Important' });\n break;\n case 'theme':\n let filename = this.getNewThemeFilename(style.id);\n let themesCssPath = await this.webpackManifestService.getEntry(filename);\n if (!themesCssPath) {\n filename = this.getOldThemeFilename(style.id);\n themesCssPath = await this.webpackManifestService.getEntry(filename);\n }\n if (themesCssPath) {\n await this.stylesService.loadStyle({ url: themesCssPath, lazyLoad: 'Important' });\n }\n break;\n case 'content':\n const path = `App-v1.0/LazyStyles/${style.id}`;\n const file = await firstValueFrom(this.contentService.getJson(path, { product: ClientConfigProductName.SF }));\n await this.stylesService.add(style.id, file.content);\n break;\n }\n }\n }\n //todo: remove when everyone migrated to esbuild\n private getOldThemeFilename(entry: string) {\n return `themes-${this.page.theme}-${entry}.css`;\n }\n\n private getNewThemeFilename(entry: string) {\n return `${this.page.theme}/themes-${this.page.theme}-${entry}.css`;\n }\n}\n","// noinspection SpellCheckingInspection\nimport { Injectable, InjectionToken, Injector } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n DslEnvService,\n EVENT_PROCESSOR,\n EventContext,\n FEATURE_INIT_PROVIDER,\n LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER,\n LAZY_DSL_VALUES_PROVIDER,\n Logger,\n} from '@frontend/vanilla/core';\n\n/**\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ModuleService {\n constructor(\n private dslEnvService: DslEnvService,\n private log: Logger,\n ) {}\n\n getProviders<T>(injector: Injector, token: InjectionToken<T>, notFoundValue?: T[]): T[] {\n try {\n return injector.get<T[]>(token, notFoundValue);\n } catch (e) {\n this.log.info('getProviders<T> failed for injector with token', injector, token, e);\n return [];\n }\n }\n\n getProvider<T>(injector: Injector, token: InjectionToken<T>, notFoundValue?: T): T | null {\n try {\n return injector.get(token, notFoundValue);\n } catch (e) {\n this.log.info('getProvider failed with token', injector, token, e);\n return null;\n }\n }\n\n runBootstrappers(injector: Injector) {\n try {\n const bootstrappers = this.getProviders(injector, FEATURE_INIT_PROVIDER, []);\n\n for (const bootstrapper of bootstrappers) {\n bootstrapper.onFeatureInit();\n }\n } catch (e) {\n this.log.error('runBootstrappers failed for injector', injector, e);\n }\n }\n\n runEventProcessors(injector: Injector, context: EventContext<any>) {\n try {\n const eventProcessors = this.getProviders(injector, EVENT_PROCESSOR, []);\n\n for (const eventProcessor of eventProcessors) {\n eventProcessor.process(context);\n }\n } catch (e) {\n this.log.error('runEventHandlers failed with context', injector, context, e);\n }\n }\n\n runDslProviders(injector: Injector) {\n try {\n const dslProviders = this.getProvider(injector, LAZY_DSL_VALUES_PROVIDER, null);\n\n if (dslProviders?.length) {\n this.dslEnvService.addToContext([...dslProviders]);\n }\n } catch (e) {\n this.log.error('runDslProviders failed', injector, e);\n }\n }\n\n runLaunchDarklyContextProvider(injector: Injector) {\n try {\n const contextProvider = this.getProvider(injector, LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER, null);\n\n if (contextProvider) {\n contextProvider.reloadContext();\n }\n } catch (e) {\n this.log.error('runLaunchDarklyContextProvider failed', injector, e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ClientConfigProductName, EventContext, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\nexport interface LoadOptions {\n /** The unique id of the loader. If provided, loader with provided id will be used */\n id?: string;\n enabled: string;\n strategy: string;\n delay: number;\n styles?: StyleOptions[];\n events?: { [key: string]: string[] };\n eventContext?: EventContext<any>;\n}\n\nexport interface StyleOptions {\n /** The unique id of the chunk */\n id: string;\n /** The chunk type. theme will be looked in manifest.json, url represents any external file that will be loaded, content will be added as <style id=\"id\">data</style> */\n type: 'theme' | 'url' | 'content';\n /** When specified, indicates the css class added to html node */\n htmlCssClass?: string;\n}\n\n@LazyClientConfig({ key: 'vnLazyFeatures', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: loadersConfigFactory,\n deps: [LazyClientConfigService],\n})\nexport class LoadersConfig extends LazyClientConfigBase {\n rules: { [id: string]: LoadOptions };\n}\n\nexport function loadersConfigFactory(service: LazyClientConfigService) {\n return service.get(LoadersConfig);\n}\n","import { InjectionToken, Injector, Provider } from '@angular/core';\n\nimport { LoadOptions, StyleOptions } from './loaders.client-config';\n\n/**\n * Token used to provide your loader function.\n *\n * @experimental\n */\nexport const LOADER_FN_TOKEN = new InjectionToken<LoaderFnConfig[]>('vn-loader-fn');\n\nexport interface LoaderFnConfig {\n id: string;\n loaderFn: () => Promise<any>;\n additionalStylesFn?: (injector: Injector) => StyleOptions[] | undefined;\n product?: string;\n}\n\n/**\n * @whatItDoes Registers loader functions.\n *\n * @stable\n */\nexport function registerLoaderFn(config: LoaderFnConfig): Provider {\n return [\n {\n provide: LOADER_FN_TOKEN,\n multi: true,\n useValue: config,\n },\n ];\n}\n\nexport enum LoadState {\n Created = 'created',\n Scheduled = 'scheduled',\n Enabled = 'enabled',\n Loaded = 'loaded',\n}\n\nexport interface LoaderLoadOptions {\n id: string;\n loaderFn?: () => Promise<any>;\n additionalStylesFn?: ((injector: Injector) => StyleOptions[] | undefined) | undefined;\n product?: string | undefined;\n state: LoadState;\n options: LoadOptions;\n}\n\nexport enum LoadStrategy {\n /** represents a strategy that is always fired first. triggered only once */\n Preload = 'preload',\n /** represents a strategy that is used when user just logged in (client side login). triggered only once */\n JustLoggedIn = 'just-loggedin',\n /** represents a strategy that is used when user was already logged in on server side. triggered only once */\n AlreadyLoggedIn = 'already-loggedin',\n /** union of just and already logged in. triggered only once */\n LoggedIn = 'loggedin',\n /** represents a strategy that is used document ready state is complete (similar to onload document event) . triggered only once*/\n Complete = 'complete',\n /** represents a strategy that is triggered on CCB, rtms or vanilla event. triggered multiple times */\n Event = 'event',\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Injector, inject } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n DslEnvService,\n DslService,\n EventContext,\n EventType,\n EventsService,\n Logger,\n NativeAppService,\n NativeEvent,\n NativeEventType,\n ProductService,\n RtmsMessage,\n RtmsService,\n SimpleEvent,\n UserEvent,\n UserLogoutEvent,\n UserPreHooksLoginEvent,\n UserService,\n VanillaEventNames,\n WebWorkerService,\n WindowEvent,\n} from '@frontend/vanilla/core';\nimport { Subject, first } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\n\nimport { LoaderStylesService } from './loader-styles.service';\nimport { LoadOptions, LoadersConfig, StyleOptions } from './loaders.client-config';\nimport { LOADER_FN_TOKEN, LoadState, LoadStrategy, LoaderFnConfig, LoaderLoadOptions } from './loaders.models';\nimport { ModuleService } from './module.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LoaderService {\n readonly loadDispatcher = new Subject<LoaderLoadOptions>();\n\n private readonly STYLES_LOADER_ID = 'styles';\n private readonly allLoaders: LoaderLoadOptions[] = [];\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n @Inject(LOADER_FN_TOKEN) private registeredLoaderFns: LoaderFnConfig[],\n private config: LoadersConfig,\n private dslService: DslService,\n private dslEnvService: DslEnvService,\n private user: UserService,\n private webWorkerService: WebWorkerService,\n private nativeAppService: NativeAppService,\n private logger: Logger,\n private rtmsService: RtmsService,\n private eventsService: EventsService,\n private moduleService: ModuleService,\n private nativeApp: NativeAppService,\n private loadStylesService: LoaderStylesService,\n private productService: ProductService,\n ) {}\n\n init() {\n this.initLoaders();\n\n this.loadDispatcher.subscribe((options: LoaderLoadOptions) => this.load(options));\n\n // start just logged-in strategy when user logs in (only once)\n this.user.events.pipe(first((e: UserEvent) => e instanceof UserPreHooksLoginEvent)).subscribe(() => {\n this.start(LoadStrategy.JustLoggedIn);\n this.start(LoadStrategy.LoggedIn);\n });\n this.user.events.pipe(first((e: UserEvent) => e instanceof UserLogoutEvent)).subscribe(() => {\n this.reset([LoadStrategy.JustLoggedIn, LoadStrategy.LoggedIn]);\n });\n\n // re-evaluate DSL conditions on any DSL or Product change\n this.dslEnvService.change.pipe(debounceTime(100)).subscribe(() => {\n this.restart();\n });\n\n this.productService.productChanged.subscribe(() => {\n this.restart();\n });\n\n // Vanilla events\n this.eventsService.events.subscribe((e: SimpleEvent) => {\n const event: EventContext<any> = { name: e.eventName, type: EventType.Vanilla, data: e.data };\n this.startEventStrategy(event);\n });\n\n // RTMS events\n this.rtmsService.messages.subscribe((e: RtmsMessage) => {\n const event: EventContext<any> = { name: e.type, type: EventType.Rtms, data: e.payload };\n this.startEventStrategy(event);\n });\n\n // Native events\n this.nativeAppService.eventsFromNative.subscribe((e: NativeEvent) => {\n const event: EventContext<any> = { name: e.eventName, type: EventType.Native, data: e.parameters };\n this.startEventStrategy(event);\n });\n\n // preload always first\n this.start(LoadStrategy.Preload);\n\n // then loggedin, if authenticated\n if (this.user.isAuthenticated) {\n this.start(LoadStrategy.AlreadyLoggedIn);\n this.start(LoadStrategy.LoggedIn);\n }\n\n // then complete\n this._doc.addEventListener(WindowEvent.ReadyStateChange, () => this.runOnlyCompleteStrategy());\n this.runOnlyCompleteStrategy();\n }\n\n async loadFeature(featureId: string, featureImport: Promise<any>, options: LoadOptions, additionalStyles?: StyleOptions[]) {\n const styles = this.mergeStyles(options.styles, additionalStyles);\n\n await Promise.all([\n featureImport.then((feature: any) => {\n const featureInjector = Injector.create({\n providers: feature.provide(),\n parent: this.getInjector(),\n });\n\n this.moduleService.runBootstrappers(featureInjector);\n this.moduleService.runDslProviders(featureInjector);\n this.moduleService.runLaunchDarklyContextProvider(featureInjector);\n\n if (options.eventContext) {\n this.moduleService.runEventProcessors(featureInjector, options.eventContext);\n }\n\n this.nativeApp.sendToNative({\n eventName: NativeEventType.FEATURE_LOADED,\n parameters: { featureId },\n });\n }),\n\n this.loadStylesService.loadStyles(styles),\n ]);\n }\n\n private runOnlyCompleteStrategy() {\n const strategy = this._doc.readyState;\n\n if (strategy === LoadStrategy.Complete) {\n this.start(strategy);\n }\n }\n\n private start(strategy: string) {\n const loaders = this.allLoaders.filter((l: LoaderLoadOptions) => l.options.strategy === strategy && l.state === LoadState.Created);\n for (const item of loaders) {\n item.state = LoadState.Scheduled;\n }\n if (loaders?.length > 0) {\n this.logger.info(`Scheduled ${loaders?.length} loader(s) with ${strategy} strategy.`);\n }\n\n this.evaluate(loaders);\n }\n\n private reset(strategies: string[]) {\n const loaders = this.allLoaders.filter((l: LoaderLoadOptions) => strategies.includes(l.options.strategy));\n\n for (const item of loaders) {\n item.state = LoadState.Created;\n }\n\n if (loaders?.length > 0) {\n this.logger.info(`${loaders?.length} loader(s) resetted after logout for strategies ${strategies.join('|')}.`);\n }\n }\n\n private startEventStrategy(event: EventContext<any>) {\n const loaders = this.allLoaders.filter(\n (l: LoaderLoadOptions) => l.options.strategy == LoadStrategy.Event && l.options.events?.[event.type]?.includes(event.name),\n );\n\n if (loaders?.length > 0) {\n this.logger.info(`Found ${loaders?.length} event handler(s) for event.`, loaders, event);\n }\n\n loaders.forEach((loader: LoaderLoadOptions) => this.load(loader, event));\n }\n\n private restart() {\n const scheduled = this.allLoaders.filter(\n (l: LoaderLoadOptions) =>\n l.state === LoadState.Scheduled &&\n ![LoadStrategy.JustLoggedIn.toString(), LoadStrategy.LoggedIn.toString()].includes(l.options.strategy),\n );\n this.evaluate(scheduled);\n }\n\n private initLoaders() {\n for (const ruleId of Object.keys(this.config.rules)) {\n const loaderId = this.config.rules[ruleId]?.id ?? ruleId;\n const options = this.config.rules[ruleId]!;\n\n // styles are a special case\n if (loaderId === this.STYLES_LOADER_ID) {\n this.loadStylesService.loadStyles(options.styles).then();\n continue;\n }\n\n const loaderFnConfig = this.registeredLoaderFns.find((l: LoaderFnConfig) => l.id === loaderId);\n\n if (loaderFnConfig) {\n this.allLoaders.push({\n id: loaderId,\n loaderFn: loaderFnConfig.loaderFn,\n state: LoadState.Created,\n options,\n additionalStylesFn: loaderFnConfig.additionalStylesFn,\n product: loaderFnConfig.product,\n });\n }\n }\n }\n\n private evaluate(loaders: LoaderLoadOptions[]) {\n for (const loader of loaders) {\n this.dslService\n .evaluateExpression<boolean>(loader.options.enabled)\n .pipe(\n first(),\n map((enabled) => enabled && this.checkLoaderEnabledForProduct(loader)),\n )\n .subscribe((enabled: boolean) => {\n if (enabled) {\n if (loader.state == LoadState.Scheduled) {\n loader.state = LoadState.Enabled;\n this.loadDispatcher.next(loader);\n }\n }\n this.eventsService.raise({ eventName: VanillaEventNames.FeatureEnabledStatus, data: { id: loader.id, enabled } });\n });\n }\n }\n\n private checkLoaderEnabledForProduct(loader: LoaderLoadOptions): boolean {\n return !this.productService.isSingleDomainApp || !loader.product || loader.product === this.productService.current.name;\n }\n\n private load(item: LoaderLoadOptions, eventContext?: EventContext<any>) {\n if (!this.checkLoaderEnabledForProduct(item)) {\n return;\n }\n\n try {\n const options: LoadOptions = {\n ...item.options,\n };\n\n if (eventContext) {\n options.eventContext = eventContext;\n }\n\n if (options.delay) {\n this.webWorkerService.createWorker(item.id, { timeout: options.delay }, () => {\n this.runLoader(item, options);\n this.webWorkerService.removeWorker(item.id);\n });\n } else {\n this.runLoader(item, options);\n }\n } catch (error) {\n this.logger.errorRemote(`Failed to load ${item.id} feature`, error);\n }\n\n this.logger.info('Loaded:', item);\n }\n\n private runLoader(item: LoaderLoadOptions, options: LoadOptions) {\n if (item.loaderFn) {\n const additionalStyles = this.getAdditionalStyles(item);\n this.loadFeature(item.id, item.loaderFn(), options, additionalStyles);\n }\n\n item.state = LoadState.Loaded;\n }\n\n private getAdditionalStyles(item: LoaderLoadOptions): StyleOptions[] | undefined {\n if (!item.additionalStylesFn) {\n return undefined;\n }\n\n const injector = this.getInjector();\n\n return item.additionalStylesFn(injector);\n }\n\n private mergeStyles(optionStyles: StyleOptions[] | undefined, additionalStyles: StyleOptions[] | undefined): StyleOptions[] | undefined {\n if (optionStyles && !additionalStyles) {\n return optionStyles;\n }\n\n if (additionalStyles && !optionStyles) {\n return additionalStyles;\n }\n\n return optionStyles && additionalStyles ? [...optionStyles, ...additionalStyles] : undefined;\n }\n\n private getInjector(): Injector {\n return this.productService.current.injector;\n }\n}\n","import { Injectable } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { LoaderService } from './loader.service';\nimport { LoadersConfig } from './loaders.client-config';\n\n@Injectable()\nexport class LoadersBootstrapService implements OnAppInit {\n constructor(\n private config: LoadersConfig,\n private loaderService: LoaderService,\n ) {}\n\n async onAppInit() {\n await firstValueFrom(this.config.whenReady);\n this.loaderService.init();\n }\n}\n","export const VANILLA_LOADERS_MAP: { [key: string]: () => Promise<any> } = {\n 'abuser-information': () => import('@frontend/vanilla/features/abuser-information'),\n 'account-menu': () => import('@frontend/vanilla/features/account-menu'),\n 'activity-popup': () => import('@frontend/vanilla/features/activity-popup'),\n 'affordability': () => import('@frontend/vanilla/features/affordability'),\n 'balance-breakdown': () => import('@frontend/vanilla/features/balance-breakdown'),\n 'balance-properties': () => import('@frontend/vanilla/features/balance-properties'),\n 'balance-refresh': () => import('@frontend/vanilla/features/balance-refresh'),\n 'balance-transfer': () => import('@frontend/vanilla/features/balance-transfer'),\n 'barcode-scanner': () => import('@frontend/vanilla/features/barcode-scanner'),\n 'betstation-hardware-fault': () => import('@frontend/vanilla/features/betstation-hardware-fault'),\n 'betting-status': () => import('@frontend/vanilla/features/betting-status'),\n 'bonus-award': () => import('@frontend/vanilla/features/bonus-award'),\n 'bonus-balance': () => import('@frontend/vanilla/features/bonus-balance'),\n 'bottom-nav': () => import('@frontend/vanilla/features/bottom-nav'),\n 'bottom-sheet': () => import('@frontend/vanilla/features/bottom-sheet'),\n 'cashier': () => import('@frontend/vanilla/features/cashier'),\n 'clock': () => import('@frontend/vanilla/features/clock'),\n 'connected-accounts': () => import('@frontend/vanilla/features/connected-accounts'),\n 'content': () => import('@frontend/vanilla/features/content'),\n 'content-messages': () => import('@frontend/vanilla/features/content-messages'),\n 'cookie-banner': () => import('@frontend/vanilla/features/cookie-banner'),\n 'cookie-consent': () => import('@frontend/vanilla/features/cookie-consent'),\n 'css-overrides': () => import('@frontend/vanilla/features/css-overrides'),\n 'curfew-status': () => import('@frontend/vanilla/features/curfew-status'),\n 'debounce-buttons': () => import('@frontend/vanilla/features/debounce-buttons'),\n 'deposit-limit-exceeded': () => import('@frontend/vanilla/features/deposit-limit-exceeded'),\n 'deposit-limits': () => import('@frontend/vanilla/features/deposit-limits'),\n 'deposit-prompt': () => import('@frontend/vanilla/features/deposit-prompt'),\n 'deposit-session': () => import('@frontend/vanilla/features/deposit-session'),\n 'dialog': () => import('@frontend/vanilla/features/dialog'),\n 'document-upload-status': () => import('@frontend/vanilla/features/document-upload-status'),\n 'domain-specific-actions': () => import('@frontend/vanilla/features/domain-specific-actions'),\n 'dropdown-header': () => import('@frontend/vanilla/features/dropdown-header'),\n 'footer': () => import('@frontend/vanilla/features/footer'),\n 'gamification': () => import('@frontend/vanilla/features/gamification'),\n 'geolocation': () => import('@frontend/vanilla/features/geolocation'),\n 'header': () => import('@frontend/vanilla/features/header'),\n 'header-bar': () => import('@frontend/vanilla/features/header-bar'),\n 'hint': () => import('@frontend/vanilla/features/hint'),\n 'html': () => import('@frontend/vanilla/features/html'),\n 'icons': () => import('@frontend/vanilla/features/icons'),\n 'inactive': () => import('@frontend/vanilla/features/inactive'),\n 'inactivity-screen': () => import('@frontend/vanilla/features/inactivity-screen'),\n 'inbox': () => import('@frontend/vanilla/features/inbox'),\n 'jackpot-winner': () => import('@frontend/vanilla/features/jackpot-winner'),\n 'kyc': () => import('@frontend/vanilla/features/kyc'),\n 'label-switcher': () => import('@frontend/vanilla/features/label-switcher'),\n 'language-switcher': () => import('@frontend/vanilla/features/language-switcher'),\n 'last-session-info': () => import('@frontend/vanilla/features/last-session-info'),\n 'launch-darkly': () => import('@frontend/vanilla/features/launch-darkly'),\n 'license-info': () => import('@frontend/vanilla/features/license-info'),\n 'live-person': () => import('@frontend/vanilla/features/live-person'),\n 'login': () => import('@frontend/vanilla/features/login'),\n 'login-duration': () => import('@frontend/vanilla/features/login-duration'),\n 'login-new': () => import('@frontend/vanilla/features/login-new'),\n 'logout': () => import('@frontend/vanilla/features/logout'),\n 'loss-limits': () => import('@frontend/vanilla/features/loss-limits'),\n 'loyality-profile': () => import('@frontend/vanilla/features/loyality-profile'),\n 'meta-tags': () => import('@frontend/vanilla/features/meta-tags'),\n 'moh-details': () => import('@frontend/vanilla/features/moh-details'),\n 'native-app': () => import('@frontend/vanilla/features/native-app'),\n 'navigation-layout': () => import('@frontend/vanilla/features/navigation-layout'),\n 'offer-button': () => import('@frontend/vanilla/features/offer-button'),\n 'offer-dsl': () => import('@frontend/vanilla/features/offer-dsl'),\n 'offers': () => import('@frontend/vanilla/features/offers'),\n 'offline': () => import('@frontend/vanilla/features/offline'),\n 'offline-page': () => import('@frontend/vanilla/features/offline-page'),\n 'overlay': () => import('@frontend/vanilla/features/overlay'),\n 'overlay-messages': () => import('@frontend/vanilla/features/overlay-messages'),\n 'play-break': () => import('@frontend/vanilla/features/play-break'),\n 'player-active-wager': () => import('@frontend/vanilla/features/player-active-wager'),\n 'player-attributes': () => import('@frontend/vanilla/features/player-attributes'),\n 'player-gaming-declaration': () => import('@frontend/vanilla/features/player-gaming-declaration'),\n 'player-limits': () => import('@frontend/vanilla/features/player-limits'),\n 'prerender': () => import('@frontend/vanilla/features/prerender'),\n 'product-menu': () => import('@frontend/vanilla/features/product-menu'),\n 'product-switch-cool-off': () => import('@frontend/vanilla/features/product-switch-cool-off'),\n 'range-datepicker': () => import('@frontend/vanilla/features/range-datepicker'),\n 're-captcha': () => import('@frontend/vanilla/features/recaptcha'),\n 'redirect-message': () => import('@frontend/vanilla/features/redirect-message'),\n 'referred-friends': () => import('@frontend/vanilla/features/referred-friends'),\n 'remember-me-logout-prompt': () => import('@frontend/vanilla/features/remember-me-logout-prompt'),\n 'registration': () => import('@frontend/vanilla/features/registration'),\n 'rtms-events': () => import('@frontend/vanilla/features/rtms-events'),\n 'rtms-layer': () => import('@frontend/vanilla/features/rtms-layer'),\n 'rtms-overlay': () => import('@frontend/vanilla/features/rtms-overlay'),\n 'screen-time': () => import('@frontend/vanilla/features/screen-time'),\n 'self-exclusion': () => import('@frontend/vanilla/features/self-exclusion'),\n 'session-fund-summary': () => import('@frontend/vanilla/features/session-fund-summary'),\n 'session-info': () => import('@frontend/vanilla/features/session-info'),\n 'session-lifetime-check': () => import('@frontend/vanilla/features/session-lifetime-check'),\n 'session-limits': () => import('@frontend/vanilla/features/session-limits'),\n 'session-limits-logout-popup': () => import('@frontend/vanilla/features/session-limits-logout-popup'),\n 'single-sign-on': () => import('@frontend/vanilla/features/single-sign-on'),\n 'smart-banner': () => import('@frontend/vanilla/features/smart-banner'),\n 'sof-status-details': () => import('@frontend/vanilla/features/sof-status-details'),\n 'terminal-session': () => import('@frontend/vanilla/features/terminal-session'),\n 'third-party-tracker': () => import('@frontend/vanilla/features/third-party-tracker'),\n 'top-messages': () => import('@frontend/vanilla/features/top-messages'),\n 'tourney-token-balance': () => import('@frontend/vanilla/features/tourney-token-balance'),\n // eslint-disable-next-line @nx/enforce-module-boundaries\n 'tracking': () => import('@frontend/vanilla/features/tracking'),\n 'untested-browser': () => import('@frontend/vanilla/features/untested-browser'),\n 'user-documents': () => import('@frontend/vanilla/features/user-documents'),\n 'user-flags': () => import('@frontend/vanilla/features/user-flags'),\n 'user-scrub': () => import('@frontend/vanilla/features/user-scrub'),\n 'user-summary': () => import('@frontend/vanilla/features/user-summary'),\n 'value-ticket': () => import('@frontend/vanilla/features/value-ticket'),\n 'zendesk': () => import('@frontend/vanilla/features/zendesk'),\n 'speculation': () => import('@frontend/vanilla/features/speculation'),\n};\n","import { Provider } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { runOnAppInit } from '@frontend/vanilla/core';\n\nimport { LoadersBootstrapService } from './loaders-bootstrap.service';\nimport { VANILLA_LOADERS_MAP } from './loaders-map';\nimport { registerLoaderFn } from './loaders.models';\n\n/**\n * Provides providers of loaders package.\n *\n * @stable\n */\nexport function provideLoaders(): Provider[] {\n const vanillaLoadersFns = Object.keys(VANILLA_LOADERS_MAP).map((id: string) => registerLoaderFn({ id, loaderFn: VANILLA_LOADERS_MAP[id]! }));\n\n return [...vanillaLoadersFns, runOnAppInit(LoadersBootstrapService)];\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, computed, isDevMode, inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, NgModule, Optional } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, queueScheduler } from 'rxjs';\nimport { observeOn, withLatestFrom, scan, pluck, map, distinctUntilChanged } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nconst REGISTERED_ACTION_TYPES = {};\nfunction resetRegisteredActionTypes() {\n for (const key of Object.keys(REGISTERED_ACTION_TYPES)) {\n delete REGISTERED_ACTION_TYPES[key];\n }\n}\n\n/**\n * @description\n * Creates a configured `Creator` function that, when called, returns an object in the shape of the `Action` interface.\n *\n * Action creators reduce the explicitness of class-based action creators.\n *\n * @param type Describes the action that will be dispatched\n * @param config Additional metadata needed for the handling of the action. See {@link createAction#usage-notes Usage Notes}.\n *\n * @usageNotes\n *\n * **Declaring an action creator**\n *\n * Without additional metadata:\n * ```ts\n * export const increment = createAction('[Counter] Increment');\n * ```\n * With additional metadata:\n * ```ts\n * export const loginSuccess = createAction(\n * '[Auth/API] Login Success',\n * props<{ user: User }>()\n * );\n * ```\n * With a function:\n * ```ts\n * export const loginSuccess = createAction(\n * '[Auth/API] Login Success',\n * (response: Response) => response.user\n * );\n * ```\n *\n * **Dispatching an action**\n *\n * Without additional metadata:\n * ```ts\n * store.dispatch(increment());\n * ```\n * With additional metadata:\n * ```ts\n * store.dispatch(loginSuccess({ user: newUser }));\n * ```\n *\n * **Referencing an action in a reducer**\n *\n * Using a switch statement:\n * ```ts\n * switch (action.type) {\n * // ...\n * case AuthApiActions.loginSuccess.type: {\n * return {\n * ...state,\n * user: action.user\n * };\n * }\n * }\n * ```\n * Using a reducer creator:\n * ```ts\n * on(AuthApiActions.loginSuccess, (state, { user }) => ({ ...state, user }))\n * ```\n *\n * **Referencing an action in an effect**\n * ```ts\n * effectName$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(AuthApiActions.loginSuccess),\n * // ...\n * )\n * );\n * ```\n */\nfunction createAction(type, config) {\n REGISTERED_ACTION_TYPES[type] = (REGISTERED_ACTION_TYPES[type] || 0) + 1;\n if (typeof config === 'function') {\n return defineType(type, (...args) => ({\n ...config(...args),\n type\n }));\n }\n const as = config ? config._as : 'empty';\n switch (as) {\n case 'empty':\n return defineType(type, () => ({\n type\n }));\n case 'props':\n return defineType(type, props => ({\n ...props,\n type\n }));\n default:\n throw new Error('Unexpected config.');\n }\n}\nfunction props() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return {\n _as: 'props',\n _p: undefined\n };\n}\nfunction union(creators) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return undefined;\n}\nfunction defineType(type, creator) {\n return Object.defineProperty(creator, 'type', {\n value: type,\n writable: false\n });\n}\nfunction capitalize(text) {\n return text.charAt(0).toUpperCase() + text.substring(1);\n}\nfunction uncapitalize(text) {\n return text.charAt(0).toLowerCase() + text.substring(1);\n}\n\n/**\n * @description\n * A function that creates a group of action creators with the same source.\n *\n * @param config An object that contains a source and dictionary of events.\n * An event is a key-value pair of an event name and event props.\n * @returns A dictionary of action creators.\n * The name of each action creator is created by camel casing the event name.\n * The type of each action is created using the \"[Source] Event Name\" pattern.\n *\n * @usageNotes\n *\n * ```ts\n * const authApiActions = createActionGroup({\n * source: 'Auth API',\n * events: {\n * // defining events with payload using the `props` function\n * 'Login Success': props<{ userId: number; token: string }>(),\n * 'Login Failure': props<{ error: string }>(),\n *\n * // defining an event without payload using the `emptyProps` function\n * 'Logout Success': emptyProps(),\n *\n * // defining an event with payload using the props factory\n * 'Logout Failure': (error: Error) => ({ error }),\n * },\n * });\n *\n * // action type: \"[Auth API] Login Success\"\n * authApiActions.loginSuccess({ userId: 10, token: 'ngrx' });\n *\n * // action type: \"[Auth API] Login Failure\"\n * authApiActions.loginFailure({ error: 'Login Failure!' });\n *\n * // action type: \"[Auth API] Logout Success\"\n * authApiActions.logoutSuccess();\n *\n * // action type: \"[Auth API] Logout Failure\";\n * authApiActions.logoutFailure(new Error('Logout Failure!'));\n * ```\n */\nfunction createActionGroup(config) {\n const {\n source,\n events\n } = config;\n return Object.keys(events).reduce((actionGroup, eventName) => ({\n ...actionGroup,\n [toActionName(eventName)]: createAction(toActionType(source, eventName), events[eventName])\n }), {});\n}\nfunction emptyProps() {\n return props();\n}\nfunction toActionName(eventName) {\n return eventName.trim().split(' ').map((word, i) => i === 0 ? uncapitalize(word) : capitalize(word)).join('');\n}\nfunction toActionType(source, eventName) {\n return `[${source}] ${eventName}`;\n}\nconst INIT = '@ngrx/store/init';\nlet ActionsSubject = /*#__PURE__*/(() => {\n class ActionsSubject extends BehaviorSubject {\n constructor() {\n super({\n type: INIT\n });\n }\n next(action) {\n if (typeof action === 'function') {\n throw new TypeError(`\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().`);\n } else if (typeof action === 'undefined') {\n throw new TypeError(`Actions must be objects`);\n } else if (typeof action.type === 'undefined') {\n throw new TypeError(`Actions must have a type property`);\n }\n super.next(action);\n }\n complete() {\n /* noop */\n }\n ngOnDestroy() {\n super.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function ActionsSubject_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ActionsSubject)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActionsSubject,\n factory: ActionsSubject.ɵfac\n });\n }\n }\n return ActionsSubject;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ACTIONS_SUBJECT_PROVIDERS = [ActionsSubject];\nconst _ROOT_STORE_GUARD = new InjectionToken('@ngrx/store Internal Root Guard');\nconst _INITIAL_STATE = new InjectionToken('@ngrx/store Internal Initial State');\nconst INITIAL_STATE = new InjectionToken('@ngrx/store Initial State');\nconst REDUCER_FACTORY = new InjectionToken('@ngrx/store Reducer Factory');\nconst _REDUCER_FACTORY = new InjectionToken('@ngrx/store Internal Reducer Factory Provider');\nconst INITIAL_REDUCERS = new InjectionToken('@ngrx/store Initial Reducers');\nconst _INITIAL_REDUCERS = new InjectionToken('@ngrx/store Internal Initial Reducers');\nconst STORE_FEATURES = new InjectionToken('@ngrx/store Store Features');\nconst _STORE_REDUCERS = new InjectionToken('@ngrx/store Internal Store Reducers');\nconst _FEATURE_REDUCERS = new InjectionToken('@ngrx/store Internal Feature Reducers');\nconst _FEATURE_CONFIGS = new InjectionToken('@ngrx/store Internal Feature Configs');\nconst _STORE_FEATURES = new InjectionToken('@ngrx/store Internal Store Features');\nconst _FEATURE_REDUCERS_TOKEN = new InjectionToken('@ngrx/store Internal Feature Reducers Token');\nconst FEATURE_REDUCERS = new InjectionToken('@ngrx/store Feature Reducers');\n/**\n * User-defined meta reducers from StoreModule.forRoot()\n */\nconst USER_PROVIDED_META_REDUCERS = new InjectionToken('@ngrx/store User Provided Meta Reducers');\n/**\n * Meta reducers defined either internally by @ngrx/store or by library authors\n */\nconst META_REDUCERS = new InjectionToken('@ngrx/store Meta Reducers');\n/**\n * Concats the user provided meta reducers and the meta reducers provided on the multi\n * injection token\n */\nconst _RESOLVED_META_REDUCERS = new InjectionToken('@ngrx/store Internal Resolved Meta Reducers');\n/**\n * Runtime checks defined by the user via an InjectionToken\n * Defaults to `_USER_RUNTIME_CHECKS`\n */\nconst USER_RUNTIME_CHECKS = new InjectionToken('@ngrx/store User Runtime Checks Config');\n/**\n * Runtime checks defined by the user via forRoot()\n */\nconst _USER_RUNTIME_CHECKS = new InjectionToken('@ngrx/store Internal User Runtime Checks Config');\n/**\n * Runtime checks currently in use\n */\nconst ACTIVE_RUNTIME_CHECKS = new InjectionToken('@ngrx/store Internal Runtime Checks');\nconst _ACTION_TYPE_UNIQUENESS_CHECK = new InjectionToken('@ngrx/store Check if Action types are unique');\n/**\n * InjectionToken that registers the global Store.\n * Mainly used to provide a hook that can be injected\n * to ensure the root state is loaded before something\n * that depends on it.\n */\nconst ROOT_STORE_PROVIDER = new InjectionToken('@ngrx/store Root Store Provider');\n/**\n * InjectionToken that registers feature states.\n * Mainly used to provide a hook that can be injected\n * to ensure feature state is loaded before something\n * that depends on it.\n */\nconst FEATURE_STATE_PROVIDER = new InjectionToken('@ngrx/store Feature State Provider');\n\n/**\n * @description\n * Combines reducers for individual features into a single reducer.\n *\n * You can use this function to delegate handling of state transitions to multiple reducers, each acting on their\n * own sub-state within the root state.\n *\n * @param reducers An object mapping keys of the root state to their corresponding feature reducer.\n * @param initialState Provides a state value if the current state is `undefined`, as it is initially.\n * @returns A reducer function.\n *\n * @usageNotes\n *\n * **Example combining two feature reducers into one \"root\" reducer**\n *\n * ```ts\n * export const reducer = combineReducers({\n * featureA: featureAReducer,\n * featureB: featureBReducer\n * });\n * ```\n *\n * You can also override the initial states of the sub-features:\n * ```ts\n * export const reducer = combineReducers({\n * featureA: featureAReducer,\n * featureB: featureBReducer\n * }, {\n * featureA: { counterA: 13 },\n * featureB: { counterB: 37 }\n * });\n * ```\n */\nfunction combineReducers(reducers, initialState = {}) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n return function combination(state, action) {\n state = state === undefined ? initialState : state;\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\nfunction omit(object, keyToRemove) {\n return Object.keys(object).filter(key => key !== keyToRemove).reduce((result, key) => Object.assign(result, {\n [key]: object[key]\n }), {});\n}\nfunction compose(...functions) {\n return function (arg) {\n if (functions.length === 0) {\n return arg;\n }\n const last = functions[functions.length - 1];\n const rest = functions.slice(0, -1);\n return rest.reduceRight((composed, fn) => fn(composed), last(arg));\n };\n}\nfunction createReducerFactory(reducerFactory, metaReducers) {\n if (Array.isArray(metaReducers) && metaReducers.length > 0) {\n reducerFactory = compose.apply(null, [...metaReducers, reducerFactory]);\n }\n return (reducers, initialState) => {\n const reducer = reducerFactory(reducers);\n return (state, action) => {\n state = state === undefined ? initialState : state;\n return reducer(state, action);\n };\n };\n}\nfunction createFeatureReducerFactory(metaReducers) {\n const reducerFactory = Array.isArray(metaReducers) && metaReducers.length > 0 ? compose(...metaReducers) : r => r;\n return (reducer, initialState) => {\n reducer = reducerFactory(reducer);\n return (state, action) => {\n state = state === undefined ? initialState : state;\n return reducer(state, action);\n };\n };\n}\nclass ReducerObservable extends Observable {}\nclass ReducerManagerDispatcher extends ActionsSubject {}\nconst UPDATE = '@ngrx/store/update-reducers';\nlet ReducerManager = /*#__PURE__*/(() => {\n class ReducerManager extends BehaviorSubject {\n get currentReducers() {\n return this.reducers;\n }\n constructor(dispatcher, initialState, reducers, reducerFactory) {\n super(reducerFactory(reducers, initialState));\n this.dispatcher = dispatcher;\n this.initialState = initialState;\n this.reducers = reducers;\n this.reducerFactory = reducerFactory;\n }\n addFeature(feature) {\n this.addFeatures([feature]);\n }\n addFeatures(features) {\n const reducers = features.reduce((reducerDict, {\n reducers,\n reducerFactory,\n metaReducers,\n initialState,\n key\n }) => {\n const reducer = typeof reducers === 'function' ? createFeatureReducerFactory(metaReducers)(reducers, initialState) : createReducerFactory(reducerFactory, metaReducers)(reducers, initialState);\n reducerDict[key] = reducer;\n return reducerDict;\n }, {});\n this.addReducers(reducers);\n }\n removeFeature(feature) {\n this.removeFeatures([feature]);\n }\n removeFeatures(features) {\n this.removeReducers(features.map(p => p.key));\n }\n addReducer(key, reducer) {\n this.addReducers({\n [key]: reducer\n });\n }\n addReducers(reducers) {\n this.reducers = {\n ...this.reducers,\n ...reducers\n };\n this.updateReducers(Object.keys(reducers));\n }\n removeReducer(featureKey) {\n this.removeReducers([featureKey]);\n }\n removeReducers(featureKeys) {\n featureKeys.forEach(key => {\n this.reducers = omit(this.reducers, key) /*TODO(#823)*/;\n });\n this.updateReducers(featureKeys);\n }\n updateReducers(featureKeys) {\n this.next(this.reducerFactory(this.reducers, this.initialState));\n this.dispatcher.next({\n type: UPDATE,\n features: featureKeys\n });\n }\n ngOnDestroy() {\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function ReducerManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ReducerManager)(i0.ɵɵinject(ReducerManagerDispatcher), i0.ɵɵinject(INITIAL_STATE), i0.ɵɵinject(INITIAL_REDUCERS), i0.ɵɵinject(REDUCER_FACTORY));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ReducerManager,\n factory: ReducerManager.ɵfac\n });\n }\n }\n return ReducerManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst REDUCER_MANAGER_PROVIDERS = [ReducerManager, {\n provide: ReducerObservable,\n useExisting: ReducerManager\n}, {\n provide: ReducerManagerDispatcher,\n useExisting: ActionsSubject\n}];\nlet ScannedActionsSubject = /*#__PURE__*/(() => {\n class ScannedActionsSubject extends Subject {\n ngOnDestroy() {\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵScannedActionsSubject_BaseFactory;\n return function ScannedActionsSubject_Factory(__ngFactoryType__) {\n return (ɵScannedActionsSubject_BaseFactory || (ɵScannedActionsSubject_BaseFactory = i0.ɵɵgetInheritedFactory(ScannedActionsSubject)))(__ngFactoryType__ || ScannedActionsSubject);\n };\n })();\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScannedActionsSubject,\n factory: ScannedActionsSubject.ɵfac\n });\n }\n }\n return ScannedActionsSubject;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst SCANNED_ACTIONS_SUBJECT_PROVIDERS = [ScannedActionsSubject];\nclass StateObservable extends Observable {}\nlet State = /*#__PURE__*/(() => {\n class State extends BehaviorSubject {\n static {\n this.INIT = INIT;\n }\n constructor(actions$, reducer$, scannedActions, initialState) {\n super(initialState);\n const actionsOnQueue$ = actions$.pipe(observeOn(queueScheduler));\n const withLatestReducer$ = actionsOnQueue$.pipe(withLatestFrom(reducer$));\n const seed = {\n state: initialState\n };\n const stateAndAction$ = withLatestReducer$.pipe(scan(reduceState, seed));\n this.stateSubscription = stateAndAction$.subscribe(({\n state,\n action\n }) => {\n this.next(state);\n scannedActions.next(action);\n });\n this.state = toSignal(this, {\n manualCleanup: true,\n requireSync: true\n });\n }\n ngOnDestroy() {\n this.stateSubscription.unsubscribe();\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function State_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || State)(i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerObservable), i0.ɵɵinject(ScannedActionsSubject), i0.ɵɵinject(INITIAL_STATE));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: State,\n factory: State.ɵfac\n });\n }\n }\n return State;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction reduceState(stateActionPair = {\n state: undefined\n}, [action, reducer]) {\n const {\n state\n } = stateActionPair;\n return {\n state: reducer(state, action),\n action\n };\n}\nconst STATE_PROVIDERS = [State, {\n provide: StateObservable,\n useExisting: State\n}];\n\n// disabled because we have lowercase generics for `select`\nlet Store = /*#__PURE__*/(() => {\n class Store extends Observable {\n constructor(state$, actionsObserver, reducerManager) {\n super();\n this.actionsObserver = actionsObserver;\n this.reducerManager = reducerManager;\n this.source = state$;\n this.state = state$.state;\n }\n select(pathOrMapFn, ...paths) {\n return select.call(null, pathOrMapFn, ...paths)(this);\n }\n /**\n * Returns a signal of the provided selector.\n *\n * @param selector selector function\n * @param options select signal options\n */\n selectSignal(selector, options) {\n return computed(() => selector(this.state()), options);\n }\n lift(operator) {\n const store = new Store(this, this.actionsObserver, this.reducerManager);\n store.operator = operator;\n return store;\n }\n dispatch(action) {\n this.actionsObserver.next(action);\n }\n next(action) {\n this.actionsObserver.next(action);\n }\n error(err) {\n this.actionsObserver.error(err);\n }\n complete() {\n this.actionsObserver.complete();\n }\n addReducer(key, reducer) {\n this.reducerManager.addReducer(key, reducer);\n }\n removeReducer(key) {\n this.reducerManager.removeReducer(key);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Store_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Store)(i0.ɵɵinject(StateObservable), i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerManager));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Store,\n factory: Store.ɵfac\n });\n }\n }\n return Store;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst STORE_PROVIDERS = [Store];\nfunction select(pathOrMapFn, propsOrPath, ...paths) {\n return function selectOperator(source$) {\n let mapped$;\n if (typeof pathOrMapFn === 'string') {\n const pathSlices = [propsOrPath, ...paths].filter(Boolean);\n mapped$ = source$.pipe(pluck(pathOrMapFn, ...pathSlices));\n } else if (typeof pathOrMapFn === 'function') {\n mapped$ = source$.pipe(map(source => pathOrMapFn(source, propsOrPath)));\n } else {\n throw new TypeError(`Unexpected type '${typeof pathOrMapFn}' in select operator,` + ` expected 'string' or 'function'`);\n }\n return mapped$.pipe(distinctUntilChanged());\n };\n}\nconst RUNTIME_CHECK_URL = 'https://ngrx.io/guide/store/configuration/runtime-checks';\nfunction isUndefined(target) {\n return target === undefined;\n}\nfunction isNull(target) {\n return target === null;\n}\nfunction isArray(target) {\n return Array.isArray(target);\n}\nfunction isString(target) {\n return typeof target === 'string';\n}\nfunction isBoolean(target) {\n return typeof target === 'boolean';\n}\nfunction isNumber(target) {\n return typeof target === 'number';\n}\nfunction isObjectLike(target) {\n return typeof target === 'object' && target !== null;\n}\nfunction isObject(target) {\n return isObjectLike(target) && !isArray(target);\n}\nfunction isPlainObject(target) {\n if (!isObject(target)) {\n return false;\n }\n const targetPrototype = Object.getPrototypeOf(target);\n return targetPrototype === Object.prototype || targetPrototype === null;\n}\nfunction isFunction(target) {\n return typeof target === 'function';\n}\nfunction isComponent(target) {\n return isFunction(target) && target.hasOwnProperty('ɵcmp');\n}\nfunction hasOwnProperty(target, propertyName) {\n return Object.prototype.hasOwnProperty.call(target, propertyName);\n}\nlet _ngrxMockEnvironment = false;\nfunction setNgrxMockEnvironment(value) {\n _ngrxMockEnvironment = value;\n}\nfunction isNgrxMockEnvironment() {\n return _ngrxMockEnvironment;\n}\nfunction isEqualCheck(a, b) {\n return a === b;\n}\nfunction isArgumentsChanged(args, lastArguments, comparator) {\n for (let i = 0; i < args.length; i++) {\n if (!comparator(args[i], lastArguments[i])) {\n return true;\n }\n }\n return false;\n}\nfunction resultMemoize(projectionFn, isResultEqual) {\n return defaultMemoize(projectionFn, isEqualCheck, isResultEqual);\n}\nfunction defaultMemoize(projectionFn, isArgumentsEqual = isEqualCheck, isResultEqual = isEqualCheck) {\n let lastArguments = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, , , , ,\n let lastResult = null;\n let overrideResult;\n function reset() {\n lastArguments = null;\n lastResult = null;\n }\n function setResult(result = undefined) {\n overrideResult = {\n result\n };\n }\n function clearResult() {\n overrideResult = undefined;\n }\n /* eslint-disable prefer-rest-params, prefer-spread */\n // disabled because of the use of `arguments`\n function memoized() {\n if (overrideResult !== undefined) {\n return overrideResult.result;\n }\n if (!lastArguments) {\n lastResult = projectionFn.apply(null, arguments);\n lastArguments = arguments;\n return lastResult;\n }\n if (!isArgumentsChanged(arguments, lastArguments, isArgumentsEqual)) {\n return lastResult;\n }\n const newResult = projectionFn.apply(null, arguments);\n lastArguments = arguments;\n if (isResultEqual(lastResult, newResult)) {\n return lastResult;\n }\n lastResult = newResult;\n return newResult;\n }\n return {\n memoized,\n reset,\n setResult,\n clearResult\n };\n}\nfunction createSelector(...input) {\n return createSelectorFactory(defaultMemoize)(...input);\n}\nfunction defaultStateFn(state, selectors, props, memoizedProjector) {\n if (props === undefined) {\n const args = selectors.map(fn => fn(state));\n return memoizedProjector.memoized.apply(null, args);\n }\n const args = selectors.map(fn => fn(state, props));\n return memoizedProjector.memoized.apply(null, [...args, props]);\n}\n/**\n *\n * @param memoize The function used to memoize selectors\n * @param options Config Object that may include a `stateFn` function defining how to return the selector's value, given the entire `Store`'s state, parent `Selector`s, `Props`, and a `MemoizedProjection`\n *\n * @usageNotes\n *\n * **Creating a Selector Factory Where Array Order Does Not Matter**\n *\n * ```ts\n * function removeMatch(arr: string[], target: string): string[] {\n * const matchIndex = arr.indexOf(target);\n * return [...arr.slice(0, matchIndex), ...arr.slice(matchIndex + 1)];\n * }\n *\n * function orderDoesNotMatterComparer(a: any, b: any): boolean {\n * if (!Array.isArray(a) || !Array.isArray(b)) {\n * return a === b;\n * }\n * if (a.length !== b.length) {\n * return false;\n * }\n * let tempB = [...b];\n * function reduceToDetermineIfArraysContainSameContents(\n * previousCallResult: boolean,\n * arrayMember: any\n * ): boolean {\n * if (previousCallResult === false) {\n * return false;\n * }\n * if (tempB.includes(arrayMember)) {\n * tempB = removeMatch(tempB, arrayMember);\n * return true;\n * }\n * return false;\n * }\n * return a.reduce(reduceToDetermineIfArraysContainSameContents, true);\n * }\n *\n * export const createOrderDoesNotMatterSelector = createSelectorFactory(\n * (projectionFun) => defaultMemoize(\n * projectionFun,\n * orderDoesNotMatterComparer,\n * orderDoesNotMatterComparer\n * )\n * );\n * ```\n *\n * **Creating an Alternative Memoization Strategy**\n *\n * ```ts\n * function serialize(x: any): string {\n * return JSON.stringify(x);\n * }\n *\n * export const createFullHistorySelector = createSelectorFactory(\n * (projectionFunction) => {\n * const cache = {};\n *\n * function memoized() {\n * const serializedArguments = serialize(...arguments);\n * if (cache[serializedArguments] != null) {\n * cache[serializedArguments] = projectionFunction.apply(null, arguments);\n * }\n * return cache[serializedArguments];\n * }\n * return {\n * memoized,\n * reset: () => {},\n * setResult: () => {},\n * clearResult: () => {},\n * };\n * }\n * );\n * ```\n */\nfunction createSelectorFactory(memoize, options = {\n stateFn: defaultStateFn\n}) {\n return function (...input) {\n let args = input;\n if (Array.isArray(args[0])) {\n const [head, ...tail] = args;\n args = [...head, ...tail];\n } else if (args.length === 1 && isSelectorsDictionary(args[0])) {\n args = extractArgsFromSelectorsDictionary(args[0]);\n }\n const selectors = args.slice(0, args.length - 1);\n const projector = args[args.length - 1];\n const memoizedSelectors = selectors.filter(selector => selector.release && typeof selector.release === 'function');\n const memoizedProjector = memoize(function (...selectors) {\n return projector.apply(null, selectors);\n });\n const memoizedState = defaultMemoize(function (state, props) {\n return options.stateFn.apply(null, [state, selectors, props, memoizedProjector]);\n });\n function release() {\n memoizedState.reset();\n memoizedProjector.reset();\n memoizedSelectors.forEach(selector => selector.release());\n }\n return Object.assign(memoizedState.memoized, {\n release,\n projector: memoizedProjector.memoized,\n setResult: memoizedState.setResult,\n clearResult: memoizedState.clearResult\n });\n };\n}\nfunction createFeatureSelector(featureName) {\n return createSelector(state => {\n const featureState = state[featureName];\n if (!isNgrxMockEnvironment() && isDevMode() && !(featureName in state)) {\n console.warn(`@ngrx/store: The feature name \"${featureName}\" does ` + 'not exist in the state, therefore createFeatureSelector ' + 'cannot access it. Be sure it is imported in a loaded module ' + `using StoreModule.forRoot('${featureName}', ...) or ` + `StoreModule.forFeature('${featureName}', ...). If the default ` + 'state is intended to be undefined, as is the case with router ' + 'state, this development-only warning message can be ignored.');\n }\n return featureState;\n }, featureState => featureState);\n}\nfunction isSelectorsDictionary(selectors) {\n return !!selectors && typeof selectors === 'object' && Object.values(selectors).every(selector => typeof selector === 'function');\n}\nfunction extractArgsFromSelectorsDictionary(selectorsDictionary) {\n const selectors = Object.values(selectorsDictionary);\n const resultKeys = Object.keys(selectorsDictionary);\n const projector = (...selectorResults) => resultKeys.reduce((result, key, index) => ({\n ...result,\n [key]: selectorResults[index]\n }), {});\n return [...selectors, projector];\n}\n\n/**\n * @description\n * A function that accepts a feature name and a feature reducer, and creates\n * a feature selector and a selector for each feature state property.\n * This function also provides the ability to add extra selectors to\n * the feature object.\n *\n * @param featureConfig An object that contains a feature name and a feature\n * reducer as required, and extra selectors factory as an optional argument.\n * @returns An object that contains a feature name, a feature reducer,\n * a feature selector, a selector for each feature state property, and extra\n * selectors.\n *\n * @usageNotes\n *\n * ```ts\n * interface ProductsState {\n * products: Product[];\n * selectedId: string | null;\n * }\n *\n * const initialState: ProductsState = {\n * products: [],\n * selectedId: null,\n * };\n *\n * const productsFeature = createFeature({\n * name: 'products',\n * reducer: createReducer(\n * initialState,\n * on(ProductsApiActions.loadSuccess(state, { products }) => ({\n * ...state,\n * products,\n * }),\n * ),\n * });\n *\n * const {\n * name,\n * reducer,\n * // feature selector\n * selectProductsState, // type: MemoizedSelector<Record<string, any>, ProductsState>\n * // feature state properties selectors\n * selectProducts, // type: MemoizedSelector<Record<string, any>, Product[]>\n * selectSelectedId, // type: MemoizedSelector<Record<string, any>, string | null>\n * } = productsFeature;\n * ```\n *\n * **Creating Feature with Extra Selectors**\n *\n * ```ts\n * type CallState = 'init' | 'loading' | 'loaded' | { error: string };\n *\n * interface State extends EntityState<Product> {\n * callState: CallState;\n * }\n *\n * const adapter = createEntityAdapter<Product>();\n * const initialState: State = adapter.getInitialState({\n * callState: 'init',\n * });\n *\n * export const productsFeature = createFeature({\n * name: 'products',\n * reducer: createReducer(initialState),\n * extraSelectors: ({ selectProductsState, selectCallState }) => ({\n * ...adapter.getSelectors(selectProductsState),\n * ...getCallStateSelectors(selectCallState)\n * }),\n * });\n *\n * const {\n * name,\n * reducer,\n * // feature selector\n * selectProductsState,\n * // feature state properties selectors\n * selectIds,\n * selectEntities,\n * selectCallState,\n * // selectors returned by `adapter.getSelectors`\n * selectAll,\n * selectTotal,\n * // selectors returned by `getCallStateSelectors`\n * selectIsLoading,\n * selectIsLoaded,\n * selectError,\n * } = productsFeature;\n * ```\n */\nfunction createFeature(featureConfig) {\n const {\n name,\n reducer,\n extraSelectors: extraSelectorsFactory\n } = featureConfig;\n const featureSelector = createFeatureSelector(name);\n const nestedSelectors = createNestedSelectors(featureSelector, reducer);\n const baseSelectors = {\n [`select${capitalize(name)}State`]: featureSelector,\n ...nestedSelectors\n };\n const extraSelectors = extraSelectorsFactory ? extraSelectorsFactory(baseSelectors) : {};\n return {\n name,\n reducer,\n ...baseSelectors,\n ...extraSelectors\n };\n}\nfunction createNestedSelectors(featureSelector, reducer) {\n const initialState = getInitialState(reducer);\n const nestedKeys = isPlainObject(initialState) ? Object.keys(initialState) : [];\n return nestedKeys.reduce((nestedSelectors, nestedKey) => ({\n ...nestedSelectors,\n [`select${capitalize(nestedKey)}`]: createSelector(featureSelector, parentState => parentState?.[nestedKey])\n }), {});\n}\nfunction getInitialState(reducer) {\n return reducer(undefined, {\n type: '@ngrx/feature/init'\n });\n}\nfunction _createStoreReducers(reducers) {\n return reducers instanceof InjectionToken ? inject(reducers) : reducers;\n}\nfunction _createFeatureStore(configs, featureStores) {\n return featureStores.map((feat, index) => {\n if (configs[index] instanceof InjectionToken) {\n const conf = inject(configs[index]);\n return {\n key: feat.key,\n reducerFactory: conf.reducerFactory ? conf.reducerFactory : combineReducers,\n metaReducers: conf.metaReducers ? conf.metaReducers : [],\n initialState: conf.initialState\n };\n }\n return feat;\n });\n}\nfunction _createFeatureReducers(reducerCollection) {\n return reducerCollection.map(reducer => {\n return reducer instanceof InjectionToken ? inject(reducer) : reducer;\n });\n}\nfunction _initialStateFactory(initialState) {\n if (typeof initialState === 'function') {\n return initialState();\n }\n return initialState;\n}\nfunction _concatMetaReducers(metaReducers, userProvidedMetaReducers) {\n return metaReducers.concat(userProvidedMetaReducers);\n}\nfunction _provideForRootGuard() {\n const store = inject(Store, {\n optional: true,\n skipSelf: true\n });\n if (store) {\n throw new TypeError(`The root Store has been provided more than once. Feature modules should provide feature states instead.`);\n }\n return 'guarded';\n}\nfunction immutabilityCheckMetaReducer(reducer, checks) {\n return function (state, action) {\n const act = checks.action(action) ? freeze(action) : action;\n const nextState = reducer(state, act);\n return checks.state() ? freeze(nextState) : nextState;\n };\n}\nfunction freeze(target) {\n Object.freeze(target);\n const targetIsFunction = isFunction(target);\n Object.getOwnPropertyNames(target).forEach(prop => {\n // Ignore Ivy properties, ref: https://github.com/ngrx/platform/issues/2109#issuecomment-582689060\n if (prop.startsWith('ɵ')) {\n return;\n }\n if (hasOwnProperty(target, prop) && (targetIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true)) {\n const propValue = target[prop];\n if ((isObjectLike(propValue) || isFunction(propValue)) && !Object.isFrozen(propValue)) {\n freeze(propValue);\n }\n }\n });\n return target;\n}\nfunction serializationCheckMetaReducer(reducer, checks) {\n return function (state, action) {\n if (checks.action(action)) {\n const unserializableAction = getUnserializable(action);\n throwIfUnserializable(unserializableAction, 'action');\n }\n const nextState = reducer(state, action);\n if (checks.state()) {\n const unserializableState = getUnserializable(nextState);\n throwIfUnserializable(unserializableState, 'state');\n }\n return nextState;\n };\n}\nfunction getUnserializable(target, path = []) {\n // Guard against undefined and null, e.g. a reducer that returns undefined\n if ((isUndefined(target) || isNull(target)) && path.length === 0) {\n return {\n path: ['root'],\n value: target\n };\n }\n const keys = Object.keys(target);\n return keys.reduce((result, key) => {\n if (result) {\n return result;\n }\n const value = target[key];\n // Ignore Ivy components\n if (isComponent(value)) {\n return result;\n }\n if (isUndefined(value) || isNull(value) || isNumber(value) || isBoolean(value) || isString(value) || isArray(value)) {\n return false;\n }\n if (isPlainObject(value)) {\n return getUnserializable(value, [...path, key]);\n }\n return {\n path: [...path, key],\n value\n };\n }, false);\n}\nfunction throwIfUnserializable(unserializable, context) {\n if (unserializable === false) {\n return;\n }\n const unserializablePath = unserializable.path.join('.');\n const error = new Error(`Detected unserializable ${context} at \"${unserializablePath}\". ${RUNTIME_CHECK_URL}#strict${context}serializability`);\n error.value = unserializable.value;\n error.unserializablePath = unserializablePath;\n throw error;\n}\nfunction inNgZoneAssertMetaReducer(reducer, checks) {\n return function (state, action) {\n if (checks.action(action) && !i0.NgZone.isInAngularZone()) {\n throw new Error(`Action '${action.type}' running outside NgZone. ${RUNTIME_CHECK_URL}#strictactionwithinngzone`);\n }\n return reducer(state, action);\n };\n}\nfunction createActiveRuntimeChecks(runtimeChecks) {\n if (isDevMode()) {\n return {\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictStateImmutability: true,\n strictActionImmutability: true,\n strictActionWithinNgZone: false,\n strictActionTypeUniqueness: false,\n ...runtimeChecks\n };\n }\n return {\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictActionWithinNgZone: false,\n strictActionTypeUniqueness: false\n };\n}\nfunction createSerializationCheckMetaReducer({\n strictActionSerializability,\n strictStateSerializability\n}) {\n return reducer => strictActionSerializability || strictStateSerializability ? serializationCheckMetaReducer(reducer, {\n action: action => strictActionSerializability && !ignoreNgrxAction(action),\n state: () => strictStateSerializability\n }) : reducer;\n}\nfunction createImmutabilityCheckMetaReducer({\n strictActionImmutability,\n strictStateImmutability\n}) {\n return reducer => strictActionImmutability || strictStateImmutability ? immutabilityCheckMetaReducer(reducer, {\n action: action => strictActionImmutability && !ignoreNgrxAction(action),\n state: () => strictStateImmutability\n }) : reducer;\n}\nfunction ignoreNgrxAction(action) {\n return action.type.startsWith('@ngrx');\n}\nfunction createInNgZoneCheckMetaReducer({\n strictActionWithinNgZone\n}) {\n return reducer => strictActionWithinNgZone ? inNgZoneAssertMetaReducer(reducer, {\n action: action => strictActionWithinNgZone && !ignoreNgrxAction(action)\n }) : reducer;\n}\nfunction provideRuntimeChecks(runtimeChecks) {\n return [{\n provide: _USER_RUNTIME_CHECKS,\n useValue: runtimeChecks\n }, {\n provide: USER_RUNTIME_CHECKS,\n useFactory: _runtimeChecksFactory,\n deps: [_USER_RUNTIME_CHECKS]\n }, {\n provide: ACTIVE_RUNTIME_CHECKS,\n deps: [USER_RUNTIME_CHECKS],\n useFactory: createActiveRuntimeChecks\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createImmutabilityCheckMetaReducer\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createSerializationCheckMetaReducer\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createInNgZoneCheckMetaReducer\n }];\n}\nfunction checkForActionTypeUniqueness() {\n return [{\n provide: _ACTION_TYPE_UNIQUENESS_CHECK,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: _actionTypeUniquenessCheck\n }];\n}\nfunction _runtimeChecksFactory(runtimeChecks) {\n return runtimeChecks;\n}\nfunction _actionTypeUniquenessCheck(config) {\n if (!config.strictActionTypeUniqueness) {\n return;\n }\n const duplicates = Object.entries(REGISTERED_ACTION_TYPES).filter(([, registrations]) => registrations > 1).map(([type]) => type);\n if (duplicates.length) {\n throw new Error(`Action types are registered more than once, ${duplicates.map(type => `\"${type}\"`).join(', ')}. ${RUNTIME_CHECK_URL}#strictactiontypeuniqueness`);\n }\n}\n\n/**\n * Provides additional slices of state in the Store.\n * These providers cannot be used at the component level.\n *\n * @usageNotes\n *\n * ### Providing Store Features\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideState('books', booksReducer)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideState(featureNameOrSlice, reducers, config = {}) {\n return makeEnvironmentProviders([..._provideState(featureNameOrSlice, reducers, config), ENVIRONMENT_STATE_PROVIDER]);\n}\nfunction _provideStore(reducers = {}, config = {}) {\n return [{\n provide: _ROOT_STORE_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: _INITIAL_STATE,\n useValue: config.initialState\n }, {\n provide: INITIAL_STATE,\n useFactory: _initialStateFactory,\n deps: [_INITIAL_STATE]\n }, {\n provide: _INITIAL_REDUCERS,\n useValue: reducers\n }, {\n provide: _STORE_REDUCERS,\n useExisting: reducers instanceof InjectionToken ? reducers : _INITIAL_REDUCERS\n }, {\n provide: INITIAL_REDUCERS,\n deps: [_INITIAL_REDUCERS, [new Inject(_STORE_REDUCERS)]],\n useFactory: _createStoreReducers\n }, {\n provide: USER_PROVIDED_META_REDUCERS,\n useValue: config.metaReducers ? config.metaReducers : []\n }, {\n provide: _RESOLVED_META_REDUCERS,\n deps: [META_REDUCERS, USER_PROVIDED_META_REDUCERS],\n useFactory: _concatMetaReducers\n }, {\n provide: _REDUCER_FACTORY,\n useValue: config.reducerFactory ? config.reducerFactory : combineReducers\n }, {\n provide: REDUCER_FACTORY,\n deps: [_REDUCER_FACTORY, _RESOLVED_META_REDUCERS],\n useFactory: createReducerFactory\n }, ACTIONS_SUBJECT_PROVIDERS, REDUCER_MANAGER_PROVIDERS, SCANNED_ACTIONS_SUBJECT_PROVIDERS, STATE_PROVIDERS, STORE_PROVIDERS, provideRuntimeChecks(config.runtimeChecks), checkForActionTypeUniqueness()];\n}\nfunction rootStoreProviderFactory() {\n inject(ActionsSubject);\n inject(ReducerObservable);\n inject(ScannedActionsSubject);\n inject(Store);\n inject(_ROOT_STORE_GUARD, {\n optional: true\n });\n inject(_ACTION_TYPE_UNIQUENESS_CHECK, {\n optional: true\n });\n}\n/**\n * Environment Initializer used in the root\n * providers to initialize the Store\n */\nconst ENVIRONMENT_STORE_PROVIDER = [{\n provide: ROOT_STORE_PROVIDER,\n useFactory: rootStoreProviderFactory\n}, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(ROOT_STORE_PROVIDER);\n }\n}];\n/**\n * Provides the global Store providers and initializes\n * the Store.\n * These providers cannot be used at the component level.\n *\n * @usageNotes\n *\n * ### Providing the Global Store\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideStore()],\n * });\n * ```\n */\nfunction provideStore(reducers, config) {\n return makeEnvironmentProviders([..._provideStore(reducers, config), ENVIRONMENT_STORE_PROVIDER]);\n}\nfunction featureStateProviderFactory() {\n inject(ROOT_STORE_PROVIDER);\n const features = inject(_STORE_FEATURES);\n const featureReducers = inject(FEATURE_REDUCERS);\n const reducerManager = inject(ReducerManager);\n inject(_ACTION_TYPE_UNIQUENESS_CHECK, {\n optional: true\n });\n const feats = features.map((feature, index) => {\n const featureReducerCollection = featureReducers.shift();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reducers = featureReducerCollection /*TODO(#823)*/[index];\n return {\n ...feature,\n reducers,\n initialState: _initialStateFactory(feature.initialState)\n };\n });\n reducerManager.addFeatures(feats);\n}\n/**\n * Environment Initializer used in the feature\n * providers to register state features\n */\nconst ENVIRONMENT_STATE_PROVIDER = [{\n provide: FEATURE_STATE_PROVIDER,\n useFactory: featureStateProviderFactory\n}, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(FEATURE_STATE_PROVIDER);\n }\n}];\nfunction _provideState(featureNameOrSlice, reducers, config = {}) {\n return [{\n provide: _FEATURE_CONFIGS,\n multi: true,\n useValue: featureNameOrSlice instanceof Object ? {} : config\n }, {\n provide: STORE_FEATURES,\n multi: true,\n useValue: {\n key: featureNameOrSlice instanceof Object ? featureNameOrSlice.name : featureNameOrSlice,\n reducerFactory: !(config instanceof InjectionToken) && config.reducerFactory ? config.reducerFactory : combineReducers,\n metaReducers: !(config instanceof InjectionToken) && config.metaReducers ? config.metaReducers : [],\n initialState: !(config instanceof InjectionToken) && config.initialState ? config.initialState : undefined\n }\n }, {\n provide: _STORE_FEATURES,\n deps: [_FEATURE_CONFIGS, STORE_FEATURES],\n useFactory: _createFeatureStore\n }, {\n provide: _FEATURE_REDUCERS,\n multi: true,\n useValue: featureNameOrSlice instanceof Object ? featureNameOrSlice.reducer : reducers\n }, {\n provide: _FEATURE_REDUCERS_TOKEN,\n multi: true,\n useExisting: reducers instanceof InjectionToken ? reducers : _FEATURE_REDUCERS\n }, {\n provide: FEATURE_REDUCERS,\n multi: true,\n deps: [_FEATURE_REDUCERS, [new Inject(_FEATURE_REDUCERS_TOKEN)]],\n useFactory: _createFeatureReducers\n }, checkForActionTypeUniqueness()];\n}\nlet StoreRootModule = /*#__PURE__*/(() => {\n class StoreRootModule {\n constructor(actions$, reducer$, scannedActions$, store, guard, actionCheck) {}\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRootModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreRootModule)(i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerObservable), i0.ɵɵinject(ScannedActionsSubject), i0.ɵɵinject(Store), i0.ɵɵinject(_ROOT_STORE_GUARD, 8), i0.ɵɵinject(_ACTION_TYPE_UNIQUENESS_CHECK, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreRootModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet StoreFeatureModule = /*#__PURE__*/(() => {\n class StoreFeatureModule {\n constructor(features, featureReducers, reducerManager, root, actionCheck) {\n this.features = features;\n this.featureReducers = featureReducers;\n this.reducerManager = reducerManager;\n const feats = features.map((feature, index) => {\n const featureReducerCollection = featureReducers.shift();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reducers = featureReducerCollection /*TODO(#823)*/[index];\n return {\n ...feature,\n reducers,\n initialState: _initialStateFactory(feature.initialState)\n };\n });\n reducerManager.addFeatures(feats);\n }\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngOnDestroy() {\n this.reducerManager.removeFeatures(this.features);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreFeatureModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreFeatureModule)(i0.ɵɵinject(_STORE_FEATURES), i0.ɵɵinject(FEATURE_REDUCERS), i0.ɵɵinject(ReducerManager), i0.ɵɵinject(StoreRootModule), i0.ɵɵinject(_ACTION_TYPE_UNIQUENESS_CHECK, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreFeatureModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet StoreModule = /*#__PURE__*/(() => {\n class StoreModule {\n static forRoot(reducers, config) {\n return {\n ngModule: StoreRootModule,\n providers: [..._provideStore(reducers, config)]\n };\n }\n static forFeature(featureNameOrSlice, reducers, config = {}) {\n return {\n ngModule: StoreFeatureModule,\n providers: [..._provideState(featureNameOrSlice, reducers, config)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @description\n * Associates actions with a given state change function.\n * A state change function must be provided as the last parameter.\n *\n * @param args `ActionCreator`'s followed by a state change function.\n *\n * @returns an association of action types with a state change function.\n *\n * @usageNotes\n * ```ts\n * on(AuthApiActions.loginSuccess, (state, { user }) => ({ ...state, user }))\n * ```\n */\nfunction on(...args) {\n const reducer = args.pop();\n const types = args.map(creator => creator.type);\n return {\n reducer,\n types\n };\n}\n/**\n * @description\n * Creates a reducer function to handle state transitions.\n *\n * Reducer creators reduce the explicitness of reducer functions with switch statements.\n *\n * @param initialState Provides a state value if the current state is `undefined`, as it is initially.\n * @param ons Associations between actions and state changes.\n * @returns A reducer function.\n *\n * @usageNotes\n *\n * - Must be used with `ActionCreator`'s (returned by `createAction`). Cannot be used with class-based action creators.\n * - The returned `ActionReducer` does not require being wrapped with another function.\n *\n * **Declaring a reducer creator**\n *\n * ```ts\n * export const reducer = createReducer(\n * initialState,\n * on(\n * featureActions.actionOne,\n * featureActions.actionTwo,\n * (state, { updatedValue }) => ({ ...state, prop: updatedValue })\n * ),\n * on(featureActions.actionThree, () => initialState);\n * );\n * ```\n */\nfunction createReducer(initialState, ...ons) {\n const map = new Map();\n for (const on of ons) {\n for (const type of on.types) {\n const existingReducer = map.get(type);\n if (existingReducer) {\n const newReducer = (state, action) => on.reducer(existingReducer(state, action), action);\n map.set(type, newReducer);\n } else {\n map.set(type, on.reducer);\n }\n }\n }\n return function (state = initialState, action) {\n const reducer = map.get(action.type);\n return reducer ? reducer(state, action) : state;\n };\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ACTIVE_RUNTIME_CHECKS, ActionsSubject, FEATURE_REDUCERS, FEATURE_STATE_PROVIDER, INIT, INITIAL_REDUCERS, INITIAL_STATE, META_REDUCERS, REDUCER_FACTORY, ROOT_STORE_PROVIDER, ReducerManager, ReducerManagerDispatcher, ReducerObservable, STORE_FEATURES, ScannedActionsSubject, State, StateObservable, Store, StoreFeatureModule, StoreModule, StoreRootModule, UPDATE, USER_PROVIDED_META_REDUCERS, USER_RUNTIME_CHECKS, combineReducers, compose, createAction, createActionGroup, createFeature, createFeatureSelector, createReducer, createReducerFactory, createSelector, createSelectorFactory, defaultMemoize, defaultStateFn, emptyProps, isNgrxMockEnvironment, on, props, provideState, provideStore, reduceState, resultMemoize, select, setNgrxMockEnvironment, union };\n","import * as i1 from 'rxjs';\nimport { merge, Observable, Subject, defer } from 'rxjs';\nimport { ignoreElements, materialize, map, catchError, filter, groupBy, mergeMap, exhaustMap, dematerialize, take, concatMap, finalize } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';\nimport * as i3 from '@ngrx/store';\nimport { ScannedActionsSubject, createAction, ROOT_STORE_PROVIDER, FEATURE_STATE_PROVIDER, Store } from '@ngrx/store';\nconst DEFAULT_EFFECT_CONFIG = {\n dispatch: true,\n functional: false,\n useEffectsErrorHandler: true\n};\nconst CREATE_EFFECT_METADATA_KEY = '__@ngrx/effects_create__';\n\n/**\n * @description\n *\n * Creates an effect from a source and an `EffectConfig`.\n *\n * @param source A function which returns an observable or observable factory.\n * @param config A `EffectConfig` to configure the effect. By default,\n * `dispatch` is true, `functional` is false, and `useEffectsErrorHandler` is\n * true.\n * @returns If `EffectConfig`#`functional` is true, returns the source function.\n * Else, returns the source function result. When `EffectConfig`#`dispatch` is\n * true, the source function result needs to be `Observable<Action>`.\n *\n * @usageNotes\n *\n * ### Class Effects\n *\n * ```ts\n * @Injectable()\n * export class FeatureEffects {\n * // mapping to a different action\n * readonly effect1$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionOne),\n * map(() => FeatureActions.actionTwo())\n * )\n * );\n *\n * // non-dispatching effect\n * readonly effect2$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionTwo),\n * tap(() => console.log('Action Two Dispatched'))\n * ),\n * { dispatch: false } // FeatureActions.actionTwo is not dispatched\n * );\n *\n * constructor(private readonly actions$: Actions) {}\n * }\n * ```\n *\n * ### Functional Effects\n *\n * ```ts\n * // mapping to a different action\n * export const loadUsers = createEffect(\n * (actions$ = inject(Actions), usersService = inject(UsersService)) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * map((users) => UsersApiActions.usersLoadedSuccess({ users })),\n * catchError((error) =>\n * of(UsersApiActions.usersLoadedFailure({ error }))\n * )\n * );\n * })\n * );\n * },\n * { functional: true }\n * );\n *\n * // non-dispatching functional effect\n * export const logDispatchedActions = createEffect(\n * () => inject(Actions).pipe(tap(console.log)),\n * { functional: true, dispatch: false }\n * );\n * ```\n */\nfunction createEffect(source, config = {}) {\n const effect = config.functional ? source : source();\n const value = {\n ...DEFAULT_EFFECT_CONFIG,\n ...config // Overrides any defaults if values are provided\n };\n Object.defineProperty(effect, CREATE_EFFECT_METADATA_KEY, {\n value\n });\n return effect;\n}\nfunction getCreateEffectMetadata(instance) {\n const propertyNames = Object.getOwnPropertyNames(instance);\n const metadata = propertyNames.filter(propertyName => {\n if (instance[propertyName] && instance[propertyName].hasOwnProperty(CREATE_EFFECT_METADATA_KEY)) {\n // If the property type has overridden `hasOwnProperty` we need to ensure\n // that the metadata is valid (containing a `dispatch` property)\n // https://github.com/ngrx/platform/issues/2975\n const property = instance[propertyName];\n return property[CREATE_EFFECT_METADATA_KEY].hasOwnProperty('dispatch');\n }\n return false;\n }).map(propertyName => {\n const metaData = instance[propertyName][CREATE_EFFECT_METADATA_KEY];\n return {\n propertyName,\n ...metaData\n };\n });\n return metadata;\n}\nfunction getEffectsMetadata(instance) {\n return getSourceMetadata(instance).reduce((acc, {\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n acc[propertyName] = {\n dispatch,\n useEffectsErrorHandler\n };\n return acc;\n }, {});\n}\nfunction getSourceMetadata(instance) {\n return getCreateEffectMetadata(instance);\n}\nfunction getSourceForInstance(instance) {\n return Object.getPrototypeOf(instance);\n}\nfunction isClassInstance(obj) {\n return !!obj.constructor && obj.constructor.name !== 'Object' && obj.constructor.name !== 'Function';\n}\nfunction isClass(classOrRecord) {\n return typeof classOrRecord === 'function';\n}\nfunction getClasses(classesAndRecords) {\n return classesAndRecords.filter(isClass);\n}\nfunction isToken(tokenOrRecord) {\n return tokenOrRecord instanceof InjectionToken || isClass(tokenOrRecord);\n}\nfunction mergeEffects(sourceInstance, globalErrorHandler, effectsErrorHandler) {\n const source = getSourceForInstance(sourceInstance);\n const isClassBasedEffect = !!source && source.constructor.name !== 'Object';\n const sourceName = isClassBasedEffect ? source.constructor.name : null;\n const observables$ = getSourceMetadata(sourceInstance).map(({\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n const observable$ = typeof sourceInstance[propertyName] === 'function' ? sourceInstance[propertyName]() : sourceInstance[propertyName];\n const effectAction$ = useEffectsErrorHandler ? effectsErrorHandler(observable$, globalErrorHandler) : observable$;\n if (dispatch === false) {\n return effectAction$.pipe(ignoreElements());\n }\n const materialized$ = effectAction$.pipe(materialize());\n return materialized$.pipe(map(notification => ({\n effect: sourceInstance[propertyName],\n notification,\n propertyName,\n sourceName,\n sourceInstance\n })));\n });\n return merge(...observables$);\n}\nconst MAX_NUMBER_OF_RETRY_ATTEMPTS = 10;\nfunction defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft = MAX_NUMBER_OF_RETRY_ATTEMPTS) {\n return observable$.pipe(catchError(error => {\n if (errorHandler) errorHandler.handleError(error);\n if (retryAttemptLeft <= 1) {\n return observable$; // last attempt\n }\n // Return observable that produces this particular effect\n return defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft - 1);\n }));\n}\nlet Actions = /*#__PURE__*/(() => {\n class Actions extends Observable {\n constructor(source) {\n super();\n if (source) {\n this.source = source;\n }\n }\n lift(operator) {\n const observable = new Actions();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Actions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Actions)(i0.ɵɵinject(ScannedActionsSubject));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Actions,\n factory: Actions.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Actions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * `ofType` filters an Observable of `Actions` into an Observable of the actions\n * whose type strings are passed to it.\n *\n * For example, if `actions` has type `Actions<AdditionAction|SubstractionAction>`, and\n * the type of the `Addition` action is `add`, then\n * `actions.pipe(ofType('add'))` returns an `Observable<AdditionAction>`.\n *\n * Properly typing this function is hard and requires some advanced TS tricks\n * below.\n *\n * Type narrowing automatically works, as long as your `actions` object\n * starts with a `Actions<SomeUnionOfActions>` instead of generic `Actions`.\n *\n * For backwards compatibility, when one passes a single type argument\n * `ofType<T>('something')` the result is an `Observable<T>`. Note, that `T`\n * completely overrides any possible inference from 'something'.\n *\n * Unfortunately, for unknown 'actions: Actions' these types will produce\n * 'Observable<never>'. In such cases one has to manually set the generic type\n * like `actions.ofType<AdditionAction>('add')`.\n *\n * @usageNotes\n *\n * Filter the Actions stream on the \"customers page loaded\" action\n *\n * ```ts\n * import { ofType } from '@ngrx/effects';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * ofType(fromCustomers.pageLoaded)\n * )\n * ```\n */\nfunction ofType(...allowedTypes) {\n return filter(action => allowedTypes.some(typeOrActionCreator => {\n if (typeof typeOrActionCreator === 'string') {\n // Comparing the string to type\n return typeOrActionCreator === action.type;\n }\n // We are filtering by ActionCreator\n return typeOrActionCreator.type === action.type;\n }));\n}\nconst _ROOT_EFFECTS_GUARD = new InjectionToken('@ngrx/effects Internal Root Guard');\nconst USER_PROVIDED_EFFECTS = new InjectionToken('@ngrx/effects User Provided Effects');\nconst _ROOT_EFFECTS = new InjectionToken('@ngrx/effects Internal Root Effects');\nconst _ROOT_EFFECTS_INSTANCES = new InjectionToken('@ngrx/effects Internal Root Effects Instances');\nconst _FEATURE_EFFECTS = new InjectionToken('@ngrx/effects Internal Feature Effects');\nconst _FEATURE_EFFECTS_INSTANCE_GROUPS = new InjectionToken('@ngrx/effects Internal Feature Effects Instance Groups');\nconst EFFECTS_ERROR_HANDLER = new InjectionToken('@ngrx/effects Effects Error Handler', {\n providedIn: 'root',\n factory: () => defaultEffectsErrorHandler\n});\nconst ROOT_EFFECTS_INIT = '@ngrx/effects/init';\nconst rootEffectsInit = createAction(ROOT_EFFECTS_INIT);\nfunction reportInvalidActions(output, reporter) {\n if (output.notification.kind === 'N') {\n const action = output.notification.value;\n const isInvalidAction = !isAction(action);\n if (isInvalidAction) {\n reporter.handleError(new Error(`Effect ${getEffectName(output)} dispatched an invalid action: ${stringify(action)}`));\n }\n }\n}\nfunction isAction(action) {\n return typeof action !== 'function' && action && action.type && typeof action.type === 'string';\n}\nfunction getEffectName({\n propertyName,\n sourceInstance,\n sourceName\n}) {\n const isMethod = typeof sourceInstance[propertyName] === 'function';\n const isClassBasedEffect = !!sourceName;\n return isClassBasedEffect ? `\"${sourceName}.${String(propertyName)}${isMethod ? '()' : ''}\"` : `\"${String(propertyName)}()\"`;\n}\nfunction stringify(action) {\n try {\n return JSON.stringify(action);\n } catch {\n return action;\n }\n}\nconst onIdentifyEffectsKey = 'ngrxOnIdentifyEffects';\nfunction isOnIdentifyEffects(instance) {\n return isFunction(instance, onIdentifyEffectsKey);\n}\nconst onRunEffectsKey = 'ngrxOnRunEffects';\nfunction isOnRunEffects(instance) {\n return isFunction(instance, onRunEffectsKey);\n}\nconst onInitEffects = 'ngrxOnInitEffects';\nfunction isOnInitEffects(instance) {\n return isFunction(instance, onInitEffects);\n}\nfunction isFunction(instance, functionName) {\n return instance && functionName in instance && typeof instance[functionName] === 'function';\n}\nlet EffectSources = /*#__PURE__*/(() => {\n class EffectSources extends Subject {\n constructor(errorHandler, effectsErrorHandler) {\n super();\n this.errorHandler = errorHandler;\n this.effectsErrorHandler = effectsErrorHandler;\n }\n addEffects(effectSourceInstance) {\n this.next(effectSourceInstance);\n }\n /**\n * @internal\n */\n toActions() {\n return this.pipe(groupBy(effectsInstance => isClassInstance(effectsInstance) ? getSourceForInstance(effectsInstance) : effectsInstance), mergeMap(source$ => {\n return source$.pipe(groupBy(effectsInstance));\n }), mergeMap(source$ => {\n const effect$ = source$.pipe(exhaustMap(sourceInstance => {\n return resolveEffectSource(this.errorHandler, this.effectsErrorHandler)(sourceInstance);\n }), map(output => {\n reportInvalidActions(output, this.errorHandler);\n return output.notification;\n }), filter(notification => notification.kind === 'N' && notification.value != null), dematerialize());\n // start the stream with an INIT action\n // do this only for the first Effect instance\n const init$ = source$.pipe(take(1), filter(isOnInitEffects), map(instance => instance.ngrxOnInitEffects()));\n return merge(effect$, init$);\n }));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectSources_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectSources)(i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(EFFECTS_ERROR_HANDLER));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectSources,\n factory: EffectSources.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectSources;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction effectsInstance(sourceInstance) {\n if (isOnIdentifyEffects(sourceInstance)) {\n return sourceInstance.ngrxOnIdentifyEffects();\n }\n return '';\n}\nfunction resolveEffectSource(errorHandler, effectsErrorHandler) {\n return sourceInstance => {\n const mergedEffects$ = mergeEffects(sourceInstance, errorHandler, effectsErrorHandler);\n if (isOnRunEffects(sourceInstance)) {\n return sourceInstance.ngrxOnRunEffects(mergedEffects$);\n }\n return mergedEffects$;\n };\n}\nlet EffectsRunner = /*#__PURE__*/(() => {\n class EffectsRunner {\n get isStarted() {\n return !!this.effectsSubscription;\n }\n constructor(effectSources, store) {\n this.effectSources = effectSources;\n this.store = store;\n this.effectsSubscription = null;\n }\n start() {\n if (!this.effectsSubscription) {\n this.effectsSubscription = this.effectSources.toActions().subscribe(this.store);\n }\n }\n ngOnDestroy() {\n if (this.effectsSubscription) {\n this.effectsSubscription.unsubscribe();\n this.effectsSubscription = null;\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRunner_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRunner)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(i3.Store));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectsRunner,\n factory: EffectsRunner.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectsRunner;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsRootModule = /*#__PURE__*/(() => {\n class EffectsRootModule {\n constructor(sources, runner, store, rootEffectsInstances, storeRootModule, storeFeatureModule, guard) {\n this.sources = sources;\n runner.start();\n for (const effectsInstance of rootEffectsInstances) {\n sources.addEffects(effectsInstance);\n }\n store.dispatch({\n type: ROOT_EFFECTS_INIT\n });\n }\n addEffects(effectsInstance) {\n this.sources.addEffects(effectsInstance);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRootModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRootModule)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(EffectsRunner), i0.ɵɵinject(i3.Store), i0.ɵɵinject(_ROOT_EFFECTS_INSTANCES), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8), i0.ɵɵinject(_ROOT_EFFECTS_GUARD, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsRootModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsFeatureModule = /*#__PURE__*/(() => {\n class EffectsFeatureModule {\n constructor(effectsRootModule, effectsInstanceGroups, storeRootModule, storeFeatureModule) {\n const effectsInstances = effectsInstanceGroups.flat();\n for (const effectsInstance of effectsInstances) {\n effectsRootModule.addEffects(effectsInstance);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsFeatureModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsFeatureModule)(i0.ɵɵinject(EffectsRootModule), i0.ɵɵinject(_FEATURE_EFFECTS_INSTANCE_GROUPS), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsFeatureModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsModule = /*#__PURE__*/(() => {\n class EffectsModule {\n static forFeature(...featureEffects) {\n const effects = featureEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsFeatureModule,\n providers: [effectsClasses, {\n provide: _FEATURE_EFFECTS,\n multi: true,\n useValue: effects\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _FEATURE_EFFECTS_INSTANCE_GROUPS,\n multi: true,\n useFactory: createEffectsInstances,\n deps: [_FEATURE_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n static forRoot(...rootEffects) {\n const effects = rootEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsRootModule,\n providers: [effectsClasses, {\n provide: _ROOT_EFFECTS,\n useValue: [effects]\n }, {\n provide: _ROOT_EFFECTS_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _ROOT_EFFECTS_INSTANCES,\n useFactory: createEffectsInstances,\n deps: [_ROOT_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction createEffectsInstances(effectsGroups, userProvidedEffectsGroups) {\n const effects = [];\n for (const effectsGroup of effectsGroups) {\n effects.push(...effectsGroup);\n }\n for (const userProvidedEffectsGroup of userProvidedEffectsGroups) {\n effects.push(...userProvidedEffectsGroup);\n }\n return effects.map(effectsTokenOrRecord => isToken(effectsTokenOrRecord) ? inject(effectsTokenOrRecord) : effectsTokenOrRecord);\n}\nfunction _provideForRootGuard() {\n const runner = inject(EffectsRunner, {\n optional: true,\n skipSelf: true\n });\n const rootEffects = inject(_ROOT_EFFECTS, {\n self: true\n });\n // check whether any effects are actually passed\n const hasEffects = !(rootEffects.length === 1 && rootEffects[0].length === 0);\n if (hasEffects && runner) {\n throw new TypeError(`EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.`);\n }\n return 'guarded';\n}\n\n/**\n * Wraps project fn with error handling making it safe to use in Effects.\n * Takes either a config with named properties that represent different possible\n * callbacks or project/error callbacks that are required.\n */\nfunction act(/** Allow to take either config object or project/error functions */\nconfigOrProject, errorFn) {\n const {\n project,\n error,\n complete,\n operator,\n unsubscribe\n } = typeof configOrProject === 'function' ? {\n project: configOrProject,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: errorFn,\n operator: concatMap,\n complete: undefined,\n unsubscribe: undefined\n } : {\n ...configOrProject,\n operator: configOrProject.operator || concatMap\n };\n return source => defer(() => {\n const subject = new Subject();\n return merge(source.pipe(operator((input, index) => defer(() => {\n let completed = false;\n let errored = false;\n let projectedCount = 0;\n return project(input, index).pipe(materialize(), map(notification => {\n switch (notification.kind) {\n case 'E':\n errored = true;\n return {\n kind: 'N',\n value: error(notification.error, input)\n };\n case 'C':\n completed = true;\n return complete ? {\n kind: 'N',\n value: complete(projectedCount, input)\n } : undefined;\n default:\n ++projectedCount;\n return notification;\n }\n }), filter(n => n != null), dematerialize(), finalize(() => {\n if (!completed && !errored && unsubscribe) {\n subject.next(unsubscribe(projectedCount, input));\n }\n }));\n }))), subject);\n });\n}\n\n/**\n * @usageNotes\n *\n * ### Providing effects at the root level\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideEffects(RouterEffects)],\n * });\n * ```\n *\n * ### Providing effects at the feature level\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideEffects(BooksApiEffects)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideEffects(...effects) {\n const effectsClassesAndRecords = effects.flat();\n const effectsClasses = getClasses(effectsClassesAndRecords);\n return makeEnvironmentProviders([effectsClasses, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n inject(ROOT_STORE_PROVIDER);\n inject(FEATURE_STATE_PROVIDER, {\n optional: true\n });\n const effectsRunner = inject(EffectsRunner);\n const effectSources = inject(EffectSources);\n const shouldInitEffects = !effectsRunner.isStarted;\n if (shouldInitEffects) {\n effectsRunner.start();\n }\n for (const effectsClassOrRecord of effectsClassesAndRecords) {\n const effectsInstance = isClass(effectsClassOrRecord) ? inject(effectsClassOrRecord) : effectsClassOrRecord;\n effectSources.addEffects(effectsInstance);\n }\n if (shouldInitEffects) {\n const store = inject(Store);\n store.dispatch(rootEffectsInit());\n }\n }\n }]);\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Actions, EFFECTS_ERROR_HANDLER, EffectSources, EffectsFeatureModule, EffectsModule, EffectsRootModule, EffectsRunner, ROOT_EFFECTS_INIT, USER_PROVIDED_EFFECTS, act, createEffect, defaultEffectsErrorHandler, getEffectsMetadata, mergeEffects, ofType, provideEffects, rootEffectsInit };\n","export const VANILLA_LAZY_ROUTES = [\n {\n path: 'logout',\n loadChildren: () => import('@frontend/vanilla/features/logout-page').then((m) => m.ROUTES),\n },\n {\n path: 'nativeapp',\n loadChildren: () => import('@frontend/vanilla/features/native-app').then((m) => m.ROUTES),\n },\n {\n path: 'inbox',\n loadChildren: () => import('@frontend/vanilla/features/inbox').then((m) => m.ROUTES),\n },\n {\n path: 'labelhost',\n loadChildren: () => import('@frontend/vanilla/features/login').then((m) => m.ROUTES), // TODO: Change to new login routes\n },\n {\n path: 'menu',\n loadChildren: () => import('@frontend/vanilla/features/account-menu').then((m) => m.ROUTES),\n },\n {\n path: 'product-menu',\n loadChildren: () => import('@frontend/vanilla/features/product-menu').then((m) => m.ROUTES),\n },\n {\n path: 'profile',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.PROFILEPAGE_ROUTES),\n },\n {\n path: 'preferences',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.DARKMODE_ROUTES),\n },\n {\n path: 'settings',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.NAVIGATIONLAYOUT_ROUTES),\n },\n {\n path: 'account',\n loadChildren: () => import('@frontend/vanilla/features/balance-breakdown').then((m) => m.ROUTES),\n },\n {\n path: 'remember-me-logout',\n loadChildren: () => import('@frontend/vanilla/features/remember-me-logout-prompt').then((m) => m.ROUTES),\n },\n {\n path: 'gaming-declaration',\n loadChildren: () => import('@frontend/vanilla/features/player-gaming-declaration').then((m) => m.ROUTES),\n },\n {\n path: 'cashier',\n loadChildren: () => import('@frontend/vanilla/features/cashier').then((m) => m.ROUTES),\n },\n];\n","import { Injectable } from '@angular/core';\n\nimport { CasinoPlatformLoaderService } from '@casinocore/loader';\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { FeaturesClientConfig, LmtClientConfig } from '../client-config/lottery-client-config.models';\nimport { LotteryLobbyService } from '../shared/lottery-lobby.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LotBootstrapService implements OnAppInit {\n constructor(\n private casinoPlatformLoader: CasinoPlatformLoaderService,\n private lmtConfig: LmtClientConfig,\n private featuresConfig: FeaturesClientConfig,\n private lobbyService: LotteryLobbyService,\n ) {}\n onAppInit() {\n let configs: any = {\n lobbyTypeMap: this.lmtConfig.lobbyTypeMap,\n disableProductLobbyDataFetch: this.featuresConfig.disableProductLobbyDataFetch,\n };\n this.casinoPlatformLoader.loadCasinoPlatformModule(configs);\n this.lobbyService.checkForTouchDevice();\n this.lobbyService.fetchCategorySitecoreData();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\n\nimport { LotBootstrapService } from './bootstrap/lot-bootstrap.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LotteryBootstrapGuard implements Resolve<any> {\n constructor(private lotBootstrapService: LotBootstrapService) {}\n resolve() {\n this.lotBootstrapService.onAppInit();\n }\n}\n","import { Routes } from '@angular/router';\n\nimport { routeData } from '@frontend/vanilla/core';\n\nimport { LotteryBootstrapGuard } from './lottery-bootstrap.guard';\n\nexport const LOTTERY_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./lottery-home/lottery-home.component').then((c) => c.LotteryHomeComponent),\n resolve: { LotteryBootstrapGuard },\n data: routeData({ allowAnonymous: true }),\n },\n {\n path: ':product/c/:categoryType',\n resolve: { LotteryBootstrapGuard },\n loadComponent: () => import('./lottery-home/lottery-home.component').then((c) => c.LotteryHomeComponent),\n },\n {\n path: ':product',\n resolve: { LotteryBootstrapGuard },\n loadComponent: () => import('./lottery-home/lottery-home.component').then((c) => c.LotteryHomeComponent),\n },\n {\n path: 'howtoplay',\n resolve: { LotteryBootstrapGuard },\n loadComponent: () =>\n import('./lottery-how-to-play-page-section/lottery-how-to-play-page-section.component').then(\n (c) => c.LotteryHowToPlayPageSectionComponent,\n ),\n },\n];\n","import { Routes } from '@angular/router';\n\nimport { VANILLA_LAZY_ROUTES } from '@frontend/loaders/routes';\n\nimport { LotteryHomeComponent } from './lottery-home/lottery-home.component';\nimport { LOTTERY_ROUTES } from './lottery.routes';\n\nexport const appRoutes: Routes = [\n {\n path: '',\n component: LotteryHomeComponent,\n },\n {\n path: '{culture}',\n children: [\n ...VANILLA_LAZY_ROUTES,\n {\n path: 'lotto',\n children: [...LOTTERY_ROUTES],\n },\n // TODO: START remove all these lotto routes\n // they are all now under lotto/{route} i.e lotto/howtoplay\n // first rollout app that supports both routes /howtoplay and /lotto/howtoplay\n // then fix all links to point to new routes\n // then with next rollout remove all these routes\n {\n path: 'howtoplay',\n loadComponent: () =>\n import('./lottery-how-to-play-page-section/lottery-how-to-play-page-section.component').then(\n (c) => c.LotteryHowToPlayPageSectionComponent,\n ),\n },\n {\n path: ':product/c/:categoryType',\n component: LotteryHomeComponent,\n },\n {\n path: ':product',\n component: LotteryHomeComponent,\n },\n // TODO: END remove all these lotto routes\n {\n path: '',\n component: LotteryHomeComponent,\n },\n {\n path: '**',\n loadChildren: () => import('@frontend/vanilla/features/not-found').then((m) => m.ROUTES),\n },\n ],\n },\n {\n path: '**',\n loadChildren: () => import('@frontend/vanilla/features/not-found').then((m) => m.ROUTES),\n },\n];\n","import { enableProdMode } from '@angular/core';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideAnimations } from '@angular/platform-browser/animations';\nimport { provideRouter } from '@angular/router';\n\nimport { provideLoaders } from '@frontend/loaders';\nimport { AppComponent, STORE_PREFIX, bootloader, provideVanillaCore, runOnAppInit } from '@frontend/vanilla/core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideStore } from '@ngrx/store';\n\nimport { appRoutes } from './app.routes';\nimport { LotBootstrapService } from './bootstrap/lot-bootstrap.service';\n\nif (process.env.NODE_ENV === 'production') {\n enableProdMode();\n}\n\nperformance.mark('app-boot-start');\nbootloader().then(() => {\n performance.mark('app-client-config-ready');\n performance.measure('client-config', 'app-boot-start', 'app-client-config-ready');\n bootstrapApplication(AppComponent, {\n providers: [\n provideRouter(appRoutes),\n provideAnimations(),\n provideVanillaCore(),\n provideLoaders(),\n provideStore(undefined, {\n runtimeChecks: {\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictStateSerializability: false,\n strictActionSerializability: false,\n },\n }),\n provideEffects([]),\n { provide: STORE_PREFIX, useValue: 'lottery.' },\n runOnAppInit(LotBootstrapService),\n ],\n })\n .then(() => {\n performance.mark('app-boot-end');\n performance.measure('app-boot', 'app-boot-start', 'app-boot-end');\n })\n // eslint-disable-next-line no-console\n .catch((err) => console.error(err));\n});\n"],"names":["_c0","_c1","MatSliderVisualThumb_Conditional_0_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","_c2","_c3","MatSlider_Conditional_6_Conditional_2_For_1_Template","ɵɵelement","tickMark_r1","ɵ$index_14_r2","ctx_r2","ɵɵclassMap","ɵɵstyleProp","MatSlider_Conditional_6_Conditional_2_Template","ɵɵrepeaterCreate","ɵɵrepeaterTrackByIndex","ɵɵrepeater","MatSlider_Conditional_6_Template","ɵɵtemplate","ɵɵconditional","MatSlider_Conditional_7_Template","ɵɵproperty","_MatThumb","_MatTickMark","MAT_SLIDER","InjectionToken","MAT_SLIDER_THUMB","MAT_SLIDER_RANGE_THUMB","MAT_SLIDER_VISUAL_THUMB","MatSliderVisualThumb","_MatSliderVisualThumb","_cdr","_ngZone","_elementRef","_slider","inject","Platform","event","rect","isHovered","sliderInput","input","rippleRef","RippleState","animation","ignoreGlobalRippleConfig","sibling","__ngFactoryType__","ɵɵdirectiveInject","ChangeDetectorRef","NgZone","ElementRef","ɵɵdefineComponent","ɵɵviewQuery","MatRipple","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵProvidersFeature","ɵɵStandaloneFeature","MatSlider","_MatSlider","v","endInput","startInput","min","prevMin","oldEndValue","oldStartValue","oldValue","max","prevMax","step","prevStartValue","_dir","_globalRippleOptions","animationMode","value","eInput","sInput","thumb","thumbPosition","styles","trackStyle","index","source","input1","input2","sourceThumb","valuetext","visualThumb","percentage","activePercentage","numActive","numInactive","endValue","startValue","numInactiveBeforeStartThumb","numInactiveAfterEndThumb","withAnimation","radius","centerX","centerY","dx","dy","Directionality","MAT_RIPPLE_GLOBAL_OPTIONS","ANIMATION_MODULE_TYPE","dirIndex","ɵɵcontentQuery","ɵɵclassProp","booleanAttribute","numberAttribute","ɵɵInputTransformsFeature","ɵɵprojectionDef","ɵɵprojection","MAT_SLIDER_THUMB_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","MatSliderThumb","_MatSliderThumb","stringValue","EventEmitter","signal","Subject","isCursorOnSliderThumb","xPos","width","numSteps","impreciseValue","prevValue","options","fn","isDisabled","ɵɵdefineDirective","ɵɵlistener","ɵɵattribute","MatSliderModule","_MatSliderModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","MatRippleModule","CDK_ACCORDION","nextId","CdkAccordionItem","_CdkAccordionItem","expanded","accordionId","accordion","_changeDetectorRef","_expansionDispatcher","Subscription","id","UniqueSelectionDispatcher","CdkAccordionModule","_CdkAccordionModule","MatExpansionPanel_ng_template_5_Template","_c4","MatExpansionPanelHeader_Conditional_4_Template","ɵɵnamespaceSVG","MAT_ACCORDION","EXPANSION_PANEL_ANIMATION_TIMING","matExpansionAnimations","trigger","state","style","transition","animate","MAT_EXPANSION_PANEL","MatExpansionPanelContent","_MatExpansionPanelContent","_template","_expansionPanel","TemplateRef","uniqueId","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","_MatExpansionPanel","_uniqueSelectionDispatcher","_viewContainerRef","_document","_animationMode","defaultOptions","startWith","filter","take","TemplatePortal","changes","focusedElement","bodyElement","isInitialAnimation","ViewContainerRef","DOCUMENT","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","_r1","ɵɵgetCurrentView","$event","ɵɵrestoreView","ɵɵresetView","CdkPortalOutlet","MatExpansionPanelHeader","_MatExpansionPanelHeader","panel","_element","_focusMonitor","tabIndex","accordionHideToggleChange","EMPTY","merge","isExpanded","hasModifierKey","origin","FocusMonitor","ɵɵinjectAttribute","MatExpansionPanelDescription","_MatExpansionPanelDescription","MatExpansionPanelTitle","_MatExpansionPanelTitle","MatExpansionModule","_MatExpansionModule","PortalModule","policy","getPolicy","ttWindow","s","trustedHTMLFromString","html","getMatIconNameNotFoundError","iconName","getMatIconNoHttpProviderError","getMatIconFailedToSanitizeUrlError","url","getMatIconFailedToSanitizeLiteralError","literal","SvgIconConfig","svgText","MatIconRegistry","_MatIconRegistry","_httpClient","_sanitizer","document","_errorHandler","namespace","resolver","cleanLiteral","SecurityContext","trustedLiteral","alias","classNames","safeUrl","cachedIcon","of","cloneSvg","tap","svg","map","name","key","iconKey","config","iconSetConfigs","throwError","namedIcon","iconSetFetchRequests","iconSetConfig","catchError","err","errorMessage","forkJoin","foundIcon","iconSet","iconSource","iconElement","str","div","element","attributes","i","iconConfig","withCredentials","inProgressFetch","req","finalize","share","configNamespace","result","isSafeUrlWithOptions","ɵɵinject","HttpClient","DomSanitizer","ErrorHandler","ɵɵdefineInjectable","MAT_ICON_DEFAULT_OPTIONS","MAT_ICON_LOCATION","MAT_ICON_LOCATION_FACTORY","_location","funcIriAttributes","funcIriAttributeSelector","attr","funcIriPattern","MatIcon","_MatIcon","newValue","_iconRegistry","ariaHidden","defaults","parts","cachedElements","newPath","path","layoutElement","childCount","child","elem","fontSetClasses","className","elements","attrs","elementsWithFuncIri","elementWithReference","match","rawName","MatIconModule","_MatIconModule","SingleBoxSharedResizeObserver","_box","entries","target","Observable","observer","subscription","entry","shareReplay","takeUntil","SharedResizeObserver","_SharedResizeObserver","box","_c5","_c6","_c7","_c8","_c9","MatFormField_ng_template_0_Conditional_0_Conditional_2_Template","MatFormField_ng_template_0_Conditional_0_Template","ctx_r1","MatFormField_ng_template_0_Template","MatFormField_Conditional_4_Template","MatFormField_Conditional_6_Conditional_1_ng_template_0_Template","MatFormField_Conditional_6_Conditional_1_Template","labelTemplate_r3","ɵɵreference","MatFormField_Conditional_6_Template","MatFormField_Conditional_7_Template","MatFormField_Conditional_8_Template","MatFormField_Conditional_10_ng_template_0_Template","MatFormField_Conditional_10_Template","MatFormField_Conditional_12_Template","MatFormField_Conditional_13_Template","MatFormField_Conditional_14_Template","MatFormField_Case_16_Template","MatFormField_Case_17_Conditional_1_Template","MatFormField_Case_17_Template","MatLabel","_MatLabel","MAT_ERROR","nextUniqueId$1","MatHint","_MatHint","ɵɵhostProperty","MAT_PREFIX","MAT_SUFFIX","MatSuffix","_MatSuffix","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","_MatFormFieldFloatingLabel","estimateScrollWidth","htmlEl","clone","scrollWidth","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","_MatFormFieldLineRipple","ngZone","classList","isDeactivating","MatFormFieldNotchedOutline","_MatFormFieldNotchedOutline","label","labelWidth","matFormFieldAnimations","MatFormFieldControl","_MatFormFieldControl","MAT_FORM_FIELD","MAT_FORM_FIELD_DEFAULT_OPTIONS","nextUniqueId","DEFAULT_APPEARANCE","DEFAULT_FLOAT_LABEL","DEFAULT_SUBSCRIPT_SIZING","FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM","MatFormField","_MatFormField","coerceBooleanProperty","newAppearance","_unusedNgZone","_platform","_defaults","_unusedDocument","contentChild","Injector","computed","previousControl","control","classPrefix","p","afterRender","prop","ids","startHint","hint","endHint","error","floatingLabel","iconPrefixContainer","textPrefixContainer","iconSuffixContainer","textSuffixContainer","iconPrefixContainerWidth","textPrefixContainerWidth","iconSuffixContainerWidth","textSuffixContainerWidth","negate","prefixWidth","labelHorizontalOffset","prefixAndSuffixWidth","rootNode","ɵɵcontentQuerySignal","ɵɵqueryAdvance","ɵɵtemplateRefExtractor","tmp_16_0","NgTemplateOutlet","MatFormFieldModule","_MatFormFieldModule","CommonModule","ObserversModule","listenerOptions","normalizePassiveListenerOptions","AutofillMonitor","_AutofillMonitor","elementOrRef","coerceElement","info","cssClass","listener","_info","TextFieldModule","_TextFieldModule","MAT_INPUT_VALUE_ACCESSOR","MAT_INPUT_INVALID_TYPES","MatInput","_MatInput","Validators","getSupportedInputTypes","ngControl","parentForm","parentFormGroup","defaultErrorStateMatcher","inputValueAccessor","_autofillMonitor","_formField","t","el","nodeName","_ErrorStateTracker","isFocused","placeholder","validity","selectElement","firstOption","NgControl","NgForm","FormGroupDirective","ErrorStateMatcher","MatInputModule","_MatInputModule","MAT_BUTTON_CONFIG","HOST_SELECTOR_MDC_CLASS_PAIR","MatButtonBase","_MatButtonBase","MatRippleLoader","attribute","mdcClasses","ɵɵinvalidFactory","MatButton","_MatButton","elementRef","platform","MatIconButton","_MatIconButton","MatButtonModule","_MatButtonModule","_forTrack0","$index","$item","_forTrack1","MatCalendarBody_Conditional_0_Template","ɵɵtextInterpolate1","MatCalendarBody_For_2_Conditional_1_Template","MatCalendarBody_For_2_For_3_Template","_r2","item_r3","ɵ$index_14_r4","ɵ$index_7_r5","MatCalendarBody_For_2_Template","row_r6","MatMonthView_For_4_Template","day_r1","MatCalendar_ng_template_0_Template","MatCalendar_Case_2_Template","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","ɵɵtwoWayProperty","MatCalendar_Case_3_Template","_r3","MatCalendar_Case_4_Template","_r4","MatDatepickerContent_ng_template_2_Template","MatDatepickerToggle_Conditional_2_Template","MatDatepickerIntl","_MatDatepickerIntl","start","end","uniqueIdCounter$1","MatCalendarCell","displayValue","ariaLabel","enabled","cssClasses","compareValue","rawValue","calendarBodyId","activeCapturingEventOptions","passiveCapturingEventOptions","passiveEventOptions","MatCalendarBody","_MatCalendarBody","row","cell","getActualTouchTarget","getCellElement","cellElement","columnChanges","rows","numCols","rowIndex","colIndex","cellNumber","movePreview","afterNextRender","activeCell","isStart","isEnd","isInRange","previousCell","previousRow","nextCell","nextRow","col","NgClass","isTableCell","node","rangeEnabled","touchLocation","DateRange","MatDateSelectionModel","_MatDateSelectionModel","selection","_adapter","date","MatSingleDateSelectionModel","_MatSingleDateSelectionModel","adapter","DateAdapter","MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY","parent","MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER","Optional","SkipSelf","MAT_DATE_RANGE_SELECTION_STRATEGY","DAYS_PER_WEEK","uniqueIdCounter","MatMonthView","_MatMonthView","oldActiveDate","validDate","_dateFormats","_dateAdapter","_rangeStrategy","comparisonChange","selectedDate","rangeStartDate","rangeEndDate","month","isRtl","firstOfMonth","previewRange","dragRange","dragDropResult","dayOfMonth","firstDayOfWeek","narrowWeekdays","weekdays","long","daysInMonth","dateNames","cellClasses","d1","d2","year","day","selectedValue","MAT_DATE_FORMATS","yearsPerPage","yearsPerRow","MatMultiYearView","_MatMultiYearView","isSameMultiYearView","minYearOfPage","getActiveOffset","selectedYear","activeMonth","yearName","firstOfYear","dateAdapter","date1","date2","minDate","maxDate","year1","year2","startingYear","getStartingYear","activeDate","activeYear","euclideanModulo","a","b","MatYearView","_MatYearView","selectedMonth","monthNames","normalizedDate","monthName","maxYear","maxMonth","minYear","minMonth","calendarHeaderId","MatCalendarHeader","_MatCalendarHeader","_intl","calendar","changeDetectorRef","maxYearOfPage","minYearLabel","maxYearLabel","MatCalendar","ɵɵnamespaceHTML","_MatCalendar","viewChangedResult","ComponentPortal","minDateChange","maxDateChange","changeRequiringRerender","view","normalizedYear","normalizedMonth","tmp_1_0","CdkMonitorFocus","matDatepickerAnimations","keyframes","datepickerUid","MAT_DATEPICKER_SCROLL_STRATEGY","overlay","Overlay","MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY","MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER","MatDatepickerContent","_MatDatepickerContent","_globalModel","_rangeSelectionStrategy","intl","isRange","newSelection","portal","forceRerender","ɵɵsyntheticHostListener","ɵɵsyntheticHostProperty","tmp_3_0","CdkTrapFocus","MatDatepickerBase","_MatDatepickerBase","coerceStringArray","_overlay","scrollStrategy","_model","positionChange","positionStrategy","FlexibleConnectedPositionStrategy","_getFocusedElementPierceShadowDom","canRestoreFocus","completeClose","instance","location","activeElement","isDialog","overlayRef","OverlayConfig","keyCode","strategy","primaryX","secondaryX","primaryY","secondaryY","ctrlShiftMetaModifiers","modifier","MatDatepicker","_MatDatepicker","ɵMatDatepicker_BaseFactory","ɵɵgetInheritedFactory","MatDatepickerInputEvent","targetElement","MatDatepickerInputBase","_MatDatepickerInputBase","model","controlValue","dateInputsHaveChanged","c","lastValueWasValid","hasChanged","keys","previousValue","currentValue","MAT_DATEPICKER_VALUE_ACCESSOR","MatDatepickerInput","MAT_DATEPICKER_VALIDATORS","NG_VALIDATORS","_MatDatepickerInput","datepicker","validValue","wasMatchingValue","dateFormats","modelValue","MatDatepickerToggleIcon","_MatDatepickerToggleIcon","MatDatepickerToggle","_MatDatepickerToggle","defaultTabIndex","parsedTabIndex","datepickerStateChanged","inputStateChanged","datepickerToggled","MatDatepickerModule","_MatDatepickerModule","OverlayModule","A11yModule","CdkScrollableModule","CdkTable_Conditional_2_Template","CdkTable_Conditional_3_Template","ɵɵelementContainer","CdkTable_Conditional_4_Template","CDK_TABLE","CdkCellDef","_CdkCellDef","template","CdkHeaderCellDef","_CdkHeaderCellDef","CdkFooterCellDef","_CdkFooterCellDef","CdkColumnDef","_CdkColumnDef","_table","hasStickyChanged","BaseCdkCell","columnDef","CdkHeaderCell","_CdkHeaderCell","CdkFooterCell","_CdkFooterCell","role","CdkCell","_CdkCell","_Schedule","_COALESCED_STYLE_SCHEDULER","_CoalescedStyleScheduler","__CoalescedStyleScheduler","task","schedule","BaseRowDef","_BaseRowDef","_differs","columns","column","CdkHeaderRowDef","CdkFooterRowDef","IterableDiffers","_CdkHeaderRowDef","_CdkFooterRowDef","CdkRowDef","_CdkRowDef","CdkCellOutlet","_CdkCellOutlet","_viewContainer","CdkHeaderRow","_CdkHeaderRow","CdkFooterRow","_CdkFooterRow","CdkRow","_CdkRow","CdkNoDataRow","_CdkNoDataRow","templateRef","STICKY_DIRECTIONS","StickyStyler","_isNativeHtmlTable","_stickCellCss","direction","_coalescedStyleScheduler","_isBrowser","_needsPositionStickyOnElement","_positionListener","stickyDirections","elementsToClear","stickyStartStates","stickyEndStates","recalculateCellWidths","firstRow","numCells","cellWidths","startPositions","endPositions","lastStickyStart","firstStickyEnd","rowsToStick","stickyStates","position","states","stickyOffsets","stickyCellHeights","elementsToStick","stickyOffset","height","borderedRowIndex","offset","isBorderedRowIndex","tableElement","tfoot","dir","dirValue","isBorderElement","zIndexIncrements","zIndex","firstRowCells","widths","positions","nextPosition","STICKY_POSITIONING_LISTENER","DataRowOutlet","_DataRowOutlet","viewContainer","table","HeaderRowOutlet","_HeaderRowOutlet","FooterRowOutlet","_FooterRowOutlet","NoDataRowOutlet","_NoDataRowOutlet","CdkTable","_CdkTable","cellRole","dataSource","_viewRepeater","_viewportRuler","_stickyPositioningListener","BehaviorSubject","_i","dataRow","def","isDataSource","record","_adjustedPreviousIndex","currentIndex","change","_ViewRepeaterOperation","rowView","rowDef","headerRowDef","footerRowDef","noDataRow","headerRows","thead","closestTableSection","footerRows","dataRows","headerRow","footerRow","rowDefsChanged","renderRows","prevCachedRenderRows","data","renderRowsForData","j","renderRow","cache","dataIndex","cachedRenderRows","mergeArrayAndSet","defaultRowDefs","columnsDiffReducer","acc","dataColumnsChanged","headerColumnsChanged","footerColumnsChanged","dataStream","isObservable","columnDefs","columnName","rowOutlet","renderedRows","viewRef","rowDefs","context","outlet","cellTemplate","renderIndex","count","columnId","stickyCheckReducer","d","items","item","shouldShow","container","_VIEW_REPEATER_STRATEGY","ViewportRuler","_DisposeViewRepeaterStrategy","array","set","section","uppercaseSection","current","CdkTableModule","_CdkTableModule","ScrollingModule","MatTable_Conditional_2_Template","MatTable_Conditional_3_Template","MatTable_Conditional_4_Template","MatTable","_MatTable","ɵMatTable_BaseFactory","MatCellDef","_MatCellDef","ɵMatCellDef_BaseFactory","MatHeaderCellDef","_MatHeaderCellDef","ɵMatHeaderCellDef_BaseFactory","MatFooterCellDef","_MatFooterCellDef","ɵMatFooterCellDef_BaseFactory","MatColumnDef","_MatColumnDef","ɵMatColumnDef_BaseFactory","MatHeaderCell","_MatHeaderCell","ɵMatHeaderCell_BaseFactory","MatFooterCell","_MatFooterCell","ɵMatFooterCell_BaseFactory","MatCell","_MatCell","ɵMatCell_BaseFactory","MatHeaderRowDef","_MatHeaderRowDef","ɵMatHeaderRowDef_BaseFactory","MatFooterRowDef","_MatFooterRowDef","ɵMatFooterRowDef_BaseFactory","MatRowDef","_MatRowDef","ɵMatRowDef_BaseFactory","MatHeaderRow","_MatHeaderRow","ɵMatHeaderRow_BaseFactory","MatFooterRow","_MatFooterRow","ɵMatFooterRow_BaseFactory","MatRow","_MatRow","ɵMatRow_BaseFactory","MatTableModule","_MatTableModule","SvgComponent","constructor","httpClient","displayMode","ngOnInit","get","image","src","responseType","subscribe","svgImage","DOMParser","parseFromString","getElementsByTagName","hasAttribute","viewBox","setAttribute","setClass","setStyle","nativeElement","appendChild","add","split","forEach","trim","iconType","defaultAnimation","size","setProperty","customAnimation","length","animationClass","addEventListener","WindowEvent","AnimationEnd","remove","selectors","viewQuery","u","x","C","g","i0","containerClass","encapsulation","_SvgComponent","l","priority","imageClass","L","ɵɵsanitizeUrl","k","textClass","ɵɵpipeBind1","intro","ɵɵsanitizeHtml","ɵɵpureFunction1","titleFontSize","toLowerCase","B","title","D","subtitle","E","ImageComponent_Conditional_0_Conditional_5_Conditional_3_Template","ImageComponent_Conditional_0_Conditional_5_Conditional_4_Template","ImageComponent_Conditional_0_Conditional_5_Conditional_5_Template","ɵɵpureFunction2","textAlign","ImageComponent_Conditional_0_Conditional_3_Template","ImageComponent_Conditional_0_Conditional_4_Template","ImageComponent_Conditional_0_Conditional_5_Template","ImageComponent","inputs","alt","standalone","features","decls","vars","consts","ImageComponent_Conditional_0_Template","TrustAsHtmlPipe","NgOptimizedImage","_ImageComponent","BadgeConfig","_a","factory","__ngConditionalFactory__","badgeConfigFactory","ClientConfigService","__decorate","ClientConfig","product","ClientConfigProductName","SF","service","BadgeType","MenuItemBadgeDirective","class","Array","isArray","badgeClass","push","indexOf","counter","badgeConfig","join","text","type","badgeType","Counter","hidden","Icon","menuItemsService","getCounter","MenuItemsService","hostVars","hostBindings","_MenuItemBadgeDirective","AuthstateDirective","vnAuthstate","updateView","renderer","user","hasView","disabled","unsubscribe","events","pipe","e","UserUpdateEvent","onUserstateChange","ngOnDestroy","next","complete","toggle","show","createEmbeddedView","rootNodes","clear","workflowType","isAuthenticated","mode","addClass","removeClass","Renderer2","UserService","Y","_AuthstateDirective","TooltipsConfig","LazyClientConfigBase","vt","y","tooltipsConfigFactory","LazyClientConfigService","LazyClientConfig","TooltipsService","activeTooltip","tooltips","tooltipNames","clearTooltips","isActive","addTooltip","tooltipTemplates","getTooltip","currentItem","nextTooltip","tooltip","showTooltip","previousTooltip","tooltipName","hasNext","hasPrevious","removeTooltip","splice","closeTooltip","ɵfac","providedIn","_TooltipsService","previous","itemName","commonMessages","PopoverPreviousText","PopoverNextText","_r5","tooltipsService","PopoverCloseText","TooltipsComponent_Conditional_0_Conditional_11_Template","TooltipsComponent_Conditional_0_Conditional_12_Template","TooltipsComponent_Conditional_0_Conditional_13_Template","r","tmp_2_0","TooltipsComponent","onNextClick","onPreviousClick","tooltipItem","delay","top","offsetParent","offsetTop","offsetHeight","isNaN","window","scrollTo","behavior","CommonMessages","outputs","TooltipsComponent_Conditional_0_Template","tmp_0_0","DynamicHtmlDirective","IconCustomComponent","_TooltipsComponent","MenuItemClickHandlerService","menuActionsService","MenuActionsService","log","Logger","handleMenuTrack","__async","trackClick","catch","handleMenuAction","processClick","_MenuItemClickHandlerService","additionalClass","undefined","MenuItemTextContentComponent","renderHtmlText","MenuItemTextContentComponent_Conditional_0_Template","MenuItemTextContentComponent_Conditional_1_Template","_MenuItemTextContentComponent","Me","MenuItemComponent_Conditional_0_ng_container_1_Template","f","plainText_r1","be","we","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_1_Conditional_5_ng_container_1_Template","badge_r4","He","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_1_ng_container_3_Template","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_1_Conditional_5_Template","image_r5","badgePosition","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_2_Conditional_1_Conditional_3_ng_container_1_Template","Ae","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_2_Conditional_1_Conditional_3_Template","iconClass","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_2_Conditional_1_Template","Ee","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_1_Template","MenuItemComponent_Conditional_1_a_1_Conditional_3_Conditional_2_Template","MenuItemComponent_Conditional_1_a_1_Conditional_4_ng_container_1_Template","vnicon_r6","MenuItemComponent_Conditional_1_a_1_Conditional_5_ng_container_1_Template","svg_r7","MenuItemComponent_Conditional_1_a_1_Conditional_6_ng_container_1_Template","itemDescription","descriptionCssClass","Ue","We","MenuItemComponent_Conditional_1_a_1_Conditional_10_ng_container_1_Template","MenuItemComponent_Conditional_1_a_1_Conditional_11_ng_container_1_Template","Ye","additionalIcon","parameters","$e","badgeTextClass","ɵɵelementContainerStart","wt","popper_r8","content","tooltipClass","tooltipText","Ge","S","click","MenuItemComponent_Conditional_1_a_1_Conditional_3_Template","MenuItemComponent_Conditional_1_a_1_Conditional_4_Template","MenuItemComponent_Conditional_1_a_1_Conditional_5_Template","MenuItemComponent_Conditional_1_a_1_Conditional_6_Template","MenuItemComponent_Conditional_1_a_1_ng_container_7_Template","MenuItemComponent_Conditional_1_a_1_Conditional_9_Template","MenuItemComponent_Conditional_1_a_1_Conditional_10_Template","MenuItemComponent_Conditional_1_a_1_Conditional_11_Template","MenuItemComponent_Conditional_1_a_1_Conditional_12_Template","MenuItemComponent_Conditional_1_a_1_Conditional_13_Template","MenuItemComponent_Conditional_1_a_1_Conditional_14_Template","isActive$","htmlAttributes","linkClasses","It","DisplayMode","FastIcon","SvgIcon","Je","MenuItemComponent_Conditional_1_a_1_Template","authstate","toolTip","Ze","MenuItemComponent_Conditional_2_Conditional_1_Template","ti","ei","MenuItemComponent_ng_template_3_Conditional_1_Conditional_3_ng_container_1_Template","ii","MenuItemComponent_ng_template_3_Conditional_1_Conditional_3_Template","MenuItemComponent_ng_template_3_Conditional_1_Template","oi","si","iconName2","ri","MenuItemComponent_ng_template_11_Conditional_3_ng_container_1_Template","ci","MenuItemComponent_ng_template_11_Conditional_1_Template","MenuItemComponent_ng_template_11_Conditional_2_Template","MenuItemComponent_ng_template_11_Conditional_3_Template","mi","lazyLoad","pi","badgeText","di","MenuItemComponent_ng_template_19_Conditional_3_Template","Ci","MenuItemComponent_ng_template_23_Conditional_1_Template","MenuItemComponent","_window","deviceService","tooltipsConfig","cookieService","dslService","timerService","menuItemClickHandler","trackingService","__privateAdd","addItemClassToLinkClasses","onClick","MenuDisplayMode","__privateSet","WINDOW","highlighted","evaluateExpression","getDescription","description","resources","getDescriptionCssClass","toBoolean","put","CookieName","PreviousPageUrl","__privateGet","href","textOnClick","emit","isRobot","lazyLoadImage","linkClass","slice","reduce","trackEvents","WebAnalyticsEventType","load","ngAfterViewInit","firstValueFrom","whenReady","Object","fromEntries","startsWith","replace","isOnboardingTooltipsEnabled","setTimeout","showOnboardingTooltips","tooltipType","tooltipsShown","OnBtt","onboardings","detectChanges","popperContent","tooltipsArray","expireDate","Date","setFullYear","getFullYear","expires","DeviceService","CookieService","DslService","TimerService","TrackingService","O","PopperContentComponent","Nt","At","toMenuDisplayMode","MenuItemComponent_Conditional_0_Template","MenuItemComponent_Conditional_1_Template","MenuItemComponent_Conditional_2_Template","MenuItemComponent_ng_template_3_Template","MenuItemComponent_ng_template_7_Template","MenuItemComponent_ng_template_11_Template","MenuItemComponent_ng_template_15_Template","MenuItemComponent_ng_template_19_Template","MenuItemComponent_ng_template_23_Template","AsyncPipe","HtmlAttrsDirective","NgxFloatUiModule","NgxFloatUiDirective","_MenuItemComponent","AccountMenuOnboardingService","oneYearFromNow","dateTimeService","now","_enabled","isFirstLogin","loginCount","init","getLoginCount","tourStartedLoginCount","getTourStartedLoginCount","tourDismissed","getTourDismissed","VnLogin","incrementLoginCount","incrementTourStartedLoginCount","first","UserLoginEvent","UserLogoutEvent","VnOlc","toNumber","VnOtslc","VnOtd","toString","saveTourStartedLoginCount","saveTourCompleted","VnOtc","saveTourDismissed","DateTimeService","h","_AccountMenuOnboardingService","AccountMenuConfig","Q","accountMenuConfigFactory","AccountMenuDataService","menuContent","clientConfigService","media","topItemsLoaded","menuContentUpdated","lookup","Map","onWidgetUpdate","contentEvents","topItems","singlePageModeEnabled","widgetUpdate","isDesktop","routerMode","isMobilePhone","routerModeReturnUrl","VnMenuReturnUrl","version","messages","account","root","vipLevels","hierarchy","itemHierarchy","Boolean","distinctUntilChanged","JSON","stringify","topMenuItems","profilePageItemsPosition","singlePageMode","evaluateContent","forceRefresh","reload","then","switchMap","refreshWidgets","setReturnUrlCookie","removeReturnUrlCookie","getItem","initMenu","has","warn","children","childHierarchy","MediaQueryService","_AccountMenuDataService","AccountMenuTaskStatus","DrawerPosition","CashbackType","AccountMenuTasksService","totalCount","totalUrgentCount","URGENT","accountMenuDataService","cookieDBService","displayItems","ReplaySubject","db","createList","existingItem","some","concat","refreshItems","hide","insert","showAllHidden","deleteAll","hasHidden","getAll","update","isUrgent","includes","sort","getItemOrder","order","statusMultiplier","PENDING","CookieDBService","_AccountMenuTasksService","MenuRoute","AccountMenuRouter","navigationService","page","menuRouteTree","routeEvents","initRouterEvents","initRouter","currentRoute","route","lookupRoute","menuRoute","routerInitialized","navigateToRoute","navigateBack","parentMenuRoute","history","back","goTo","lang","isBackNavigation","setRoute","fragments","lastFragment","fragment","NavigationService","Page","_AccountMenuRouter","AccountMenuComponent_Conditional_0_Conditional_1_ng_container_3_Template","ɵɵpureFunction7","getItemComponent","layout","AccountMenuComponent_Conditional_0_Conditional_1_Template","AccountMenuComponent","accountMenuService","accountMenuRouter","isAvailable","ngOnChanges","getAccountMenuComponent","AccountMenuService","AccountMenuComponent_Conditional_0_Template","DynamicComponentDirective","_AccountMenuComponent","AnimateOverlayFrom","OverlayFactory","overlayRefs","overlayReferences","overlayRefsSubject","overlayReferencesSubject","scrollStrategies","create","overlayConfig","backdropClass","hasBackdrop","__spreadValues","__spreadProps","block","global","centerHorizontally","centerVertically","panelClass","overlayClass","createAnimatedOverlayStates","animateFrom","Bottom","initial","on","off","Left","dispose","delete","_OverlayFactory","WorkflowService","api","loginResponseHandler","loginStore","productNavigationService","execute","skip","finalizeWithData","post","finalizeHandle","executeHandle","finalizeWithDataHandle","action","response","getParameters","loginError","redirectUrl","handleResponse","loginRedirectInfo","handle","loginResponse","loginType","LoginType","SharedFeaturesApiService","LoginResponseHandlerService","LoginStoreService","ProductNavigationService","_WorkflowService","LoginConfig","w","loginConfigFactory","LoginService","userService","loginConfig","runAfterLogin","callback","runCallback","featureName","disableFeatureDataPrefetch","find","dsl","_LoginService","HeaderBarConfig","configFactory","HeaderBarService","workflow","navigation","auth","logger","urlService","handlers","enabled$$","disableClose$$","showBackButton$$","enabled$","asObservable","disableClose$","showBackButton$","_doc","isEnabledCondition","disableCloseCondition","disableClose","showBackButtonCondition","showBackButton","registerActions","register","goToLastKnownProduct","logout","close","parsedUrl","parse","culture","changeCulture","workflowCloseAction","invoke","param","referrer","fname","args","restArgs","Function","apply","Promise","resolve","reject","redirectAfterLogout","forceReload","AuthService","UrlService","_HeaderBarService","HeaderBarBootstrapService","headerBarService","onFeatureInit","_HeaderBarBootstrapService","provide","runOnFeatureInit","ConfirmPopupConfig","confirmPopupConfigFactory","Qe","stay","leave","content_r3","leaveButton","stayButton","ConfirmPopupComponent","confirmPopupConfig","eventsService","EventsService","OverlayRef","triggerEvent","trackingDataLoad","trackingDataClick","raise","eventName","VanillaEventNames","ConfirmPopupLeaveButton","trackData","eventDetails","detach","ConfirmPopupComponent_Conditional_0_Template","changeDetection","_ConfirmPopupComponent","ConfirmPopupService","injector","currentRef","detachments","providers","useValue","attach","setInput","_ConfirmPopupService","ConfirmPopupAction","backButtonText","tt","onBackClick","HeaderBarComponent_Conditional_0_Conditional_7_Conditional_3_Template","nt","titleCssClass","ot","onCloseClick","rt","HeaderBarComponent_Conditional_0_Conditional_15_Conditional_1_Template","showClose","closeButtonTextCssClass","closeButtonText","st","HeaderBarComponent_Conditional_0_Conditional_16_Conditional_1_Template","ct","HeaderBarComponent_Conditional_0_Conditional_7_Template","HeaderBarComponent_Conditional_0_Conditional_11_Template","HeaderBarComponent_Conditional_0_Conditional_12_Template","HeaderBarComponent_Conditional_0_Conditional_15_Template","HeaderBarComponent_Conditional_0_Conditional_16_Template","leftContentClass","showBack","useLogoHeader","HeaderBarComponent","showConfirmPopup","confirmPopupTrackLoad","confirmPopupTrackClick","trackBackClickEvent","trackCloseClickEvent","onBack","onClose","confirmPopupService","destroyRef","DestroyRef","takeUntilDestroyed","newEvents","Close","Back","showPopupOrEmit","emitter","ngContentSelectors","HeaderBarComponent_Conditional_0_Template","_HeaderBarComponent","LhHeaderBarComponent","observers","headerCssClass","_LhHeaderBarComponent","PageMatrixService","dynamicComponentsRegistry","registerComponent","templateName","component","VanillaDynamicComponentsCategory","PageMatrix","getComponent","DynamicComponentsRegistry","ue","_PageMatrixService","PageMatrixDirective","viewContainerRef","pageMatrixService","corePageMatrixService","templatesRegistered","renderComponent","vnPageMatrix","resolveTemplate","componentRef","createComponent","render","_PageMatrixDirective","PCComponent","trackByName","trackByProp","trackByText","createClass","componentClass","itemClass","_PCComponent","NavScrollDirective","menuTimeOut","sectionChange","scrollStop","scrollEventHandler","onScroll","clearTimeout","timeoutId","currentSection","Scroll","removeEventListener","getElementsByClassName","getBoundingClientRect","navBarTopHeight","_NavScrollDirective","PMPage","metaTagsService","MetaTagsService","htmlNode","HtmlNode","setHtmlClass","writePageMetadata","clearPageTags","tags","pageDescription","pageMetaTags","assign","setPageTags","pageTitle","htmlClass","setCssClass","_PMPage","ImageMqlHandler","mql","Change","ProfilesDirective","zone","shouldIncludeWidth","vnProfilesWidth","setName","vnProfilesSet","imageProfiles","default","sources","widthBreakpoints","profileSrc","vnProfilesSrc","search","prefix","absUrl","matchMedia","handler","run","setImage","matches","_ProfilesDirective","titleLink","PCComponentHeaderV2Component_ng_template_0_Conditional_1_Template","PCComponentHeaderV2Component_ng_template_0_Conditional_2_Template","Wt","PCComponentHeaderV2Component_Case_3_ng_container_2_Template","titleClass","content_r2","PCComponentHeaderV2Component_Case_4_ng_container_2_Template","PCComponentHeaderV2Component_Case_5_ng_container_2_Template","PCComponentHeaderV2Component_Case_6_ng_container_2_Template","PCComponentHeaderV2Component_Case_7_ng_container_2_Template","PCComponentHeaderV2Component_Case_8_ng_container_2_Template","PCComponentHeaderV2Component","tag","test","PCComponentHeaderV2Component_ng_template_0_Template","PCComponentHeaderV2Component_Case_3_Template","PCComponentHeaderV2Component_Case_4_Template","PCComponentHeaderV2Component_Case_5_Template","PCComponentHeaderV2Component_Case_6_Template","PCComponentHeaderV2Component_Case_7_Template","PCComponentHeaderV2Component_Case_8_Template","_PCComponentHeaderV2Component","Yt","PCMenuItemComponent_Conditional_4_Conditional_3_Template","PCMenuItemComponent_Conditional_4_Conditional_4_Template","PCMenuItemComponent_Conditional_6_For_4_ng_container_1_Template","ɵɵpureFunction3","subItem_r4","level","PCMenuItemComponent_Conditional_6_For_4_Template","ɵɵcomponentInstance","ɵɵclassMapInterpolate1","PCMenuItemComponent","menuActionService","findFirstNonEmpty","clickAction","nonEmpty","PCMenuItemComponent_Conditional_4_Template","PCMenuItemComponent_Conditional_6_Template","_PCMenuItemComponent","PM1ColPageComponent_For_1_ng_container_1_Template","child_r1","PCTextWithHeaderBarComponent_Conditional_1_Conditional_8_Template","customHeaderClass","onHistoryBack","PCHeaderForMppPageComponent_Conditional_1_Conditional_8_Template","ee","xi","PCImageComponent_ng_template_1_Conditional_1_Template","PCImageComponent_Conditional_5_Conditional_1_ng_container_3_Template","imageLink","pic_r2","PCImageComponent_Conditional_5_Conditional_2_Conditional_1_Template","PCImageComponent_Conditional_5_Conditional_1_Template","PCImageComponent_Conditional_5_Conditional_2_Template","Mi","PCImageTextComponent_Conditional_1_ng_template_1_Conditional_1_Template","wi","Fi","PCImageTextComponent_Conditional_1_Conditional_4_ng_container_3_Template","PCImageTextComponent_Conditional_1_Conditional_5_Conditional_1_Template","Hi","PCImageTextComponent_Conditional_1_ng_template_1_Template","PCImageTextComponent_Conditional_1_Conditional_4_Template","PCImageTextComponent_Conditional_1_Conditional_5_Template","ki","onPlay","onPause","controls","settings","autoplay","loop","muted","preload","poster","Vi","imageProfilesSet","PCTeaserComponent_Conditional_2_ng_template_3_Conditional_1_Template","ji","Ni","PCTeaserComponent_Conditional_2_Conditional_6_ng_container_3_Template","PCTeaserComponent_Conditional_2_Conditional_7_Conditional_1_Template","Wi","PCTeaserComponent_Conditional_2_ng_template_3_Template","PCTeaserComponent_Conditional_2_Conditional_6_Template","PCTeaserComponent_Conditional_2_Conditional_7_Template","imageOverlay","overlayImageProfilesSet","imageOverlayClass","$i","zi","qi","optionalText","class_r5","text_r4","PCTeaserComponent_ng_template_13_Conditional_1_Case_1_Template","PCTeaserComponent_ng_template_13_Conditional_1_Case_2_Template","PCTeaserComponent_ng_template_13_Conditional_1_Case_3_Template","PCTeaserComponent_ng_template_13_Conditional_1_Case_4_Template","PCTeaserComponent_ng_template_13_Conditional_1_Case_5_Template","PCTeaserComponent_ng_template_13_Conditional_1_Case_6_Template","tmp_6_0","tag_r6","PCTeaserComponent_ng_template_13_Conditional_1_Template","nn","PCContainerComponent_For_2_ng_container_1_Template","child_r2","rn","sn","cn","PCComponentFolderComponent_For_2_ng_container_1_Template","mn","pn","menuItem_r2","dn","PCMenuComponent_Conditional_1_For_4_Template","un","Cn","xn","PCCarouselComponent_For_3_ng_container_3_Template","gn","vn","$implicit","PCScrollMenuComponent_For_11_ng_container_1_Template","child_r4","PM1ColPageComponent","pageClass","pageId","PM1ColPageComponent_For_1_Template","_PM1ColPageComponent","PCTextComponent","P","PCTextComponent_Conditional_0_Template","_PCTextComponent","PCTextWithHeaderBarComponent","showCustomHeaderTemplate","welcomeOverlayUrl","previousUrl","PCTextWithHeaderBarComponent_Conditional_0_Template","PCTextWithHeaderBarComponent_Conditional_1_Template","_PCTextWithHeaderBarComponent","PCHeaderForMppPageComponent","productHomepages","promo","ProductHomepagesConfig","PCHeaderForMppPageComponent_Conditional_0_Template","PCHeaderForMppPageComponent_Conditional_1_Template","_PCHeaderForMppPageComponent","pcToggleCount","PCToggleComponent","PCToggleComponent_Conditional_0_Template","_PCToggleComponent","PCImageComponent","PCImageComponent_Conditional_0_Template","PCImageComponent_ng_template_1_Template","PCImageComponent_Conditional_4_Template","PCImageComponent_Conditional_5_Template","_PCImageComponent","PCImageTextComponent","PCImageTextComponent_Conditional_0_Template","PCImageTextComponent_Conditional_1_Template","PCImageTextComponent_Conditional_2_Template","_PCImageTextComponent","PCVideoComponent","playing","video","videoSrc","queryParams","ɵɵstyleMap","PCVideoComponent_Conditional_0_Template","PCVideoComponent_Conditional_1_Template","CloudflareStreamModule","CloudflareStreamComponent","_PCVideoComponent","PCTeaserComponent","subtitleTag","summaryTag","subtitleClasses","summaryClasses","additionalSubtitleClass","additionalSummaryClass","subtitleClass","summaryClass","PCTeaserComponent_Conditional_2_Template","PCTeaserComponent_Conditional_3_Template","PCTeaserComponent_ng_container_6_Template","PCTeaserComponent_ng_container_8_Template","PCTeaserComponent_Conditional_11_Template","PCTeaserComponent_Conditional_12_Template","PCTeaserComponent_ng_template_13_Template","F","title_r7","summary","_PCTeaserComponent","PCContainerComponent","PCContainerComponent_Conditional_0_Template","PCContainerComponent_For_2_Template","_PCContainerComponent","PCComponentFolderComponent","PCComponentFolderComponent_Conditional_0_Template","PCComponentFolderComponent_For_2_Template","ɵɵpipeBind3","maxItems","SlicePipe","_PCComponentFolderComponent","PCMenuComponent","destroySubject","MenuSection","currentUrl","baseUrl","menu","cloneDeep","activeChain","findActiveChain","activeLeaf","setActive","pcMenuItems","boundingRect","scrollX","scrollY","scrollBy","left","chain","childChain","PCMenuComponent_Conditional_0_Template","PCMenuComponent_Conditional_1_Template","_PCMenuComponent","PCRegionalComponent","PCRegionalComponent_Conditional_0_Template","PCRegionalComponent_ng_container_1_Template","_PCRegionalComponent","PCRawTextComponent","_PCRawTextComponent","PCRawImageComponent","PCRawImageComponent_Conditional_0_Template","_PCRawImageComponent","PCCarouselComponent","swiperOptions","pagination","centeredSlides","interval","disableOnInteraction","stopOnLastSlide","pauseOnMouseEnter","pauseOnHover","arrows","dots","slidesPerView","slidesPerGroup","Number","swiperClass","paramVal","slidesCount","PCCarouselComponent_For_3_Template","SwiperComponent","_PCCarouselComponent","DEFAULT_MENU_TIMEOUT","PCScrollMenuComponent","menuTimeoutMs","sectionChanged","sectionId","getElementById","scrollIntoView","PCScrollMenuComponent_For_5_Template","PCScrollMenuComponent_For_11_Template","menuItems","_PCScrollMenuComponent","ContentFilterComponent","embeddableComponentsService","condition","originalAttributes","originalHtmlString","dynamicHtml","destroy","createDynamicHtml","ngDoCheck","EmbeddableComponentsService","_ContentFilterComponent","PageMatrixBootstrapService","registerEmbeddableComponent","_PageMatrixBootstrapService","bn","PageMatrixComponent","contentService","setContent","contentItem","getJsonFiltered","ContentService","PageMatrixComponent_ng_container_0_Template","_PageMatrixComponent","PrizePipe","currencyPipe","configProvider","transform","givePrizeType","prizeString","totaL_PRIZE","totaL_NUMBER_OF_PRIZE","awardType","prizes","isHomogeneous","prizeType","AwardType","every","prize","provideSlotRacesConfig","displayBonusAsText","currency","CurrencyPipe","ConfigProviderService","pure","_PrizePipe","leaderboardConfigs","leaderboardHeaderBgColor","leaderboardHeaderTextColor","rankTitleText","leaderboardContentTextColor","transaction_r2","rank","coinImg","SlotRacesLeaderboardComponent_th_15_span_6_Template","race","additionalParams","sharedList","ɵɵpipeBind2","results","ɵɵpureFunction0","promotion","prizeTitleText","transaction_r3","coinValue","SlotRacesLeaderboardComponent_td_17_div_2_div_2_Template","isDisplayCoin","tn","SlotRacesLeaderboardComponent_td_17_ng_template_4_div_1_Template","an","SlotRacesLeaderboardComponent_td_17_div_2_Template","SlotRacesLeaderboardComponent_td_17_ng_template_4_Template","coinblock_r4","transaction_r5","icon","playerTitleText","transaction_r6","playerName","pointsTitleText","transaction_r7","points","enableResultsHistoryPage","ɵɵpropertyInterpolate2","showTopThree","row_r8","ɵɵpureFunction5","userName","leaderboardPlayerPositionBgColorNotNull","leaderboardPlayerPositionTextColorNotNull","leaderboardPlayerPositionAwardTypeBgColorNotNull","leaderboardPlayerPositionAwardTypeTextColorNotNull","leaderboardPlayerPositionBgColor","leaderboardPlayerPositionTextColor","playerStats","hn","leaderboardPlayerPositionAwardTypeBgColor","leaderboardPlayerPositionAwardTypeTextColor","SlotRacesLeaderboardComponent_div_47_td_17_div_2_Template","SlotRacesLeaderboardComponent_div_47_td_24_div_4_Template","SlotRacesLeaderboardComponent_div_47_td_10_Template","M","SlotRacesLeaderboardComponent_div_47_td_17_Template","SlotRacesLeaderboardComponent_div_47_td_24_Template","SlotRacesLeaderboardComponent_div_47_td_31_Template","SlotRacesLeaderboardComponent_div_47_td_38_Template","SlotRacesLeaderboardComponent_div_47_tr_41_Template","displayedColumns","SlotRacesLeaderboardComponent","slotRacesService","claimsService","configProviderService","urlUtilityService","LEADERBOARD_COLUMNS_DISPLAYED","stats","userIsVisible","leaderboardVisiblePublisher","leaderboardVisible","leaderboardAwardTypeBgColor","leaderboardAwardTypeTextColor","coinEconomy","leaderboardCtaTitleText","screenname","slotRacesConfig","leaderboardPollingInterval","subscribeToDataUpdates","currencyCode","userEnrolled","ctaList","configMap","configMaps","rankDetails","leaderboard","setStats","pollLeaderBoard","getSitecoreConfigurations","leaderboardVisibleSubscription","onLeaderboardInit","leaderboardPollingStarted","getLeaderboard","promoId","slotUniqueId","pollingInterval","setIntervalOutsideAngularZone","getAppCurrentProduct","slotId","fromResultsHistory","maxRows","maxLeaderboardRows","leaderboardSubscription","coinObj","bindCoinImg","addErrorMessage","errorCode","stat","prizesString","beatBanker","beatBankerContent","isBeatBanker","award","FromRank","ToRank","fetchConfigMaps","setPlayerStat","visibleStats","calculateHeight","Math","trunc","player","playerDetails","prizeIcon","awardValue","querySelector","scroll$","fromEvent","setUserVisibility","scrollSubscription","leaderboardContainer","bottom","isElementInViewport","elementRect","containerRect","right","heightResult","userRankGreaterThanThreshold","textTranslations","versionedList","PlayerTitle","PrizeIconTitle","PointsTitle","RankTitle","documentElement","dataUpdateSubscription","liveRacesData","liveRaces","liveNow","updatedRace","clearInterval","SlotRacesService","ClaimsService","UrlUtilityService","lobbyType","SlotRacesLeaderboardComponent_th_8_Template","SlotRacesLeaderboardComponent_td_10_Template","SlotRacesLeaderboardComponent_th_15_Template","SlotRacesLeaderboardComponent_td_17_Template","SlotRacesLeaderboardComponent_th_22_Template","SlotRacesLeaderboardComponent_td_24_Template","SlotRacesLeaderboardComponent_th_29_Template","SlotRacesLeaderboardComponent_td_31_Template","SlotRacesLeaderboardComponent_th_36_Template","SlotRacesLeaderboardComponent_td_38_Template","SlotRacesLeaderboardComponent_tr_41_Template","SlotRacesLeaderboardComponent_tr_43_Template","SlotRacesLeaderboardComponent_div_47_Template","ɵɵpropertyInterpolate1","NgStyle","NgIf","_SlotRacesLeaderboardComponent","closeDialog","onConfirmClick","Purchase","Play","isLegacy","Cancel","Confrim","InSufficientBalToasterMsg","InsufficientCoinBalance","CloseBtnText","CoinEconomyConfirmPopupComponent","dialogRef","dsEnablerService","isEnabled","ctaText","MatDialogRef","DesignSystemEnablerService","MAT_DIALOG_DATA","CoinEconomyConfirmPopupComponent_div_0_Template","CoinEconomyConfirmPopupComponent_div_2_Template","DecoratorClassDirective","SlotRaceCtaComponent","_CoinEconomyConfirmPopupComponent","NotificationPopUpComponent","status","notificationOnMsg","NotificationMsgOnText","notificationOffMsg","NotificationMsgOffText","timeout","notificationPopupTimeout","ɵɵtextInterpolate2","_NotificationPopUpComponent","TimeFormatPipe","timespan","seconds","floor","minutes","_TimeFormatPipe","overlayCount","wn","T","gameIcon_r4","onGameIconError","TournamentIconComponent_div_0_mat_grid_tile_4_div_4_Template","colspan","ɵɵpropertyInterpolate","gameVariantList","i_r6","isDraggable","isLast_r5","overlayApplicable","En","ctaClick","TournamentIconComponent_div_0_mat_grid_tile_4_Template","isClickable","gameVariantIconList","jpRibbonStyles","jpBgColor","jpTextColor","jackpotValue","Ln","_r7","attachClickEvent","singleIconSrc","TournamentIconComponent_ng_template_2_div_5_Template","promoAlt","showJackpotRibbon","TournamentIconComponent","isFreeTourney","isLive","spinProgress","openPickGameOverlay","launchSelectedGame","isMultiIcon","subIconCount","displayJackpotRibbon","casinoManager","CasinoManager","jackpotDataService","JackpotDataService","casinoLobbyService","CasinoLobbyService","casinoStyles","CasinoStylesService","gameConfig","provideGameConfig","feature","provideFeaturesConfig","defaultSrc","getGrayImageUrl","promoIcon","activeCategory","category","categoryInfo","categoryid","jackpotConfig","provideJackpotConfig","showJackpots","IsFeatureEnabledforLobbytype","showJackpotOnGameTilesLobbyType","enableJPTicking","enableJpTickingForLobbyType","initIconAttributes","getImagePath","enableJpRibbonOnFreeTourney","jackpotDataSubscription","jackpotFeedObservable","jackpots","setJackpotValue","jackpotTickingSubscription","jpTickingObservable","enableGameIconTheming","appendTheme","jackpot","amount","enableRibbonConfig","getJackpotRibbonStyles","generateIconList","game","ctaClickOverlayTopAllignment","cta","total","enableOverlayMobileSearchTopPosition","contentMessageElement","srtc_overlay","clientHeight","TournamentIconComponent_div_0_Template","TournamentIconComponent_ng_template_2_Template","Z","singleIcon_r8","MatGridListModule","MatGridList","MatGridTile","NgFor","_TournamentIconComponent","kn","Dn","Pi","On","Vn","Li","Nn","Fn","Mn","emitRaceInfo","Bn","backgroundImageSrc","An","hideRaceCard","startTimeAMPM","last","cardTitle","addOrremoveCollapseClass","expandCard","Un","_r6","ctaAction","fromPickGameOverlay","subType","optinLimit","playerCount","spinCount","prepareCardCtaText","jn","coinSrc","timeSpan","$n","Days","qn","MinimumBet","Jn","ɵɵpipeBind4","criteriaDtls","Xn","MinBet","Kn","MaxBet","Zn","SlotRaceCardComponent_div_0_span_54_span_4_Template","SlotRaceCardComponent_div_0_span_54_div_6_Template","SlotRaceCardComponent_div_0_span_54_span_8_Template","SlotRaceCardComponent_div_0_span_54_div_10_Template","SlotRaceCardComponent_div_0_span_54_div_13_Template","enableMaxBet","displayMaxBet","Qn","Free2Play","minPoints","currentPoints","SlotRaceCardComponent_div_0_div_61_mat_slider_7_Template","SlotRaceCardComponent_div_0_div_61_div_10_Template","SlotRaceCardComponent_div_0_div_61_div_12_Template","bottombackground","isprogressBarEnabled","beatBankerTitle","sliderMaxValue","progressValue","SlotRaceCardComponent_div_0_div_93_Conditional_3_Template","isNotify","enableRaceNotification","_r8","onNotificationClick","notificationStatus","slotRacesSharedList","notificationBellOnIcon","notificationBellOffIcon","SlotRaceCardComponent_div_0_div_2_Template","SlotRaceCardComponent_div_0_img_4_Template","SlotRaceCardComponent_div_0_div_6_Template","SlotRaceCardComponent_div_0_div_8_Template","SlotRaceCardComponent_div_0_div_10_Template","SlotRaceCardComponent_div_0_div_14_Template","emitPickGameOverlay","launchGame","SlotRaceCardComponent_div_0_span_32_Template","SlotRaceCardComponent_div_0_ng_container_38_Template","SlotRaceCardComponent_div_0_div_48_Template","SlotRaceCardComponent_div_0_ng_template_50_Template","SlotRaceCardComponent_div_0_span_54_Template","SlotRaceCardComponent_div_0_span_56_Template","SlotRaceCardComponent_div_0_div_61_Template","SlotRaceCardComponent_div_0_div_63_Template","SlotRaceCardComponent_div_0_div_93_Template","SlotRaceCardComponent_div_0_div_95_Template","cardbackgroundimage","showimage","cardTextColor","promobackgroundcolor","cardbackgroundcolor","showRaceInfo","showCardMenu","showPlaceholderCard","enableOptin","containerLocation","TotalPrizes","EndsIn","StartsIn","elseblock_r9","Duration","slotRaceDuration","ChipsLeft","SpinsLeft","ChipsLimit","SpinsLimit","SlotRaceCardComponent","gameLaunchService","messageQueue","openLoginDialog","slotRacesTracking","cacheManager","dialog","firstItem","raceNotificationStatus","openRaceInfo","closeRaceInfo","hideCard","gameLaunched","closePickGameOverlay","openNotificationOverlay","millisec","spinsCount","showCoinBalancePopup","raceRuleConfigs","rules","rulesBanner","placeholderCardImage","tips","errorMessages","entryDetails","configs","destroy$","isSubCategory","subcategoryid","parseFloat","currPoints","endDate","getTime","startDate","targetedPlayerCount","promoName","gameId","enableBetterVisualization","setIconSrc","forceOptin","initializeTimerCountdown","setOptinExpiryTimeOut","subscribeToNotifyStatus","contentSubscription","playNowText","PickGame","PlayNow","duration","ceil","coinObject","updateCardSitecoreData","forceCoinRaceBalance","notificationStatusSubcription","notifyObservable","Minutes","optinExpiryTimeOut","timerSubscription","forceOptinSubscription","forceCoinBalanceSubscription","optInSubscription","optInWithCoinsSubscription","notificationSubscription","gameIconSrc","isOptinWithCoins","track","OptinWithText","getCTATextBasedOnRace","checkCoinBalace","optin","sessionStorage","setItem","open","loginMessageKey","OptinLimitReached","Optin4Free","Optin","closePopup","showToasterMessage","GetCoinBalnce","coinBalRes","showConfirmToaster","coinsForOptin","balance","openConfirmToasterDialog","requiredModalData","afterClosed","confirmPopupTracking","forceCoinBalancepublisher","ctaType","containerDescription","gameSticker","getGameToStickersMap","isNewGame","gameData","gameVariantName","gameContainerDescription","gameContainerLocation","isSignPostedGame","launchModel","GameLaunch","isTouch","gamePosition","categoryType","gameLaunchedFrom","gameSection","returnUrl","clickTimeStamp","currentTimeStamp","forceRace","findIndex","forcRacepublisher","forceCoinBalanceObs","coinBal","coinBalanceOptin","updateOptinStatus","expiryTime","optinExpiryDate","optinIndex","updateRacesArrays","globalTimerObservable","timerInterval","CardBottomColor","promobackgroundimage","promoBackgroundImage","promoBackgroundColor","CardBackgroundImage","CardBackgroundColor","CardTextColor","cardOverlayTopAllignment","updateNotificationStatus","setNotifyStatus","openDialog","dialogResult","actionLocation","CasinoCoreGamelaunchService","MessageQueueService","OpenLoginDialog","SlotRacesTrackingService","CacheManagerService","MatDialog","selectedOption","SlotRaceCardComponent_div_0_Template","_SlotRaceCardComponent","NotificationOverlayComponent","notificationCheck","NotificationMsgHeader","NotificationDescription","notificationDiscriptionTwo","NotificationOFF","NotificationON","_NotificationOverlayComponent","game_r3","i_r4","PickGameOverlayComponent","breakpoint","isMobileWidth","isUpcoming","raceinfoopt","liveRacesSubscription","updateRaceStatus","openRaceInfoDialog","openNotificationDialog","isLiveRace","isUpcomingRace","slotRaceGameOverlayTopAllignment","sr_overlay","PickGameOverlayComponent_mat_grid_tile_21_Template","PickGameOverlayTitle","_PickGameOverlayComponent","prizeValueForBeatBanker","Description","BeatTheBankerNotificationComponent_div_26_span_2_Template","displayCash","BeatTheBankerNotificationComponent","displayCoinInBTB","isCoinAward","totalCoins","BeatTheBankerNotificationComponent_span_24_Template","BeatTheBankerNotificationComponent_div_26_Template","beatBankerDiscription","beatBankerRevardText","_BeatTheBankerNotificationComponent","SlotRacesPrizesComponent_div_0_mat_panel_description_11_mat_icon_2_Template","SlotRacesPrizesComponent_div_0_mat_panel_description_11_mat_icon_4_Template","panelOpenState","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_4_div_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_4_div_2_div_4_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_4_div_2_span_8_Template","showCoinPrize","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_4_div_2_Template","beatBankerClass","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_div_4_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_ng_container_2_Template","isMobile","prize_r4","SlotRacesPrizesComponent_div_0_mat_grid_list_20_mat_grid_tile_2_Template","prizesOneWidth","prizesOne","item_r5","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_4_div_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_4_div_2_div_4_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_4_div_2_span_8_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_4_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_2_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_div_4_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_ng_container_2_Template","prize_r6","SlotRacesPrizesComponent_div_0_mat_grid_list_24_mat_grid_tile_2_Template","prizesTwo","prizesTwoWidth","participationRewardWidth","participateReward","Coin","ParticipateReward","SlotRacesPrizesComponent_div_0_mat_panel_title_9_Template","SlotRacesPrizesComponent_div_0_mat_panel_description_11_Template","SlotRacesPrizesComponent_div_0_div_18_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_20_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_24_Template","SlotRacesPrizesComponent_div_0_mat_grid_list_26_Template","isExpansionDisabled","showHeader","isCollapsible","SlotRacesPrizesComponent","prizesArr","getPrizesForPromo","getPrizes","setPrizes","prizesContent","prizeList","froM_RANK","tO_RANK","PrizePositionFromTo","suffix","FirstPositionSuffix","SecondPositionSuffix","ThirdPositionSuffix","RemainingPositionSuffix","PrizePosition","BeatBankerPrizeText","prizeContent","Bonus","prizeValue","PrizesTitle","clientWidth","tileWidth","filterprizeArray","getparticaipationReward","rewardIndex","rowCount","participateAwardValue","ParticipationAwardValue","expansionState","SlotRacesPrizesComponent_div_0_Template","_SlotRacesPrizesComponent","SlotRacesPointsComponent_div_0_mat_panel_description_9_mat_icon_2_Template","SlotRacesPointsComponent_div_0_mat_panel_description_9_mat_icon_4_Template","SlotRacesPointsComponent_div_0_div_12_div_5_div_20_Template","ruleInfo_r3","pointsImage","pointValue","pointsText","pointsDescription","lastItem_r4","SlotRacesPointsComponent_div_0_div_12_div_5_Template","pointsContentColor","pointsdatalength","sitecoreData","Pointstext","pointsData","slab_r7","ruleConfig","io","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_4_span_15_Template","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_4_span_20_Template","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_4_span_23_Template","ruleInfo_r8","pointMult","pointSingle","ruleType","descMult","descSingle","slabList","no","ao","so","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_6_span_6_Template","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_6_span_11_Template","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_6_span_14_Template","ro","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_4_Template","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_div_6_Template","showTnC","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_div_11_Template","ɵɵpureFunctionV","ruleTitle","ruleDescription","MoreOnTnC","SlotRacesPointsComponent_div_0_div_15_div_13_div_2_Template","slab_r10","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_4_span_15_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_4_span_20_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_4_span_23_Template","ruleInfo_r11","go","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_6_span_6_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_6_span_11_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_6_span_14_Template","vo","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_4_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_div_6_Template","_r9","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_div_13_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_div_2_Template","SlotRacesPointsComponent_div_0_div_15_div_13_Template","SlotRacesPointsComponent_div_0_div_15_vn_swiper_15_Template","PointsDescriptionTitleV2","PointsDescriptionV2","TnCApply","showCarousel","SlotRacesPointsComponent_div_0_mat_panel_description_9_Template","SlotRacesPointsComponent_div_0_div_12_Template","SlotRacesPointsComponent_div_0_div_15_Template","showPointsV2","doExpanded","Points","SlotRacesPointsComponent","configproviderservice","speed","autoHeight","spaceBetween","keyboard","swiper","onCarouselMove","slideChange","hidepoint","hideGenericPoints","showCarouselArrows","resizeSubscription","reSizeObservable","slotRaceRuleConfigV2","isVisible","changeCollapseState","pointsContent","bindRuleContent","setSiteCoreStyles","ExpansionState","PointsContentColor","cssText","pointsV2CSSText","windowWidth","apiRaceConfig","matchedcontent","metadata","String","ruleConfigTitleV2","ruleConfigDescriptionV2","setPointsV2DescriptionTexts","slotRaceRuleConfig","sitecoreRaceConfig","ruleConfigValue","WinSingle","WinMultiple","LossSingle","LossMultiple","StakeWon","PtSingle","PtMultiple","PointSingle","PointMultiple","firstVisibleSlide","activeIndex","slides","lastVisibleSlide","slide","opacity","tnc","SlotRacesPointsComponent_div_0_Template","_SlotRacesPointsComponent","Rules","Io","SlotRacesRulesComponent_mat_panel_description_11_mat_icon_2_Template","SlotRacesRulesComponent_mat_panel_description_11_mat_icon_4_Template","rule_r3","SlotRacesRulesComponent","rulesData","setRules","rulesContentColor","RulesContentColor","ruleItem","rule","SlotRacesRulesComponent_mat_panel_title_9_Template","SlotRacesRulesComponent_mat_panel_description_11_Template","SlotRacesRulesComponent_div_16_Template","_SlotRacesRulesComponent","SlotRacesTipsComponent_mat_panel_description_9_mat_icon_2_Template","SlotRacesTipsComponent_mat_panel_description_9_mat_icon_4_Template","data_r2","SlotRacesTipsComponent","sitecoreContent","tipsContentColor","TipsContentColor","SlotRacesTipsComponent_mat_panel_description_9_Template","SlotRacesTipsComponent_div_14_Template","Tips","_SlotRacesTipsComponent","TermsAndConditions","tncData","SlotRacesTnCComponent_div_0_div_6_Template","SlotRacesTnCComponent_div_0_div_13_Template","SlotRacesTnCComponent_div_0_div_15_Template","SlotRacesTnCComponent","setTnc","termsAndConditionsText","eval","SlotRacesTnCComponent_div_0_Template","_SlotRacesTnCComponent","closeButton","TermsAndConditionsTitle","SlotRacesRulesAndTnCComponent","showTitleHeader","disableSlotRacesPoints","getActiveCategory","SlotRacesRulesAndTnCComponent_div_2_Template","MatDialogActions","_SlotRacesRulesAndTnCComponent","SlotRacesInfoComponent_ng_container_14_div_42_span_2_Template","raceResult","SlotRacesInfoComponent_ng_container_14_div_42_Template","versionedData","Game","Prize","YourPlace","dateStr","sharedData","BackToResults","SlotRacesInfoComponent_ng_container_16_div_8_cc_slot_races_leaderboard_2_Template","SlotRacesInfoComponent_ng_container_16_div_8_Template","SlotRacesInfoComponent_ng_container_16_ng_template_10_Template","upcomingRaceInfo_r6","SlotRacesInfoComponent","fromResult","resultDialogRef","resultsDialogRef","isWin","backdropClick","keydownEvents","UpcomingRaceOverlayTitle","LiveRaceOverlayTitle","resultsDialog","display","slotRaceOverlayTopAllignment","sr1_overlay","SlotRacesInfoComponent_span_6_Template","SlotRacesInfoComponent_span_11_Template","SlotRacesInfoComponent_ng_container_14_Template","SlotRacesInfoComponent_ng_container_16_Template","MatDialogTitle","_SlotRacesInfoComponent","race_r4","showFullLeaderboard","SeeLeaderboard","es","SlotRacesCardsComponent_div_2_div_2_div_5_Template","enableUpcomingOptinForPlaytech","firstPlayTech","isFreeplaytechinLive","showLeaderboard","ts","gotoSlotRaces","SoonToBeAnnounced","SeeAllRaces","is","SlotRacesCardsComponent_div_2_div_2_Template","SlotRacesCardsComponent_div_2_div_4_Template","races","raceAdded","race_r8","as","SlotRacesCardsComponent_div_4_vn_swiper_2_div_2_div_2_div_5_Template","pos_r10","_r11","ss","SlotRacesCardsComponent_div_4_vn_swiper_2_div_2_div_2_Template","SlotRacesCardsComponent_div_4_vn_swiper_2_div_2_div_4_Template","SlotRacesCardsComponent_div_4_vn_swiper_2_div_2_Template","raceAddedDesktop","ls","_r12","cs","SlotRacesCardsComponent_div_4_vn_swiper_2_Template","SlotRacesCardsComponent_div_4_div_4_Template","_r13","race_r14","f_r15","_r16","ms","SlotRacesCardsComponent_div_6_div_2_Template","SlotRacesCardsComponent_div_6_div_4_Template","_r17","race_r19","pos_r20","hs","_r21","gs","SlotRacesCardsComponent_div_8_div_2_div_2_Template","SlotRacesCardsComponent_div_8_div_2_div_4_Template","_r22","fs","SlotRacesCardsComponent_div_8_div_2_Template","SlotRacesCardsComponent_div_8_div_4_Template","SlotRacesCardsComponent","rtmsService","casinoCoreNpmParamsService","addUpcoming","isPlaytechinLive","trackingClass","allowTouchMove","preventClicks","preventClicksPropagation","bind","setSlotRaces","categoryName","categoryname","startLiveSlotPolling","initShowCarousel","subscribeToObservables","initRaces","rtmsSubscription","m","message","payload","currentLobbyType","isUkHeading","setSlotRacesParams","enableLiveRacesFilter","liveRacesList","updateRaces","racesSubscription","combineLatest","upcomingRacesData","upcomingToday","upcomingTomorrow","totalRaceCards","noOfCards","optedInRaces","notOptedInRaces","setCarouselConfigs","setUpdateStatus","totalRanks","totalLeaderboardRanks","updateLeaderboard","nextUpcoming","nearestEndingTime","casinoBaseUrl","getCategoryNavigationBaseUrl","categoryRoute","linkedCategory","getCategoryInfoOnLMTId","getLobbyUrlPrefix","openDialogOverlay","closeAll","dialogConfig","MatDialogConfig","autoFocus","dialogProperties","maxWidth","maxHeight","getcasinoCoreNpmParams","isDll","elms","trackingString","stopLiveSlotPolling","jackpotSubscription","RtmsService","CasinoCoreNpmParamsService","SlotRacesCardsComponent_div_2_Template","SlotRacesCardsComponent_div_4_Template","SlotRacesCardsComponent_div_6_Template","SlotRacesCardsComponent_div_8_Template","_SlotRacesCardsComponent","ResultsPipe","showAll","_ResultsPipe","xs","vs","ys","Cs","ctx_r3","Last5Races","Ss","bs","Ts","SlotRacesResultsComponent_div_71_ul_26_div_16_span_2_Template","result_r5","Is","Rs","SlotRacesResultsComponent_div_71_ul_26_div_16_Template","SlotRacesResultsComponent_div_71_ul_26_li_29_Template","SlotRacesResultsComponent_div_71_span_2_Template","SlotRacesResultsComponent_div_71_li_23_Template","SlotRacesResultsComponent_div_71_ul_26_Template","initialLoad","resultsErrorMsg","SlotRacesResultsComponent","datePipe","toMaxDate","fromMaxDate","showNoResults","showAwardsAndPrizes","getResults","setResults","resultsDateFormat","fromChangeDate","fromDate","toMinDate","setDate","getDate","toChangeDate","toDate","setHours","showAllResults","showWinResults","showResults","to","from","noOfDays","round","resultsForNoOfDays","ResultsNotMoreThan","toUTCString","resultsHistorySubscription","getResultsHistory","resultsHistory","NoResultsFound","getErrorMessage","slotracesOverlayTopAllignment","HTMLElement","sr2_overlay","DatePipe","provideNativeDateAdapter","SlotRacesResultsComponent_div_10_Template","pickerFrom_r2","pickerTo_r3","SlotRacesResultsComponent_div_71_Template","SlotRacesResultsComponent_div_73_Template","MyResults","Searchforresults","All","Wins","fromMinDate","From","To","ShowResults","MatNativeDateModule","_SlotRacesResultsComponent","OptinCoinText","Ls","SlotRacesTimelineItemComponent_div_0_div_9_Template","SlotRacesTimelineItemComponent_div_0_div_16_Template","SlotRacesTimelineItemComponent_div_0_span_18_Template","SlotRacesTimelineItemComponent_div_0_ng_container_20_Template","toggleRaceCardVisibility","Vs","openPickGameDialog","SlotRacesTimelineItemComponent","entryData","coinImageSrc","showCard","raceCurrentValue","showRaceCard","toggleFirstCardOn","SlotRacesTimelineItemComponent_div_0_Template","SlotRacesTimelineItemComponent_div_2_Template","_SlotRacesTimelineItemComponent","item_r2","onFilterSelect","Bs","SlotRacesComponent_div_15_li_4_Template","entryDetailsKeys","As","LiveNow","PlaytechinLive","zs","UpcomingToday","race_r6","isFreePlaytechinLive","f_r7","l_r8","toggleOpenUpcomingTodayCard","Gs","UpcomingTomorrow","race_r10","f_r11","l_r12","toggleOpenUpcomingTomorrowCard","$s","SeeResults","SlotRacesComponent","router","filteredData","upcomingRacesList","firstTimeTracking","onPopState","URLSearchParams","displayFilterEntryMessage","slotRaceConfigs","enableFixedMobileNavigation","optimizedTeaserConfigs","provideOptimizedTeaserConfig","isEnableOptimizedTeasers","teaserOptimization","getRaces","displayCatHeader","enableHeaderforCategory","enableCoinEconomy","navigator","userAgent","subscribeToData","seletedEntryOption","replaceAll","toUpperCase","FILTER_TYPE_ALL","navigateByUrl","getProductForGivenLobbyType","tourment","navigate","queryParamsHandling","NoTourmentsAreAvailableWith","updateslotRaceUpcomingData","firstPlayTechFound","FILTER_TYPE_CASH_ENTRY","raceItem","FILTER_TYPE_COIN_REWARD","filteredLiveRaces","FILTER_TYPE_COINS_ENTRY","FILTER_TYPE_FREE_ENTRY","upcomingRacesSubscription","upcomingRaces","filteredUpcomingToday","filteredUpcomingTomorrow","toggleFirstCard","displayTournamentErrorMessage","getUpcomingRaces","rulesAndTcOverlayTopAllignment","openFullRulesDialog","apiCall","DefaultMessage","params","storedFilter","isEmptyObject","assignSelectedOptionBasedOnFilter","obj","storedFilterKey","filterTrackingEvent","filterTracking","filterPosition","Router","ActivatedRoute","ɵɵresolveWindow","SlotRacesComponent_div_15_Template","SlotRacesComponent_div_19_Template","SlotRacesComponent_cc_slot_races_cards_21_Template","SlotRacesComponent_ng_container_23_Template","SlotRacesComponent_div_27_Template","SlotRacesComponent_div_29_Template","SlotRacesComponent_div_31_Template","SlotRacesComponent_div_33_Template","SlotRacesComponent_div_38_Template","SeeRules","MessagePanelComponent","_SlotRacesComponent","qs","SlotRacesWrapperComponent","npmParamService","lobbyService","npmParams","disableSlotracesCallsOnBootstrap","initializeSlotRaces","SlotRacesWrapperComponent_div_0_Template","SlotRacesWrapperComponent_div_2_Template","_SlotRacesWrapperComponent","SeeAllTournaments","SlotRacesWidgetComponent_div_0_span_6_Template","header","SlotRacesWidgetComponent","invokerProductService","lobbyLoadSubscription","lobbyLoadedObservable","setParams","isLobbyLoaded","widgetConfig","providewidgetConfig","slotRacesUpdateSubscription","updateNavigation","slotRacesData","getCurrentRaces","disableWhenNoPromotions","loadWidget","npmHeader","getInvokerProduct","enableSlotRacesForOtherProducts","lobbyTypeForSlotRacesOnOtherProducts","subCatRouteForSlotRacesOnOtherProducts","categoryId","getSlotRaceCategoryId","isSlotRaceSubCategory","InvokerProductService","SlotRacesWidgetComponent_div_0_Template","_SlotRacesWidgetComponent","FeaturesClientConfig","me","z","featuresInfoFactory","LOTTO","LmtClientConfig","lmtInfoFactory","pe","SeoBoxesClientConfig","seoBoxesInfoFactory","ge","ComponentCompositionsClientConfig","componentCompositionFactory","he","WhyPlayWithUsClientConfig","whyPlayWithUsInfoFactory","GloablClientConfig","globalInfoFactory","ApiService","ApiBase","apiServiceFactory","ApiServiceFactory","ProductService","_ApiService","productService","createForProduct","area","forwardProductApiRequestHeader","getMetadata","CategorySitecoreData","LotteryLobbyService","apiService","nativeAppService","categoryChangeSubject","categoryChangeObservable","sitecoreCategoryDataSubject","sitecoreCategoryDataObservable","lobbyTypeSitecoreDataMap","publishCategoryChange","routeProduct","routeCategoryType","isRootOrDefault","isNullOrEmpty","routeCurrentProduct","val","fetchCategorySitecoreData","setCategorySitecoreData","setLobbyTypeCategoryData","categorySitecoreData","collectedSitecoreCategory","sitecoreCategoryArray","categoryDataModel","faqsData","faqs","howtoPlayPath","howtoPlay","getCategorySitecoreData","sitecoreDataForLobbyType","checkForTouchDevice","isTouchDevice","isDownloadClient","maxTouchPoints","getCasinoBaseUrl","productInfo","apiBaseUrl","NativeAppService","_LotteryLobbyService","subTitlePosition","subTitleTxtClr","subTitleFontSize","storyItem","subTitle","descriptionPosition","descriptionClr","descriptionFontSize","GamingStoryCtaComponent","customCTA","customCTAText","customCTAUrl","configurations","OptinBtnBgClr","OptinBtnTxtClr","actionTypePosition","titlePosition","I","GamingStoryCtaComponent_h2_6_Template","GamingStoryCtaComponent_div_8_Template","backgroundImage","LowerCasePipe","_GamingStoryCtaComponent","GamingStoryEmojiSliderComponent","gamingStoriesService","loginDialog","sliderValue","slideDisable","templateType","isInitialSelect","isFetchValueAvailable","isServiceValueAvailable","uInput","emojiPath","emojies","slider","validationCheck","userSubscription","bindPreLoginSessionData","validatePreLoginSessionToStoreInPostLoginSession","sliderChange","gamingStoriesconfig","expirationTime","trackingGamingStoriesPhase2Event","emojiName","pauseStory","storyInfo","StoryInfoData","storyId","subStoryId","storyItemId","storyType","userInput","expTime","storyIndex","storyInfoRequestItemsList","storyInfoPostRequestList","afterclosesubcription","storeDataToSession","eleName","currentEpocTime","storyInfoDataInSessionStorage","StoryInfoDataInSessionStorage","ResponseDataModel","sId","subSId","tType","userId","storeFetchAPIDataRes","storyInfoDataInPreLoginSessionStorageList","storingDataInPreLoginSessionStorage","res","userSessionStorageData","preparePreLoginSelectedDataForPostAPI","storyInfoData","fetchingGamingStoriesAPIRes","sessionStorageServiceStoryData","fetchData","uId","removeItem","fetchUserPreparedRequest","reqStoryIds","fetchReq","sfetchres","bindQuizData","storeFetchAPIDataResList","sServiceres","sSessionres","parseInt","GamingStoriesService","LoginDialogService","ReactiveFormsModule","DefaultValueAccessor","RangeValueAccessor","NgControlStatus","FormsModule","NgModel","_GamingStoryEmojiSliderComponent","emoji_r1","GamingStoryEmojisAnimationsComponent_div_0_ng_container_2_span_2_img_2_Template","repeat","GamingStoryEmojisAnimationsComponent_div_0_ng_container_2_span_2_Template","ne","GamingStoryEmojisAnimationsComponent_div_0_ng_container_2_Template","messageTxtClr","messageBgClr","messageClass","messageTxt","emoji_r4","clickHandler","GamingStoryEmojisAnimationsComponent_div_4_button_5_span_7_Template","disableEmojis","selectedEmojieName","GamingStoryEmojisAnimationsComponent_div_4_button_5_Template","emojiBtnPosition","GamingStoryEmojisAnimationsComponent","showEmojies","showMessageessageSent","setAttributes","mandatorySelection","animationFlow","MessageTxtClr","MessageBgClr","MesssageTxt","MessageClass","dateTime","emojiFloat","emojiFloating","requestAnimationFrame","datetime","vertSpeed","horiSpeed","offsetWidth","elementWidth","elementHeight","ySpeed","omega","PI","random","time","sin","animationStep","check","transformString","webkitTransform","afetchres","aserviceres","asessionres","GamingStoryEmojisAnimationsComponent_div_0_Template","GamingStoryEmojisAnimationsComponent_div_2_Template","GamingStoryEmojisAnimationsComponent_div_4_Template","NgSwitch","NgSwitchCase","_GamingStoryEmojisAnimationsComponent","optInClicked","promoOptinBtnBgClr","promoOptinBtnClr","optInDisabled","optInButtonText","optedInMoreInfoText","GamingStoryOptInComponent","ref","tracking","optInData","checkNoChanges","targetPromoStatus","setOptInButtonConfigurations","activeStoriesIndex","activeStoryItemIndex","optinBtnPosition","promoAlreadyOptedinBtnClr","promoAlreadyOptedinBtnBgClr","storyItemActionType","targetPromoId","optIn","getGamingOptIn","optInObservable","isReady","gamingStoryItemOptInStatus","gamingStoryItemOptIn","optInClickedStatus","setOptInResponse","setOptInResponseError","trackGamingStories","preventDefault","optedInUrl","statusObj","promoStatus","changePromoStatus","displayError","optedPromoStatus","errorKey","storyVersionList","displayOptIn","optInCTAText","optedInCTAText","enableOptedInUrlBtn","storyName","GamingStoryOptInComponent_h2_5_Template","GamingStoryOptInComponent_div_7_Template","GamingStoryOptInComponent_button_12_Template","GamingStoryOptInComponent_div_14_Template","GamingStoryOptInComponent_span_16_Template","_GamingStoryOptInComponent","ft","progressBarCompletionBgClr","progressBarCompletionClr","GamingStoryProgressBarComponent_div_2_span_2_span_2_Template","getWidth","progressBarClr","checkStoryCompletion","i_r2","GamingStoryProgressBarComponent_div_2_span_4_span_2_Template","GamingStoryProgressBarComponent_div_2_span_2_Template","GamingStoryProgressBarComponent_div_2_span_4_Template","progressBarBgClr","activeStoryData","storyItems","GamingStoryProgressBarComponent","sendStoryCompletionEvent","storyCompletionArray","progress","firstTimeTrigger","storyItemInterval","setIntervalTimer","play","storyContainerData","storyList","progressBarWidth","storyInterval","subscribeToVideoPresentObs","runProgressBar","pauseStoryObservable","pauseStoryTrigger","resumeStory","videoPresentObservable","videoProgressObservable","playVideo","pauseVideo","pause","clearTimer","emitStoryCompletionEvent","unsubscribeToVideoObservable","videoPresentStatus","videoProgressStatus","isVideoPresent","GamingStoryProgressBarComponent_div_2_Template","_GamingStoryProgressBarComponent","GamingStoryQuizComponent_ng_container_6_div_2_div_4_div_16_Template","answersBgClr","answersTextClr","onSelect","GamingStoryQuizComponent_ng_container_6_div_2_div_2_Template","GamingStoryQuizComponent_ng_container_6_div_2_div_4_Template","isSelected","haveSelectedValue","GamingStoryQuizComponent_ng_container_6_div_2_Template","answers","GamingStoryQuizComponent","showSiteCoreData","trackStoriesSkip","appendUserIdToPreLoginSession","postvalidationCheck","question","appendInputOrUavgbasedonSelectedPostData","storeDataToPreLoginSession","questionTextClr","questionBgClr","uAvg","uAvgResponse","qsessionres","storePreLoginSessionToPostLoginSession","sessionRes","preLoginCheckDataBind","qserviceres","selectedAnswer","yesNoPollOption","GamingStoryQuizComponent_ng_container_6_Template","_GamingStoryQuizComponent","optionsClicked","GamingStoryYesNoPollComponent_div_9_div_3_div_4_Template","selectedKey","defaultValue","getYesNoPollStyles","GamingStoryYesNoPollComponent_div_9_div_3_Template","GamingStoryYesNoPollComponent","itemVal","myStyles","yesPollTextClr","yesBtnFontSize","yesPollBgClr","noPollTextClr","noBtnFontSize","noPollBgClr","yesBtnWidth","noBtnWidth","ysessionres","yserviceres","GamingStoryYesNoPollComponent_h2_2_Template","GamingStoryYesNoPollComponent_div_9_Template","_GamingStoryYesNoPollComponent","en","ln","toggleMute","soundDisabled","muteunmuteClr","_c11","mute","onAudioPlay","GamingStoryItemsComponent_div_0_div_19_button_5_Template","audioFile","showAudio","videoLoaded","timeUpdate","videoURL","cmsTimeUpdate","cmsVideoURL","GamingStoryItemsComponent_div_0_div_25_div_3_video_2_Template","GamingStoryItemsComponent_div_0_div_25_div_3_cloudflare_stream_4_Template","yn","GamingStoryItemsComponent_div_0_div_25_div_19_cc_gaming_story_optin_2_Template","userAuthentication","isValid","swipeupTextColor","swipeupText","swipeToBottom","_c12","swipeupClr","GamingStoryItemsComponent_div_0_div_25_div_3_Template","storyCompletionEventFromProgressBar","GamingStoryItemsComponent_div_0_div_25_div_9_Template","GamingStoryItemsComponent_div_0_div_25_div_11_Template","GamingStoryItemsComponent_div_0_div_25_div_13_Template","GamingStoryItemsComponent_div_0_div_25_div_15_Template","GamingStoryItemsComponent_div_0_div_25_div_17_Template","GamingStoryItemsComponent_div_0_div_25_div_19_Template","GamingStoryItemsComponent_div_0_div_25_span_25_Template","GamingStoryItemsComponent_div_0_div_25_span_27_Template","storyHasVideo","storyItemActionTypes","EmojiSelector","YesNoPoll","EmojiSlider","QuestionAndAnswer","CustomCTA","Promos","swipeUpBtnPosition","displaySwipeUp","togglePausePlay","GamingStoryItemsComponent_div_0_div_17_Template","GamingStoryItemsComponent_div_0_div_19_Template","closeModal","GamingStoryItemsComponent_div_0_div_25_Template","storyItemBackgroundClr","storyIconShape","storyImage","closebtnClr","_c10","loadFeatures","_r10","swipeToTop","GamingStoryItemsComponent_div_5_span_7_Template","_c13","promotionTitleBgClr","promotionTitleClr","swipeUpContentData","displayDownArrow","tncBgClr","tncTxtClr","tnCContent","StoryItemActionType","GamingStoryItemsComponent","matDialogRef","deviceservice","showPrevButton","showNextButton","SWIPE_ACTION","LEFT","RIGHT","UP","TAP","playPauseObservable","getFetchingUserResponseAPIData","identifyLandscapeToPortrait","gamingStoriesClientConfig","provideGamingStoriesConfig","storyItemList","swipeUpContentDataList","storyIconType","fetchSwipeUpContent","muteVideo","setVideoAndAudio","storyContainerList","GamingStoriesStorageCloseModel","storeGamingStoriesCloseContainer","setupSwipeAndTapEvents","storyPaused","videoMuteBehaviourSubject","stopImmediatePropagation","pausePlayStory","casinoAudio","ended","pauseStoryBehaviourSubject","goToNextStory","goToNextPromo","currentTime","stream","setViewedStory","setViewedPromo","getSwipeUpContentData","displaySwipeUpContent","toggleDisplayArrows","swipeUpContent","swipeUpContentContainer","isiOS","inline","scrollContent","scrollContainer","orientation","onLeftSwipe","setStoryForLeftSwipe","onRightSwipe","setStoryForRightSwipe","onTap","evt","changedPointers","clientY","disableTap","readyState","processOnTap","playpauseObservable","isPaused","gamingStoryItemsModel","showVideo","videoMuteObservable","isMuted","setActivePromoAndStory","storiesIndex","storyItemIndex","setCurrentStoriesIndex","setCurrentStoryItemIndex","displaySwipeUpArrows","enableSwipeUp","gameLaunchSetTimeOut","enableSwipeup","storyItemViewed","promoHasNotViewedStory","story","storyViewed","swipeUpObservable","swipeUpContentList","swipeUpdata","storyItemsPath","swipeupStoryItemContent","loginStatus","subscribeFetchUserResponse","fetchGamingStoriesAPIObservable","fetchGamingStoriesAPIResData","fetchGamingStoriesAPIRes","fetchAPIObservable","setStoryAndStoryItemForLeftTap","goToPreviousStory","goToPreviousPromo","setStoryAndStoryItemForRightTap","gamingstoriesItemsContainer","clickXPosition","clientX","innerWidth","currentStoriesIndex","currentStoryItemIndex","manager","Hammer","Manager","gamingStoriesItemsdraggable","swipe","Swipe","Tap","ae","ce","le","GamingStoryItemsComponent_div_0_Template","GamingStoryItemsComponent_div_5_Template","GamingStoryItemsComponent_div_8_Template","tiltImageUrl","tiltMessage","_GamingStoryItemsComponent","storyClick","storiesData_r4","viewedPromotionBrClr","notviewedPromotionBrClr","GamingStoriesContainerComponent_div_1_div_6_div_5_Template","storyTitlePosition","viewedpromotionTxtClr","promotionTxtClr","GamingStoriesContainerComponent_div_1_div_6_Template","promotionsBgClr","GamingStoriesContainerComponent","matDialog","storyContainerLoad","skipFilterViewedAndUnviewed","fetchFirstTime","expiryTimeReached","gamingstoriesExpirationTimeInterval","isAlreadyResponseFired","isAlreadyFailedResponseFired","modules","FreeMode","Mousewheel","renderstoryContainerData","casinoConfig","provideCasinoConfig","getGamingStoriesData","touchReleaseOnEdges","freeMode","minimumVelocity","mousewheel","forceToAxis","body","fetchAPIAfterExpiry","prepareDialogRef","dialogData","postStoryInfoRequestItemsList","postUserRequestAPIModel","PostUserRequestAPIModel","brandId","storyInfoObj","StoryInfoModel","utcConverter","postGamingStoriesAPI","updateStoryFilterData","dateToday","epoch","prepareSwipeUpData","swipeUpStoryListArray","stories","swipeUpStoryListInString","getSwipeUpContent","fetchGamingStoriesAPI","storyContainerCloseData","storiesHasNotViewedStory","filterViewedAndUnviewed","viewedGamingStoriesList","notViewedGamingStoriesList","storeStoriesViewedStateInLocalStorage","filterStories","reversedViewedStories","reverse","themeCheckClr","themeCheckBgClr","gamingStoriesArrayFromLocalStorage","readGamingStoriesPhase2Array","unViewedGamingStoriesList","gamingStoriesLocalStorageArray","storyListData","isViewedStory","localstorageStory","checkViewedStoryExpiration","viewedTimeStamp","writeGamingStoriesPhase2Array","storyTimeStamp","expirationTimeStamp","storiesAlreadyInLocalStorageArray","gamingStoriesArrayFromLocalStorageItem","pushViewedStoryItemToArray","localStorageStories","StoriesLocalStorageModel","observable","AfterApiCall","isStoryContainerAssigned","storyContainer","getStoryContainerData","fetchUserRequestAPIModel","FetchUserRequestAPIModel","optInStoriesTrackList","optInStoriesTrack","OptInStoriesTrack","showOptIn","reqStoryIdsModel","ReqStoryIdsModel","localStorageExpirationDuration","optinStories","getStoryContainerCloseList","GamingStoriesContainerComponent_div_1_Template","_GamingStoriesContainerComponent","GamingStoriesPhase2WrapperComponent","isLoadingGamingStories","initialize","getGamingStories","productPath","getConfig","provideGamingStoriesPhase2Config","GamingStoriesPhase2WrapperComponent_cc_gaming_stories_container_0_Template","_GamingStoriesPhase2WrapperComponent","newsFeedItem","IconColor","NewsFeedV2JackpotComponent","jackpotObj","jackpotHeader","jackpotGameName","itemCliked","gameID","itemTrackingOnClick","gameModel","replaceRouteInHistory","isDemoLaunch","skipUnfinGame","gridPosition","gameContainer","positionEvent","trackPos","jackpotGroupName","NewsFeedV2JackpotComponent_div_2_Template","NewsFeedBoxOuterLineColor","NewsFeedItemBgcolor","HeaderTextColor","SubHeaderTextColor","JackpotValueColor","_NewsFeedV2JackpotComponent","dealerImage","LiveNowText","lastResultNumberColor","NewsFeedV2LiveCasinoAPIItemComponent_div_0_div_19_li_4_Template","resultsDisplayed","itemClicked","NewsFeedV2LiveCasinoAPIItemComponent_div_0_i_4_Template","NewsFeedV2LiveCasinoAPIItemComponent_div_0_img_6_Template","NewsFeedV2LiveCasinoAPIItemComponent_div_0_div_14_Template","NewsFeedV2LiveCasinoAPIItemComponent_div_0_div_16_Template","NewsFeedV2LiveCasinoAPIItemComponent_div_0_div_19_Template","displayDealerImage","gameName","displayLiveStatus","liveGameInfo","onTimerEnd","offlineTableTime","NewsFeedV2LiveCasinoAPIItemComponent","liveCasinoService","timeZoneService","gameManagerService","gameInfo","getGameInfo","liveCasinoApiSubscriber","liveGamesFeedObservable","setLiveCasinoItemInfo","getLiveGameLookUpInfo","dealerInfo","dealerPictureUrl","setTableOnlineStatus","tableStatus","countdown","isTableOnline","startTimer","getTimerStartInstance","enablelctimer","LiveCasinoService","TimeZoneService","GameManagerService","NewsFeedV2LiveCasinoAPIItemComponent_div_0_Template","NewsFeedV2LiveCasinoAPIItemComponent_div_2_Template","LCTimerComponent","_NewsFeedV2LiveCasinoAPIItemComponent","NewsFeedV2NewgamesComponent","gameIcon","_NewsFeedV2NewgamesComponent","NewsFeedV2PromoMarketingComponent","mcPageConfig","provideMcPageConfig","videoLaunchRealtiveUri","labelPrefix","getGameIdFromLaunchUrl","link","isGameUrl","substr","NewsFeedV2PromoMarketingComponent_div_2_Template","subHeader","_NewsFeedV2PromoMarketingComponent","NewsFeedV2CustomItemComponent_ng_container_0_cc_news_feed_v2_jackpot_4_Template","NewsFeedV2CustomItemComponent_ng_container_0_cc_news_feed_v2_newgames_6_Template","NewsFeedV2CustomItemComponent_ng_container_0_cc_news_feed_v2_promo_marketing_8_Template","NewsFeedV2CustomItemComponent_ng_container_0_cc_news_feed_v2_livecasino_api_item_10_Template","NewsFeedV2CustomItemComponent","gameDataManager","setDisplayCriteria","jackpotSubscriber","displayEnabled","isJackpotValid","isgameValid","isValidGame","showJackpotItem","findDisabledGame","gameObj","setGameLobbyModel","getDisabledGames","isDisabledGame","jackpotResponse","jackpotData","getJackpotByGroupName","gamesAvailable","gameItem","GameDataManager","NewsFeedV2CustomItemComponent_ng_container_0_Template","_NewsFeedV2CustomItemComponent","NewsFeedV2ItemComponent","_NewsFeedV2ItemComponent","NewsFeedV2Component","NewsFeedBoxBgcolor","_NewsFeedV2Component","newsFeedAttributes","touchReleased","touchStarted","NewsFeedV2ContainerComponent_ng_container_2_cc_news_feed_v2_item_4_Template","triggerForMobileDevices","newsFeeedItems","NewsFeedV2ContainerComponent","fillingArray","newsfeedWrapperDoc","doc","animationPlayState","webkitAnimationPlayState","mozAnimationPlayState","oAnimationPlayState","assigningAttributes","getAttribute","NewsFeedAnimationTiming","LiveCasinoBlackColor","LiveCasinoRedColor","LiveCasinoGreenColor","newsFeedConfig","provideNewsFeedCasinoConfig","newsFeedConfiguration","NewsFeedV2ContainerComponent_ng_container_2_Template","DslPipe","_NewsFeedV2ContainerComponent","newsFeedResponse","NewsFeedV2WrapperComponent","newsFeedV2Service","setNewsFeedContent","containerPath","newFeedWidgetData","newsFeedV2WidgetObservable","newsFeedObjList","createNewsFeedResponseArray","setNewsFeedResponseArray","NewsFeedV2Service","NewsFeedV2WrapperComponent_ng_container_0_Template","_NewsFeedV2WrapperComponent","NewsFeedV2WidgetComponent","NewsFeedV2WidgetComponent_div_0_Template","_NewsFeedV2WidgetComponent","CasinoPlatformLoaderService","casinoModuleLoadedSubject","casinoModuleLoadedObservable","loadCasinoPlatformModule","isODR","applicationName","isSportsODR","lazyloader","getLazyComponentFactory","componentName","componentsMap","isCasinoModuleLoaded","casinoModuleLoaded","getOtherProductService","otherProductService","getFavouriteService","favouriteService","getCasinoLobbyService","getCasinoManagerService","casinoManagerService","getCasinoCoreGameLaunchService","casinoCoreGameLaunchService","getGameLaunchUrlFormationService","gameLaunchUrlFormationService","updateFavGamesForOtherProducts","updateBingoFav","otherProductServiceModuleLoadSubscription","isModuleLoaded","dynamicServicesMap","casinoMenuActionsBootstrapService","onAppInitHandler","casinoCoreGamelaunchService","casinoCoreNpmParams","fastLoadingVisibleOnLobby","disableFullLobbyFetch","disableProductLobbyDataFetch","customLobbyTypeMaps","lobbyTypeMap","disableCasinoLocalStorage","isDisableLiveCasinoCalls","isDisableJackpotCalls","targetOverlayLobby","initiateCasinoLobby","_CasinoPlatformLoaderService","RpFavWidgetWrapperComponent","ThunderbiteIframeLauncherComponent","CasinoGridOnLobbyTypeComponent","NavOnLobbyTypeComponent","GeolocationInstallerComponent","SportsOverlayComponent","TeaserOnLobbyTypeComponent","TeasersWrapperComponent","CasinoModuleLoadDirective","casinoPlatformLoaderService","renderer2","componentRef_","jsonData","assignDatatoComponent","moduleLoaded","cmpFactory","selectorName","ngModuleRef","_CasinoModuleLoadDirective","CasinoPlatformLoaderModule","forRoot","ngModule","bt","Ct","_CasinoPlatformLoaderModule","faqClicked","item_r4","FaqItemsComponent_Conditional_0_div_6_Template","faqTitle","dataArray","FaqItemsComponent","faqData","setFAQItemsData","faqHtmlToJsonData","mapDOM","formFAQDataArray","faqListContent","faqItem","questionAnswerArray","answer","faq","elementData","ele","firstChild","treeHTML","object","nodeList","childNodes","nodeType","nodeValue","parentElement","innerHTML","FaqItemsComponent_Conditional_0_Template","NgForOf","overflow","_FaqItemsComponent","LotteryNavSectionComponent","casinoLoader","categoryChangeObs","productAndCat","setRouteCategory","defaultCatInfo","getDefaultOrFirstCategoryInfo","lobbyProduct","productOverride","stickyInputQueryElement","_LotteryNavSectionComponent","seobox_r1","decodedPath","LotterySeoboxesComponent_div_2_Conditional_4_Template","LotterySeoboxesComponent","seoboxes","decodeURI","LotterySeoboxesComponent_div_2_Template","_LotterySeoboxesComponent","FaqComponent","categorySitecoreDataObs","sitecoreDataResponse","setFAQData","categoryObj","getCategoryInfo","lmtCategoryId","_FaqComponent","FaqSectionComponent","containerMode","catRouteFetched","getRouteCategory","routeCategory","FaqSectionComponent_Conditional_0_Template","_FaqSectionComponent","HowToPlayItemsComponent","gloablClientConfig","howToPlayPath","_HowToPlayItemsComponent","HowToPlayComponent","setHowToPlayPath","HowToPlayComponent_Conditional_0_Template","_HowToPlayComponent","HowToPlaySectionComponent","HowToPlaySectionComponent_Conditional_0_Template","_HowToPlaySectionComponent","W","onResize","se","heightIframe","widthIframe","iframeUrl","ɵɵsanitizeResourceUrl","IframeComponent","featuresConfig","cookies","initiateIframe","setIframeURL","handleMessageEvent","gamelaunchUrlFormationService","lotteryGameIds","skipMetaDataCheck","setGameHomeUrl","getParams","getLaunchData","storeUserInfo","storeSsoTokenInCookies","isLiveGame","launchMGSGame","isIframeReady","nativeWindow","lotteryIframeHeight","gameNotFoundAction","MessageType","Information","lifetime","MessageLifetime","Single","scope","storeUserDetails","cookieObj","userToken","claims","sessionToken","putObject","domain","gamesConfig","storeLottoSsotokenInCookies","ssoToken","WindowRef","IframeComponent_Conditional_2_Template","TrustAsResourceUrlPipe","_IframeComponent","IframeWidgetComponent","checkforIframeCategory","isIframeCategory","iframeCategories","IframeWidgetComponent_Conditional_0_Template","_IframeWidgetComponent","LotteryGamesSectionComponent","_LotteryGamesSectionComponent","imageUrl","ctaUrl","LotteryIconsItemComponent","iconData","versionedImage","LotteryIconsItemComponent_Conditional_0_Template","_LotteryIconsItemComponent","item_r1","LotteryIconsComponent_Conditional_0_div_3_Template","lotteryIconData","LotteryIconsComponent","LotteryIconsComponent_Conditional_0_Template","_LotteryIconsComponent","whyPlayWithUsPath","WhyPlayWithusComponent","whyPlayWithUs","WhyPlayWithusComponent_Conditional_0_Template","_WhyPlayWithusComponent","LotteryHomeWidgetComponent","getLobbyTypeForProduct","_LotteryHomeWidgetComponent","LotteryIframeWidgetSectionComponent","iframeCategory","_LotteryIframeWidgetSectionComponent","LotterySeoBoxSectionComponent","bindSeoBoxes","getSeoBoxes","seoBoxes","_LotterySeoBoxSectionComponent","LotteryTeaserSectionComponent","_LotteryTeaserSectionComponent","LotteryWidgetCompositionService","setWidgetComposition","componentList","components","getWidgetComposition","_LotteryWidgetCompositionService","LotteryWidgetsComponent","componentCompositionsClientConfig","componentFactoryResolver","widgetCompositionService","componentsView","CasinoGamesSectionComponent","SeoBoxSectionComponent","NavSectionComponent","TeaserSectionComponent","HomeLobbyWidgetComponent","IframeWidgetSectionComponent","lobbyLoadedSubscription","isPostLogin","generateComponents","assignConfigs","loadComposition","componentConfigEnabled","mobileDefaultCompositions","mobileDefaultHomeComposition","mobileNonDefaultCompositions","mobileNonDefaultHomeComposition","desktopDefaultCompositions","desktopDefaultHomeComposition","desktopNonDefaultCompositions","desktopNonDefaultHomeComposition","prevLobbyType","getComponentList","composition","isDefaultComposition","generateComponentWithLobbyType","componentDataFromDynacon","componentFactory","resolveComponentFactory","windowWidthStatus","ComponentFactoryResolver","ie","LotteryWidgetsComponent_ng_template_0_Template","_LotteryWidgetsComponent","LotteryWidgetCompositionComponent","_LotteryWidgetCompositionComponent","LotteryWidgetContainerComponent","lobbyLoadedObs","lobbyTypeMaps","LotteryWidgetContainerComponent_Conditional_0_Template","_LotteryWidgetContainerComponent","toggleGoToTop","scrollToTop","LotteryLobbyContainerComponent_Conditional_0_Conditional_3_Template","LotteryLobbyContainerComponent_Conditional_0_Conditional_4_Template","LotteryLobbyContainerComponent_Conditional_0_Conditional_5_Template","pageNotFound","lastScrollTop","LotteryLobbyContainerComponent","initialScrollTop","scrollTop","categoriesMap","lobbyLoaded","onWindowScroll","scrollElement","scrollingElement","pageYOffset","isTopArrowVisible","isNativeApp","isNativeWrapper","scroll","unSubscribeLobbyLoadSubscription","LotteryLobbyContainerComponent_Conditional_0_Template","_LotteryLobbyContainerComponent","LotteryLobbyContainerWrapperComponent","casinoloader","LotteryLobbyContainerWrapperComponent_Conditional_2_Template","_LotteryLobbyContainerWrapperComponent","LotteryHomeComponent","lmtDataClientConfig","routeSubscription","defaultProduct","defaultProductHomeUrl","routeInfoPublished","_LotteryHomeComponent","ImageSrc","VIPStickerColor","VIPStickerBackgroundColor","VIPSticker_r4","ThumbnailNewgameComponent_div_0_div_12_div_2_Template","sticker","ThumbnailNewgameComponent_div_0_div_4_Template","ThumbnailNewgameComponent_div_0_div_8_Template","ThumbnailNewgameComponent_div_0_div_10_Template","ThumbnailNewgameComponent_div_0_div_12_Template","hideThumbnail","thumbnailBgColor","fontColor","isVipThumbnail","buttonText","ThumbnailNewgameComponent","place","closeThumbnail","displayThumbnail","thumbnailService","ThumbnailService","utilityService","UtilityService","thumbnailConfig","provideThumbnailConfig","isVipUser","setThumbnail","thumbnailObs","thumbnailDataObservable","thumbnailRes","onInit","thumnailCategory","getThumbnailbasedonroute","getThumbnailsfromLocalStorage","removeThumbnailfromLocalStorage","trackingInitEvent","bindThumbnailData","bindStyles","thumbnailConfigurations","thumbnailBGColor","VIPThumbnailColor","AnonymousThumbnailColor","isDemo","categoryIndex","highlightedColor","VIPTextColor","VIPCTAText","AnonymousTextColor","AnonymousCTAText","fromGameLaunch","setThumbnailLocalStorageCacheMap","trackingCloseEvent","getLocation","defaultCategory","isDefaultCategory","getGameLunchType","ThumbnailNewgameComponent_div_0_Template","_ThumbnailNewgameComponent","RxForViewContext","RxDefaultListViewContext","rxForOf","customProps","__publicField","RxFor","_RxFor","RxStrategyProvider","coerceObservableWith","switchAll","coerceDistinctWith","potentialSignalOrObservable","isSignal","toObservable","strategyName","trackByFnOrKey","renderCallback","createListTemplateManager","computedContext","InjectableAnimationEngine","_InjectableAnimationEngine","AnimationEngine","driver","normalizer","AnimationDriver","AnimationStyleNormalizer","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","engine","AnimationRendererFactory","SHARED_ANIMATION_PROVIDERS","RendererFactory2","DomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","WebAnimationsDriver","provideAnimations","performanceMarkFeature","LoaderStylesService","webpackManifestService","stylesService","loadStyles","iter","__forAwait","more","temp","htmlCssClass","loadStyle","filename","getNewThemeFilename","themesCssPath","getEntry","getOldThemeFilename","file","getJson","theme","WebpackManifestService","StylesService","_LoaderStylesService","ModuleService","dslEnvService","getProviders","token","notFoundValue","getProvider","runBootstrappers","bootstrappers","FEATURE_INIT_PROVIDER","bootstrapper","runEventProcessors","eventProcessors","EVENT_PROCESSOR","eventProcessor","process","runDslProviders","dslProviders","LAZY_DSL_VALUES_PROVIDER","addToContext","runLaunchDarklyContextProvider","contextProvider","LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER","reloadContext","DslEnvService","_ModuleService","LoadersConfig","loadersConfigFactory","LOADER_FN_TOKEN","registerLoaderFn","multi","LoadState","LoadStrategy","LoaderService","registeredLoaderFns","webWorkerService","moduleService","nativeApp","loadStylesService","loadDispatcher","STYLES_LOADER_ID","allLoaders","initLoaders","UserPreHooksLoginEvent","JustLoggedIn","LoggedIn","reset","debounceTime","restart","productChanged","EventType","Vanilla","startEventStrategy","Rtms","eventsFromNative","Native","Preload","AlreadyLoggedIn","ReadyStateChange","runOnlyCompleteStrategy","loadFeature","featureId","featureImport","additionalStyles","mergeStyles","all","featureInjector","getInjector","eventContext","sendToNative","NativeEventType","FEATURE_LOADED","Complete","loaders","Created","Scheduled","evaluate","strategies","Event","loader","scheduled","ruleId","loaderId","loaderFnConfig","loaderFn","additionalStylesFn","checkLoaderEnabledForProduct","Enabled","FeatureEnabledStatus","isSingleDomainApp","createWorker","runLoader","removeWorker","errorRemote","getAdditionalStyles","Loaded","optionStyles","WebWorkerService","_LoaderService","LoadersBootstrapService","loaderService","onAppInit","_LoadersBootstrapService","VANILLA_LOADERS_MAP","abuser-information","account-menu","activity-popup","affordability","balance-breakdown","balance-properties","balance-refresh","balance-transfer","barcode-scanner","betstation-hardware-fault","betting-status","bonus-award","bonus-balance","bottom-nav","bottom-sheet","cashier","clock","connected-accounts","content-messages","cookie-banner","cookie-consent","css-overrides","curfew-status","debounce-buttons","deposit-limit-exceeded","deposit-limits","deposit-prompt","deposit-session","document-upload-status","domain-specific-actions","dropdown-header","footer","gamification","geolocation","header-bar","icons","inactive","inactivity-screen","inbox","jackpot-winner","kyc","label-switcher","language-switcher","last-session-info","launch-darkly","license-info","live-person","login","login-duration","login-new","loss-limits","loyality-profile","meta-tags","moh-details","native-app","navigation-layout","offer-button","offer-dsl","offers","offline","offline-page","overlay-messages","play-break","player-active-wager","player-attributes","player-gaming-declaration","player-limits","prerender","product-menu","product-switch-cool-off","range-datepicker","re-captcha","redirect-message","referred-friends","remember-me-logout-prompt","registration","rtms-events","rtms-layer","rtms-overlay","screen-time","self-exclusion","session-fund-summary","session-info","session-lifetime-check","session-limits","session-limits-logout-popup","single-sign-on","smart-banner","sof-status-details","terminal-session","third-party-tracker","top-messages","tourney-token-balance","untested-browser","user-documents","user-flags","user-scrub","user-summary","value-ticket","zendesk","speculation","provideLoaders","runOnAppInit","REGISTERED_ACTION_TYPES","createAction","defineType","props","creator","INIT","ActionsSubject","_ActionsSubject","ACTIONS_SUBJECT_PROVIDERS","_ROOT_STORE_GUARD","_INITIAL_STATE","INITIAL_STATE","REDUCER_FACTORY","_REDUCER_FACTORY","INITIAL_REDUCERS","_INITIAL_REDUCERS","_STORE_REDUCERS","_STORE_FEATURES","_FEATURE_REDUCERS_TOKEN","FEATURE_REDUCERS","USER_PROVIDED_META_REDUCERS","META_REDUCERS","_RESOLVED_META_REDUCERS","USER_RUNTIME_CHECKS","_USER_RUNTIME_CHECKS","ACTIVE_RUNTIME_CHECKS","_ACTION_TYPE_UNIQUENESS_CHECK","ROOT_STORE_PROVIDER","FEATURE_STATE_PROVIDER","combineReducers","reducers","initialState","reducerKeys","finalReducers","finalReducerKeys","nextState","reducer","previousStateForKey","nextStateForKey","omit","keyToRemove","compose","functions","arg","composed","createReducerFactory","reducerFactory","metaReducers","createFeatureReducerFactory","ReducerObservable","ReducerManagerDispatcher","UPDATE","ReducerManager","_ReducerManager","dispatcher","reducerDict","featureKey","featureKeys","REDUCER_MANAGER_PROVIDERS","ScannedActionsSubject","_ScannedActionsSubject","ɵScannedActionsSubject_BaseFactory","SCANNED_ACTIONS_SUBJECT_PROVIDERS","StateObservable","State","_State","actions$","reducer$","scannedActions","withLatestReducer$","observeOn","queueScheduler","withLatestFrom","seed","stateAndAction$","scan","reduceState","toSignal","stateActionPair","STATE_PROVIDERS","Store","_Store","state$","actionsObserver","reducerManager","pathOrMapFn","paths","select","selector","operator","store","STORE_PROVIDERS","propsOrPath","source$","mapped$","pathSlices","pluck","RUNTIME_CHECK_URL","isUndefined","isNull","isString","isBoolean","isNumber","isObjectLike","isObject","isPlainObject","targetPrototype","isFunction","isComponent","hasOwnProperty","propertyName","_createStoreReducers","_initialStateFactory","_concatMetaReducers","userProvidedMetaReducers","_provideForRootGuard","immutabilityCheckMetaReducer","checks","act","freeze","targetIsFunction","propValue","serializationCheckMetaReducer","unserializableAction","getUnserializable","throwIfUnserializable","unserializableState","unserializable","unserializablePath","inNgZoneAssertMetaReducer","createActiveRuntimeChecks","runtimeChecks","createSerializationCheckMetaReducer","strictActionSerializability","strictStateSerializability","ignoreNgrxAction","createImmutabilityCheckMetaReducer","strictActionImmutability","strictStateImmutability","createInNgZoneCheckMetaReducer","strictActionWithinNgZone","provideRuntimeChecks","_runtimeChecksFactory","checkForActionTypeUniqueness","_actionTypeUniquenessCheck","duplicates","registrations","_provideStore","Inject","rootStoreProviderFactory","ENVIRONMENT_STORE_PROVIDER","ENVIRONMENT_INITIALIZER","provideStore","makeEnvironmentProviders","CREATE_EFFECT_METADATA_KEY","getCreateEffectMetadata","metaData","getSourceMetadata","getSourceForInstance","isClassInstance","isClass","classOrRecord","getClasses","classesAndRecords","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","sourceName","observables$","dispatch","useEffectsErrorHandler","observable$","effectAction$","ignoreElements","materialize","notification","MAX_NUMBER_OF_RETRY_ATTEMPTS","defaultEffectsErrorHandler","errorHandler","retryAttemptLeft","_FEATURE_EFFECTS","_FEATURE_EFFECTS_INSTANCE_GROUPS","EFFECTS_ERROR_HANDLER","ROOT_EFFECTS_INIT","rootEffectsInit","reportInvalidActions","output","reporter","isAction","getEffectName","isMethod","onIdentifyEffectsKey","isOnIdentifyEffects","onRunEffectsKey","isOnRunEffects","onInitEffects","isOnInitEffects","functionName","EffectSources","_EffectSources","effectSourceInstance","groupBy","effectsInstance","mergeMap","effect$","exhaustMap","resolveEffectSource","dematerialize","init$","mergedEffects$","EffectsRunner","_EffectsRunner","effectSources","provideEffects","effects","effectsClassesAndRecords","effectsClasses","effectsRunner","shouldInitEffects","effectsClassOrRecord","VANILLA_LAZY_ROUTES","loadChildren","ROUTES","PROFILEPAGE_ROUTES","DARKMODE_ROUTES","NAVIGATIONLAYOUT_ROUTES","LotBootstrapService","casinoPlatformLoader","lmtConfig","_LotBootstrapService","LotteryBootstrapGuard","lotBootstrapService","_LotteryBootstrapGuard","LOTTERY_ROUTES","loadComponent","allowAnonymous","LotteryHowToPlayPageSectionComponent","appRoutes","performance","mark","bootloader","measure","bootstrapApplication","AppComponent","provideRouter","provideVanillaCore","STORE_PREFIX","console"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,229,230,239,240]}