tango-app-ui-shared 3.7.3-dev6-copilot → 3.7.3-dev6-demo7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +37 -0
- package/ng-package.json +7 -0
- package/package.json +12 -25
- package/src/lib/guards/auth.guard.ts +20 -0
- package/src/lib/guards/lead.guard.ts +16 -0
- package/src/lib/guards/stores.guard.ts +16 -0
- package/src/lib/guards/tickets.guard.ts +16 -0
- package/{lib/i18n/index.d.ts → src/lib/i18n/index.ts} +2 -2
- package/src/lib/i18n/translation.module.ts +9 -0
- package/src/lib/i18n/translation.service.ts +61 -0
- package/src/lib/i18n/vocabs/ch.ts +105 -0
- package/src/lib/i18n/vocabs/de.ts +105 -0
- package/src/lib/i18n/vocabs/en.ts +105 -0
- package/src/lib/i18n/vocabs/es.ts +105 -0
- package/src/lib/i18n/vocabs/fr.ts +105 -0
- package/src/lib/i18n/vocabs/jp.ts +105 -0
- package/src/lib/interceptors/http-auth-interceptor.ts +225 -0
- package/src/lib/interfaces/global-state.ts +6 -0
- package/src/lib/modules/common/common-shared.module.ts +20 -0
- package/src/lib/modules/common/custom-select/custom-select.component.html +42 -0
- package/src/lib/modules/common/custom-select/custom-select.component.scss +131 -0
- package/src/lib/modules/common/custom-select/custom-select.component.spec.ts +23 -0
- package/src/lib/modules/common/custom-select/custom-select.component.ts +149 -0
- package/src/lib/modules/common/filters/filters.component.html +76 -0
- package/src/lib/modules/common/filters/filters.component.scss +131 -0
- package/src/lib/modules/common/filters/filters.component.spec.ts +23 -0
- package/src/lib/modules/common/filters/filters.component.ts +181 -0
- package/src/lib/modules/common/pagination/pagination.component.html +26 -0
- package/src/lib/modules/common/pagination/pagination.component.scss +63 -0
- package/src/lib/modules/common/pagination/pagination.component.spec.ts +23 -0
- package/src/lib/modules/common/pagination/pagination.component.ts +46 -0
- package/src/lib/modules/errors/error403/error403.component.html +25 -0
- package/src/lib/modules/errors/error403/error403.component.scss +0 -0
- package/src/lib/modules/errors/error403/error403.component.spec.ts +23 -0
- package/src/lib/modules/errors/error403/error403.component.ts +28 -0
- package/src/lib/modules/errors/error404/error404.component.html +24 -0
- package/src/lib/modules/errors/error404/error404.component.scss +0 -0
- package/src/lib/modules/errors/error404/error404.component.spec.ts +25 -0
- package/src/lib/modules/errors/error404/error404.component.ts +50 -0
- package/src/lib/modules/errors/error500/error500.component.html +24 -0
- package/src/lib/modules/errors/error500/error500.component.scss +0 -0
- package/src/lib/modules/errors/error500/error500.component.spec.ts +25 -0
- package/src/lib/modules/errors/error500/error500.component.ts +50 -0
- package/src/lib/modules/errors/errors-routing.module.ts +40 -0
- package/src/lib/modules/errors/errors.component.html +15 -0
- package/src/lib/modules/errors/errors.component.scss +4 -0
- package/src/lib/modules/errors/errors.component.spec.ts +25 -0
- package/src/lib/modules/errors/errors.component.ts +42 -0
- package/src/lib/modules/errors/errors.module.ts +25 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.html +16 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.scss +0 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.spec.ts +23 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.ts +43 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.html +30 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.scss +60 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.spec.ts +23 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.ts +17 -0
- package/src/lib/modules/intro/intro-routing.module.ts +16 -0
- package/src/lib/modules/intro/intro.module.ts +21 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.html +325 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.scss +185 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.spec.ts +23 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.ts +120 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.html +44 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.scss +28 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.spec.ts +23 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.ts +24 -0
- package/src/lib/modules/layout/content/content.component.html +12 -0
- package/src/lib/modules/layout/content/content.component.scss +0 -0
- package/src/lib/modules/layout/content/content.component.ts +102 -0
- package/src/lib/modules/layout/footer/footer.component.html +29 -0
- package/src/lib/modules/layout/footer/footer.component.scss +7 -0
- package/src/lib/modules/layout/footer/footer.component.spec.ts +25 -0
- package/src/lib/modules/layout/footer/footer.component.ts +13 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.html +27 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +4 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +38 -0
- package/src/lib/modules/layout/header/header.component.html +90 -0
- package/src/lib/modules/layout/header/header.component.scss +7 -0
- package/src/lib/modules/layout/header/header.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header.component.ts +139 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.html +156 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.scss +223 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +23 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.ts +255 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.html +200 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.scss +139 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.ts +76 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.html +32 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.scss +11 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.ts +47 -0
- package/src/lib/modules/layout/keenicon/icons.json +1 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.html +4 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +23 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.ts +30 -0
- package/src/lib/modules/layout/layout/layout.component.html +71 -0
- package/src/lib/modules/layout/layout/layout.component.scss +23 -0
- package/src/lib/modules/layout/layout/layout.component.ts +425 -0
- package/src/lib/modules/layout/layout.module.ts +129 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +81 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.html +1 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +75 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +70 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +57 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +136 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +26 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +36 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +761 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +38 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +130 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.html +16 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.scss +3 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.ts +203 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +84 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.html +69 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.scss +238 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.ts +389 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.html +4 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.scss +3 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.ts +91 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.html +22 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.scss +156 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.ts +238 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.html +14 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.scss +149 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.ts +183 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.html +100 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.ts +12 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.html +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.ts +1555 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.html +62 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.html +77 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.html +26 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.ts +235 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.html +39 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.ts +188 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.html +17 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.scss +172 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.ts +179 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.html +4 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.scss +19 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.ts +105 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.html +64 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +25 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.ts +400 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.ts +1202 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.html +199 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.ts +899 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.html +204 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.ts +1045 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.html +190 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.ts +825 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.ts +1242 -0
- package/src/lib/modules/notification/conformation/conformation.component.html +25 -0
- package/src/lib/modules/notification/conformation/conformation.component.scss +0 -0
- package/src/lib/modules/notification/conformation/conformation.component.spec.ts +23 -0
- package/src/lib/modules/notification/conformation/conformation.component.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.html +209 -0
- package/src/lib/modules/notification/notification/notification.component.scss +211 -0
- package/src/lib/modules/notification/notification/notification.component.spec.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.ts +310 -0
- package/src/lib/modules/notification/notification-routing.module.ts +20 -0
- package/src/lib/modules/notification/notification.module.ts +21 -0
- package/src/lib/pipes/customDate.pipe.ts +18 -0
- package/src/lib/routes/route-wraper-modules/analyse-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/edge-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/ticket-wrapper.module.ts +10 -0
- package/src/lib/routes/routing.ts +56 -0
- package/src/lib/services/auth.service.ts +178 -0
- package/src/lib/services/notification.service.spec.ts +16 -0
- package/src/lib/services/notification.service.ts +73 -0
- package/src/lib/services/toast.service.ts +82 -0
- package/{public-api.d.ts → src/public-api.ts} +71 -44
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/guards/auth.guard.mjs +0 -26
- package/esm2022/lib/guards/lead.guard.mjs +0 -16
- package/esm2022/lib/guards/stores.guard.mjs +0 -16
- package/esm2022/lib/guards/tickets.guard.mjs +0 -16
- package/esm2022/lib/i18n/index.mjs +0 -3
- package/esm2022/lib/i18n/translation.module.mjs +0 -17
- package/esm2022/lib/i18n/translation.service.mjs +0 -53
- package/esm2022/lib/i18n/vocabs/ch.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/de.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/en.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/es.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/fr.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/jp.mjs +0 -106
- package/esm2022/lib/interceptors/http-auth-interceptor.mjs +0 -124
- package/esm2022/lib/interfaces/global-state.mjs +0 -2
- package/esm2022/lib/modules/common/common-shared.module.mjs +0 -31
- package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +0 -155
- package/esm2022/lib/modules/common/filters/filters.component.mjs +0 -179
- package/esm2022/lib/modules/common/pagination/pagination.component.mjs +0 -49
- package/esm2022/lib/modules/errors/error403/error403.component.mjs +0 -33
- package/esm2022/lib/modules/errors/error404/error404.component.mjs +0 -44
- package/esm2022/lib/modules/errors/error500/error500.component.mjs +0 -45
- package/esm2022/lib/modules/errors/errors-routing.module.mjs +0 -48
- package/esm2022/lib/modules/errors/errors.component.mjs +0 -39
- package/esm2022/lib/modules/errors/errors.module.mjs +0 -37
- package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +0 -44
- package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +0 -19
- package/esm2022/lib/modules/intro/intro-routing.module.mjs +0 -24
- package/esm2022/lib/modules/intro/intro.module.mjs +0 -32
- package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +0 -110
- package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +0 -31
- package/esm2022/lib/modules/layout/content/content.component.mjs +0 -107
- package/esm2022/lib/modules/layout/footer/footer.component.mjs +0 -17
- package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +0 -41
- package/esm2022/lib/modules/layout/header/header.component.mjs +0 -100
- package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +0 -256
- package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +0 -79
- package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +0 -56
- package/esm2022/lib/modules/layout/keenicon/icons.json +0 -1
- package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +0 -37
- package/esm2022/lib/modules/layout/layout/layout.component.mjs +0 -314
- package/esm2022/lib/modules/layout/layout.module.mjs +0 -195
- package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +0 -74
- package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +0 -74
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +0 -159
- package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +0 -45
- package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +0 -119
- package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +0 -134
- package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +0 -16
- package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +0 -331
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +0 -88
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +0 -201
- package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +0 -150
- package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +0 -15
- package/esm2022/lib/modules/layout/toolbar/metrics-header/metrics-header.component.mjs +0 -1321
- package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.mjs +0 -216
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +0 -176
- package/esm2022/lib/modules/layout/toolbar/single-storedate/single-storedate.component.mjs +0 -166
- package/esm2022/lib/modules/layout/toolbar/storesingle/storesingle.component.mjs +0 -105
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +0 -354
- package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +0 -1061
- package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +0 -795
- package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +0 -880
- package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +0 -729
- package/esm2022/lib/modules/notification/conformation/conformation.component.mjs +0 -22
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +0 -317
- package/esm2022/lib/modules/notification/notification-routing.module.mjs +0 -28
- package/esm2022/lib/modules/notification/notification.module.mjs +0 -32
- package/esm2022/lib/pipes/customDate.pipe.mjs +0 -22
- package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/eyetest-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/routing.mjs +0 -58
- package/esm2022/lib/services/auth.service.mjs +0 -141
- package/esm2022/lib/services/notification.service.mjs +0 -74
- package/esm2022/lib/services/toast.service.mjs +0 -83
- package/esm2022/public-api.mjs +0 -56
- package/esm2022/tango-app-ui-shared.mjs +0 -5
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs +0 -188
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs +0 -400
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared.mjs +0 -11322
- package/fesm2022/tango-app-ui-shared.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/guards/auth.guard.d.ts +0 -10
- package/lib/guards/lead.guard.d.ts +0 -2
- package/lib/guards/stores.guard.d.ts +0 -2
- package/lib/guards/tickets.guard.d.ts +0 -2
- package/lib/i18n/translation.module.d.ts +0 -8
- package/lib/i18n/translation.service.d.ts +0 -19
- package/lib/i18n/vocabs/ch.d.ts +0 -104
- package/lib/i18n/vocabs/de.d.ts +0 -104
- package/lib/i18n/vocabs/en.d.ts +0 -104
- package/lib/i18n/vocabs/es.d.ts +0 -104
- package/lib/i18n/vocabs/fr.d.ts +0 -104
- package/lib/i18n/vocabs/jp.d.ts +0 -104
- package/lib/interceptors/http-auth-interceptor.d.ts +0 -19
- package/lib/interfaces/global-state.d.ts +0 -5
- package/lib/modules/common/common-shared.module.d.ts +0 -13
- package/lib/modules/common/custom-select/custom-select.component.d.ts +0 -33
- package/lib/modules/common/filters/filters.component.d.ts +0 -38
- package/lib/modules/common/pagination/pagination.component.d.ts +0 -18
- package/lib/modules/errors/error403/error403.component.d.ts +0 -14
- package/lib/modules/errors/error404/error404.component.d.ts +0 -15
- package/lib/modules/errors/error500/error500.component.d.ts +0 -15
- package/lib/modules/errors/errors-routing.module.d.ts +0 -7
- package/lib/modules/errors/errors.component.d.ts +0 -13
- package/lib/modules/errors/errors.module.d.ts +0 -13
- package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +0 -17
- package/lib/modules/intro/contact-support/contact-support.component.d.ts +0 -9
- package/lib/modules/intro/intro-routing.module.d.ts +0 -7
- package/lib/modules/intro/intro.module.d.ts +0 -11
- package/lib/modules/intro/lead-intro/lead-intro.component.d.ts +0 -31
- package/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.d.ts +0 -13
- package/lib/modules/layout/content/content.component.d.ts +0 -25
- package/lib/modules/layout/footer/footer.component.d.ts +0 -8
- package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +0 -18
- package/lib/modules/layout/header/header.component.d.ts +0 -30
- package/lib/modules/layout/header/navbar/navbar.component.d.ts +0 -45
- package/lib/modules/layout/header/notifications-inner/notifications-inner.component.d.ts +0 -25
- package/lib/modules/layout/header/page-title/page-title.component.d.ts +0 -23
- package/lib/modules/layout/keenicon/keenicon.component.d.ts +0 -13
- package/lib/modules/layout/layout/layout.component.d.ts +0 -82
- package/lib/modules/layout/layout.module.d.ts +0 -49
- package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +0 -19
- package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +0 -45
- package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +0 -26
- package/lib/modules/layout/sidebar/sidebar.component.d.ts +0 -36
- package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/classic/classic.component.d.ts +0 -48
- package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +0 -16
- package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/extended/extended.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/metrics-header/metrics-header.component.d.ts +0 -103
- package/lib/modules/layout/toolbar/reports/reports.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/saas/saas.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.d.ts +0 -32
- package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +0 -33
- package/lib/modules/layout/toolbar/single-storedate/single-storedate.component.d.ts +0 -34
- package/lib/modules/layout/toolbar/storesingle/storesingle.component.d.ts +0 -24
- package/lib/modules/layout/toolbar/toolbar.component.d.ts +0 -56
- package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +0 -93
- package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +0 -80
- package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +0 -83
- package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +0 -74
- package/lib/modules/notification/conformation/conformation.component.d.ts +0 -10
- package/lib/modules/notification/notification/notification.component.d.ts +0 -63
- package/lib/modules/notification/notification-routing.module.d.ts +0 -7
- package/lib/modules/notification/notification.module.d.ts +0 -11
- package/lib/pipes/customDate.pipe.d.ts +0 -7
- package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/eyetest-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +0 -7
- package/lib/routes/routing.d.ts +0 -3
- package/lib/services/auth.service.d.ts +0 -49
- package/lib/services/notification.service.d.ts +0 -30
- package/lib/services/toast.service.d.ts +0 -10
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
import 'dayjs/locale/en';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../../services/auth.service";
|
|
6
|
-
import * as i2 from "tango-app-ui-global";
|
|
7
|
-
import * as i3 from "@angular/router";
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
import * as i5 from "../../../common/custom-select/custom-select.component";
|
|
10
|
-
import * as i6 from "@angular/forms";
|
|
11
|
-
import * as i7 from "ngx-daterangepicker-material";
|
|
12
|
-
export class SingleStoreComponent {
|
|
13
|
-
auth;
|
|
14
|
-
gs;
|
|
15
|
-
cd;
|
|
16
|
-
router;
|
|
17
|
-
urlString;
|
|
18
|
-
dayjs = dayjs;
|
|
19
|
-
isCustomDate = (m) => {
|
|
20
|
-
const isValidDate = m > this.dayjs();
|
|
21
|
-
return isValidDate ? 'invalid-date' : false;
|
|
22
|
-
};
|
|
23
|
-
selectedDateRange = {};
|
|
24
|
-
storeList = [];
|
|
25
|
-
selectedClient;
|
|
26
|
-
selectedFilters = {
|
|
27
|
-
client: null,
|
|
28
|
-
clientName: null,
|
|
29
|
-
clients: [],
|
|
30
|
-
store: null,
|
|
31
|
-
stores: [],
|
|
32
|
-
date: null,
|
|
33
|
-
};
|
|
34
|
-
URL;
|
|
35
|
-
baseurl;
|
|
36
|
-
constructor(auth, gs, cd, router) {
|
|
37
|
-
this.auth = auth;
|
|
38
|
-
this.gs = gs;
|
|
39
|
-
this.cd = cd;
|
|
40
|
-
this.router = router;
|
|
41
|
-
const currentUrl = this.router.url;
|
|
42
|
-
const updatedUrl = currentUrl.replace(/\/manage\/stores\/\d+-\d+\//, `/manage/stores/`);
|
|
43
|
-
const url = updatedUrl;
|
|
44
|
-
this.baseurl = url.split("?")[1];
|
|
45
|
-
this.URL = url.split("?")[0].split('/');
|
|
46
|
-
}
|
|
47
|
-
ngOnInit() {
|
|
48
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
49
|
-
if (headerFilters?.client) {
|
|
50
|
-
this.auth.getStores(headerFilters?.client).subscribe({
|
|
51
|
-
next: (e) => {
|
|
52
|
-
if (e) {
|
|
53
|
-
this.storeList = e.data.result;
|
|
54
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
55
|
-
this.selectedDateRange = {
|
|
56
|
-
startDate: this.dayjs(headerFilters?.date?.startDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
|
|
57
|
-
endDate: this.dayjs(headerFilters?.date?.endDate, "DD-MM-YYYY").format("YYYY-MM-DD")
|
|
58
|
-
};
|
|
59
|
-
if (headerFilters?.store) {
|
|
60
|
-
this.storeList.find((obj) => {
|
|
61
|
-
if (obj.storeId === headerFilters.store) {
|
|
62
|
-
this.selectedClient = obj;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
this.selectedFilters.store = headerFilters.store;
|
|
66
|
-
this.selectedFilters.client = headerFilters.client;
|
|
67
|
-
this.selectedFilters.clientName = headerFilters.clientName;
|
|
68
|
-
this.selectedFilters.clients = headerFilters.clients;
|
|
69
|
-
this.selectedFilters.date = headerFilters.date;
|
|
70
|
-
this.selectedFilters.storeName = headerFilters.storeName;
|
|
71
|
-
this.selectedDateRange = {
|
|
72
|
-
startDate: this.dayjs(headerFilters.date.startDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
73
|
-
endDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
74
|
-
};
|
|
75
|
-
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
76
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
77
|
-
this.cd.detectChanges();
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.selectedClient = this.storeList[0];
|
|
81
|
-
this.selectedFilters.store = this.selectedClient.storeId;
|
|
82
|
-
this.selectedFilters.client = headerFilters.client;
|
|
83
|
-
this.selectedFilters.clientName = headerFilters.clientName;
|
|
84
|
-
this.selectedFilters.clients = headerFilters.clients;
|
|
85
|
-
this.selectedFilters.storeName = headerFilters.storeName;
|
|
86
|
-
this.selectedDateRange = {
|
|
87
|
-
startDate: this.dayjs().format("DD-MM-YYYY"),
|
|
88
|
-
endDate: this.dayjs().format("DD-MM-YYYY"),
|
|
89
|
-
};
|
|
90
|
-
var datetime = {
|
|
91
|
-
startDate: this.dayjs().format("YYYY-MM-DD"),
|
|
92
|
-
endDate: this.dayjs().format("YYYY-MM-DD"),
|
|
93
|
-
};
|
|
94
|
-
this.selectedFilters.date = datetime;
|
|
95
|
-
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
96
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
97
|
-
this.cd.detectChanges();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
onClientSelect(event) {
|
|
105
|
-
this.selectedClient = event;
|
|
106
|
-
}
|
|
107
|
-
ranges = {
|
|
108
|
-
Today: [
|
|
109
|
-
this.dayjs(),
|
|
110
|
-
this.dayjs(),
|
|
111
|
-
],
|
|
112
|
-
'Yesterday': [this.dayjs().subtract(1, 'days'), this.dayjs().subtract(1, 'days')],
|
|
113
|
-
'This Week': [this.dayjs().subtract(7, "days"), this.dayjs().subtract(1, "days")],
|
|
114
|
-
'Last Week': [this.dayjs().subtract(14, 'days').startOf('days'), this.dayjs().subtract(8, 'days').endOf('days')],
|
|
115
|
-
"This Month": [
|
|
116
|
-
this.dayjs().subtract(30, "days"),
|
|
117
|
-
this.dayjs().subtract(1, "days") // End date is Yesterday
|
|
118
|
-
],
|
|
119
|
-
'Last Month': [
|
|
120
|
-
this.dayjs().subtract(1, 'month').startOf('month'),
|
|
121
|
-
this.dayjs().subtract(1, 'month').endOf('month')
|
|
122
|
-
]
|
|
123
|
-
};
|
|
124
|
-
onStartDateChange(event) {
|
|
125
|
-
if (this.dayjs(event.startDate).isValid()) {
|
|
126
|
-
this.isCustomDate = (m) => {
|
|
127
|
-
const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, 'days'));
|
|
128
|
-
return isValidDate ? 'invalid-date' : false;
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
datechange(event) {
|
|
133
|
-
if (event && event.startDate && event.endDate) {
|
|
134
|
-
if (this.dayjs(event.startDate).isValid() &&
|
|
135
|
-
this.dayjs(event.endDate).isValid()) {
|
|
136
|
-
this.selectedDateRange.startDate = event.startDate;
|
|
137
|
-
this.selectedDateRange.endDate = event.endDate;
|
|
138
|
-
var datetime = {
|
|
139
|
-
startDate: this.dayjs(event.startDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
|
|
140
|
-
endDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
|
|
141
|
-
};
|
|
142
|
-
this.selectedFilters.date = datetime;
|
|
143
|
-
localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
148
|
-
this.selectedDateRange.startDate = this.dayjs(headerFilters.date.startDate, "YYYY-MM-DD").format("DD-MM-YYYY");
|
|
149
|
-
this.selectedDateRange.endDate = this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY");
|
|
150
|
-
this.gs.dataRangeValue.next(headerFilters);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
Apply() {
|
|
154
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
155
|
-
this.selectedFilters = headerFilters;
|
|
156
|
-
this.selectedFilters.store = this.selectedClient.storeId;
|
|
157
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
158
|
-
localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
|
|
159
|
-
}
|
|
160
|
-
queryString = '';
|
|
161
|
-
ngOnChanges(changes) {
|
|
162
|
-
this.urlString = changes?.urlString?.currentValue.split('?')[0].split('/');
|
|
163
|
-
if (changes?.urlString?.currentValue.split('?').length > 1) {
|
|
164
|
-
this.queryString = changes?.urlString?.currentValue.split('?')[1];
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoreComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SingleStoreComponent, selector: "lib-single-store", inputs: { urlString: "urlString" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"URL[2] !=='controlcenter'\" class=\"wrapper mx-2\" >\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [searchField]=\"'storeName'\" [disabled]=\"false\" [idField]=\"'storeId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select> \r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter' && !urlString.includes('plano') && URL[3] !== 'beeahGroup' && URL[3] !== 'beeahLive'\" class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n<div *ngIf=\"URL[2] ==='controlcenter' && urlString.includes('playback') || URL[3] === 'beeahGroup' || URL[3] === 'beeahLive'\" class=\"d-flex align-items-center w-150px position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\" [singleDatePicker]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1}\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter'\">\r\n <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div>\r\n</div>\r\n\r\n\r\n", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}.w-150px{width:160px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CustomSelectComponent, selector: "lib-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
|
|
169
|
-
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoreComponent, decorators: [{
|
|
171
|
-
type: Component,
|
|
172
|
-
args: [{ selector: 'lib-single-store', template: "<div *ngIf=\"URL[2] !=='controlcenter'\" class=\"wrapper mx-2\" >\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [searchField]=\"'storeName'\" [disabled]=\"false\" [idField]=\"'storeId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select> \r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter' && !urlString.includes('plano') && URL[3] !== 'beeahGroup' && URL[3] !== 'beeahLive'\" class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n<div *ngIf=\"URL[2] ==='controlcenter' && urlString.includes('playback') || URL[3] === 'beeahGroup' || URL[3] === 'beeahLive'\" class=\"d-flex align-items-center w-150px position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\" [singleDatePicker]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1}\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter'\">\r\n <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div>\r\n</div>\r\n\r\n\r\n", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}.w-150px{width:160px!important}\n"] }]
|
|
173
|
-
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }], propDecorators: { urlString: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3NpbmdsZS1zdG9yZS9zaW5nbGUtc3RvcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFVekIsTUFBTSxPQUFPLG9CQUFvQjtJQXFCWDtJQUEwQjtJQUErQjtJQUE2QjtJQXBCakcsU0FBUyxDQUFLO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDYixZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFdBQVcsR0FBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDLENBQUE7SUFDQyxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsU0FBUyxHQUFPLEVBQUUsQ0FBQTtJQUNsQixjQUFjLENBQUk7SUFDbEIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFDLElBQUk7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLEVB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LE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO3dHQTVLWSxvQkFBb0I7NEZBQXBCLG9CQUFvQixpSENaakMsdWlIQXVDQTs7NEZEM0JhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7c0tBS25CLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpbmdsZS1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbmdsZVN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXJsU3RyaW5nOmFueTtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OmFueSA9IFtdXHJcbiAgc2VsZWN0ZWRDbGllbnQ6YW55XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnROYW1lOm51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcblxyXG4gIH07XHJcbiAgVVJMOiBhbnk7XHJcbiAgYmFzZXVybDphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgIC9cXC9tYW5hZ2VcXC9zdG9yZXNcXC9cXGQrLVxcZCtcXC8vLFxyXG4gICAgICBgL21hbmFnZS9zdG9yZXMvYFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IHVwZGF0ZWRVcmw7XHJcbiAgICB0aGlzLmJhc2V1cmwgPSB1cmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgdGhpcy5VUkw9IHVybC5zcGxpdChcIj9cIilbMF0uc3BsaXQoJy8nKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGlmKGhlYWRlckZpbHRlcnM/LmNsaWVudCl7XHJcbiAgICB0aGlzLmF1dGguZ2V0U3RvcmVzKGhlYWRlckZpbHRlcnM/LmNsaWVudCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IGUuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzPy5kYXRlPy5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycz8uZGF0ZT8uZW5kRGF0ZSwgXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIilcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoaGVhZGVyRmlsdGVycz8uc3RvcmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QuZmluZCgob2JqOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob2JqLnN0b3JlSWQgPT09IGhlYWRlckZpbHRlcnMuc3RvcmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gIGhlYWRlckZpbHRlcnMuY2xpZW50TmFtZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gIGhlYWRlckZpbHRlcnMuY2xpZW50czsgIFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVOYW1lID0gIGhlYWRlckZpbHRlcnMuc3RvcmVOYW1lOyBcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOnRoaXMuZGF5anMoIGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyggaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gdGhpcy5zdG9yZUxpc3RbMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIHRoaXMuc2VsZWN0ZWRDbGllbnQuc3RvcmVJZDsgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50TmFtZSA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudE5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgaGVhZGVyRmlsdGVycy5jbGllbnRzOyAgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlTmFtZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlTmFtZTsgIFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIH1cclxuICBvbkNsaWVudFNlbGVjdChldmVudDphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IGV2ZW50XHJcbiAgfVxyXG5cclxuICByYW5nZXM6IGFueSA9IHtcclxuICAgIFRvZGF5OiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKSxcclxuICAgICAgdGhpcy5kYXlqcygpLFxyXG4gICAgXSxcclxuICAgICdZZXN0ZXJkYXknOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcclxuICAgICdUaGlzIFdlZWsnOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDcsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKV0sXHJcbiAgICAnTGFzdCBXZWVrJzogW3RoaXMuZGF5anMoKS5zdWJ0cmFjdCgxNCwgJ2RheXMnKS5zdGFydE9mKCdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCg4LCAnZGF5cycpLmVuZE9mKCdkYXlzJyldLFxyXG4gICBcIlRoaXMgTW9udGhcIjogW1xyXG4gICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDMwLCBcImRheXNcIiksIC8vIFN0YXJ0IGRhdGUgaXMgMzAgZGF5cyBiZWZvcmUgdG9kYXlcclxuICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIikgLy8gRW5kIGRhdGUgaXMgWWVzdGVyZGF5XHJcbiAgXSxcclxuICAgICdMYXN0IE1vbnRoJzogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6YW55KXtcclxuICAgIGlmKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpe1xyXG4gICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4geyAgICAgICAgXHJcbiAgICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCAnZGF5cycpKSA7XHJcbiAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbn1cclxuXHJcbmRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBldmVudC5zdGFydERhdGVcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgICB2YXIgZGF0ZXRpbWUgPSB7XHJcbiAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpKTtcclxuICAgIH1cclxuICB9ZWxzZSB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuc3RhcnREYXRlLFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KGhlYWRlckZpbHRlcnMpO1xyXG4gIH0gXHJcbn1cclxuXHJcbkFwcGx5KCkge1xyXG4gIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSBoZWFkZXJGaWx0ZXJzO1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gdGhpcy5zZWxlY3RlZENsaWVudC5zdG9yZUlkO1xyXG4gIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpKTtcclxufVxyXG5cclxucXVlcnlTdHJpbmc6YW55ID0gJydcclxuXHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICB0aGlzLnVybFN0cmluZyA9IGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JylbMF0uc3BsaXQoJy8nKTtcclxuICBpZihjaGFuZ2VzPy51cmxTdHJpbmc/LmN1cnJlbnRWYWx1ZS5zcGxpdCgnPycpLmxlbmd0aCA+IDEpIHtcclxuICAgIHRoaXMucXVlcnlTdHJpbmcgPSBjaGFuZ2VzPy51cmxTdHJpbmc/LmN1cnJlbnRWYWx1ZS5zcGxpdCgnPycpWzFdO1xyXG4gIH1cclxufVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJVUkxbMl0gIT09J2NvbnRyb2xjZW50ZXInXCIgY2xhc3M9XCJ3cmFwcGVyIG14LTJcIiA+XHJcbiAgICA8bGliLXNlbGVjdCBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1cImZhbHNlXCIgW3NlYXJjaEZpZWxkXT1cIidzdG9yZU5hbWUnXCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgW2lkRmllbGRdPVwiJ3N0b3JlSWQnXCJcclxuICAgICAgICAoc2VsZWN0ZWQpPVwib25DbGllbnRTZWxlY3QoJGV2ZW50KVwiIFtzZWxlY3RlZFZhbHVlc109XCJbc2VsZWN0ZWRDbGllbnRdXCI+PC9saWItc2VsZWN0PiAgICBcclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiVVJMWzJdICE9PSdjb250cm9sY2VudGVyJyAmJiAhdXJsU3RyaW5nLmluY2x1ZGVzKCdwbGFubycpICYmIFVSTFszXSAhPT0gJ2JlZWFoR3JvdXAnICYmIFVSTFszXSAhPT0gJ2JlZWFoTGl2ZSdcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2F1dG9BcHBseV09XCJ0cnVlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIlVSTFsyXSA9PT0nY29udHJvbGNlbnRlcicgJiYgdXJsU3RyaW5nLmluY2x1ZGVzKCdwbGF5YmFjaycpIHx8IFVSTFszXSA9PT0gJ2JlZWFoR3JvdXAnIHx8IFVSTFszXSA9PT0gJ2JlZWFoTGl2ZSdcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xNTBweCBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwiZmFsc2VcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDF9XCJcclxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJVUkxbMl0gIT09J2NvbnRyb2xjZW50ZXInXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwiQXBwbHkoKVwiPkFwcGx5PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
import 'dayjs/locale/en';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../../services/auth.service";
|
|
6
|
-
import * as i2 from "tango-app-ui-global";
|
|
7
|
-
import * as i3 from "@angular/router";
|
|
8
|
-
import * as i4 from "@angular/forms";
|
|
9
|
-
import * as i5 from "ngx-daterangepicker-material";
|
|
10
|
-
export class SingleStoredateComponent {
|
|
11
|
-
auth;
|
|
12
|
-
gs;
|
|
13
|
-
cd;
|
|
14
|
-
router;
|
|
15
|
-
activatedRoute;
|
|
16
|
-
dayjs = dayjs;
|
|
17
|
-
isCustomDate = (m) => {
|
|
18
|
-
const isValidDate = m > this.dayjs();
|
|
19
|
-
return isValidDate ? 'invalid-date' : false;
|
|
20
|
-
};
|
|
21
|
-
selectedDateRange = {};
|
|
22
|
-
storeList = [];
|
|
23
|
-
selectedClient;
|
|
24
|
-
selectedFilters = {
|
|
25
|
-
client: null,
|
|
26
|
-
clientName: null,
|
|
27
|
-
clients: [],
|
|
28
|
-
store: null,
|
|
29
|
-
stores: [],
|
|
30
|
-
date: null,
|
|
31
|
-
};
|
|
32
|
-
URL;
|
|
33
|
-
baseurl;
|
|
34
|
-
users;
|
|
35
|
-
headerFilters;
|
|
36
|
-
dataUser;
|
|
37
|
-
constructor(auth, gs, cd, router, activatedRoute) {
|
|
38
|
-
this.auth = auth;
|
|
39
|
-
this.gs = gs;
|
|
40
|
-
this.cd = cd;
|
|
41
|
-
this.router = router;
|
|
42
|
-
this.activatedRoute = activatedRoute;
|
|
43
|
-
}
|
|
44
|
-
ngOnInit() {
|
|
45
|
-
this.activatedRoute?.queryParams.subscribe(params => {
|
|
46
|
-
this.dataUser = params;
|
|
47
|
-
// Re-check date after params load
|
|
48
|
-
this.initializeFilters();
|
|
49
|
-
});
|
|
50
|
-
if ("user-info" in localStorage) {
|
|
51
|
-
const userData = JSON.parse(localStorage.getItem("user-info") || "{}");
|
|
52
|
-
this.users = userData;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
initializeFilters() {
|
|
56
|
-
const clientFromRoute = this.dataUser?.client;
|
|
57
|
-
const clientFromHeader = localStorage.getItem("header-filters")
|
|
58
|
-
? JSON.parse(localStorage.getItem("header-filters") || "{}").client
|
|
59
|
-
: null;
|
|
60
|
-
const clientFromUser = this.users?.clientId;
|
|
61
|
-
const headerFilters = localStorage.getItem("header-filters")
|
|
62
|
-
? JSON.parse(localStorage.getItem("header-filters") || "{}")
|
|
63
|
-
: {};
|
|
64
|
-
this.headerFilters = headerFilters;
|
|
65
|
-
// Determine final client ID
|
|
66
|
-
const finalClient = clientFromRoute ?? clientFromHeader ?? clientFromUser;
|
|
67
|
-
this.selectedFilters.client = finalClient;
|
|
68
|
-
this.selectedFilters.clients = finalClient ? [finalClient] : [];
|
|
69
|
-
this.selectedFilters.clientName = headerFilters.clientName || "";
|
|
70
|
-
this.selectedFilters.store = this.dataUser?.storeId ?? headerFilters.store ?? "";
|
|
71
|
-
this.selectedFilters.storeName = headerFilters.storeName || "";
|
|
72
|
-
this.selectedFilters.group = headerFilters.group;
|
|
73
|
-
this.selectedFilters.location = headerFilters.location;
|
|
74
|
-
this.selectedFilters.country = headerFilters.country;
|
|
75
|
-
this.selectedFilters.stores = headerFilters.stores ?? "";
|
|
76
|
-
this.selectedFilters.zoneName = headerFilters.zoneName ?? "";
|
|
77
|
-
// ✅ Handle query param date if present
|
|
78
|
-
if (this.dataUser?.date) {
|
|
79
|
-
const date = this.dataUser.date;
|
|
80
|
-
this.selectedFilters.date = {
|
|
81
|
-
startDate: date,
|
|
82
|
-
endDate: date,
|
|
83
|
-
};
|
|
84
|
-
this.selectedDateRange = {
|
|
85
|
-
startDate: this.dayjs(date, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
86
|
-
endDate: this.dayjs(date, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
else if (headerFilters?.date?.startDate && headerFilters?.date?.endDate) {
|
|
90
|
-
this.selectedFilters.date = headerFilters.date;
|
|
91
|
-
this.selectedDateRange = {
|
|
92
|
-
startDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
93
|
-
endDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
// Default to yesterday
|
|
98
|
-
const yesterday = this.dayjs().subtract(1, "days");
|
|
99
|
-
const formattedDate = {
|
|
100
|
-
startDate: yesterday.format("YYYY-MM-DD"),
|
|
101
|
-
endDate: yesterday.format("YYYY-MM-DD"),
|
|
102
|
-
};
|
|
103
|
-
this.selectedFilters.date = formattedDate;
|
|
104
|
-
this.selectedDateRange = {
|
|
105
|
-
startDate: yesterday.format("DD-MM-YYYY"),
|
|
106
|
-
endDate: yesterday.format("DD-MM-YYYY"),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
// Save only if valid
|
|
110
|
-
if (finalClient && this.selectedFilters.date?.startDate && this.selectedFilters.store) {
|
|
111
|
-
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
112
|
-
}
|
|
113
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
114
|
-
}
|
|
115
|
-
onClientSelect(event) {
|
|
116
|
-
this.selectedClient = event;
|
|
117
|
-
}
|
|
118
|
-
onStartDateChange(event) {
|
|
119
|
-
if (this.dayjs(event.startDate).isValid()) {
|
|
120
|
-
this.isCustomDate = (m) => {
|
|
121
|
-
const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, 'days'));
|
|
122
|
-
return isValidDate ? 'invalid-date' : false;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
datechange(event) {
|
|
127
|
-
if (event && event.startDate && event.endDate) {
|
|
128
|
-
if (this.dayjs(event.startDate).isValid() &&
|
|
129
|
-
this.dayjs(event.endDate).isValid()) {
|
|
130
|
-
this.selectedDateRange.startDate = event.endDate;
|
|
131
|
-
this.selectedDateRange.endDate = event.endDate;
|
|
132
|
-
var datetime = {
|
|
133
|
-
startDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
|
|
134
|
-
endDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
|
|
135
|
-
};
|
|
136
|
-
this.selectedFilters.date = datetime;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
141
|
-
this.selectedFilters.date = headerFilters.date;
|
|
142
|
-
}
|
|
143
|
-
const clientId = this.users?.clientId ?? this.dataUser?.client ?? this.selectedFilters.client;
|
|
144
|
-
this.selectedFilters.client = clientId;
|
|
145
|
-
this.selectedFilters.clients = clientId ? [clientId] : [this.selectedFilters.client];
|
|
146
|
-
this.selectedFilters.date = this.selectedFilters.date;
|
|
147
|
-
this.selectedFilters.storeName = this.selectedFilters.storeName || '';
|
|
148
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
149
|
-
localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
|
|
150
|
-
this.cd.detectChanges();
|
|
151
|
-
}
|
|
152
|
-
Apply() {
|
|
153
|
-
const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
154
|
-
this.selectedFilters = headerFilters;
|
|
155
|
-
this.selectedFilters.store = this.selectedClient.storeId;
|
|
156
|
-
this.gs.dataRangeValue.next(this.selectedFilters);
|
|
157
|
-
localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
|
|
158
|
-
}
|
|
159
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoredateComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SingleStoredateComponent, selector: "lib-single-storedate", ngImport: i0, template: "\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"width:165px !important\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'left'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" [autoApply]=\"true\"/>\r\n</div>\r\n\r\n<!-- <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div> -->", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}\n"], dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
|
|
161
|
-
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoredateComponent, decorators: [{
|
|
163
|
-
type: Component,
|
|
164
|
-
args: [{ selector: 'lib-single-storedate', template: "\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"width:165px !important\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'left'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" [autoApply]=\"true\"/>\r\n</div>\r\n\r\n<!-- <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div> -->", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}\n"] }]
|
|
165
|
-
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9zaW5nbGUtc3RvcmVkYXRlL3NpbmdsZS1zdG9yZWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlZGF0ZS9zaW5nbGUtc3RvcmVkYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFRLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDM0IsT0FBTyxpQkFBaUIsQ0FBQzs7Ozs7OztBQVV6QixNQUFNLE9BQU8sd0JBQXdCO0lBc0JmO0lBQTBCO0lBQStCO0lBQTZCO0lBQXNCO0lBckJoSSxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7UUFDaEMsTUFBTSxXQUFXLEdBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQyxDQUFBO0lBQ0MsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLFNBQVMsR0FBTyxFQUFFLENBQUE7SUFDbEIsY0FBYyxDQUFJO0lBQ2xCLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLFVBQVUsRUFBQyxJQUFJO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxFQUFF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QyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBcktZLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLDREQ1pyQyx3aURBZ0J3RTs7NEZESjNELHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaW5nbGUtc3RvcmVkYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2luZ2xlLXN0b3JlZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZWRhdGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW5nbGVTdG9yZWRhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRheWpzID0gZGF5anNcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gIG0gPiB0aGlzLmRheWpzKCk7ICAgIFxyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxufVxyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBzdG9yZUxpc3Q6YW55ID0gW11cclxuICBzZWxlY3RlZENsaWVudDphbnlcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudE5hbWU6bnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIFVSTDogYW55O1xyXG4gIGJhc2V1cmw6YW55O1xyXG4gIHVzZXJzOmFueTtcclxuICBoZWFkZXJGaWx0ZXJzOmFueTtcclxuICBkYXRhVXNlcjphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTpBY3RpdmF0ZWRSb3V0ZSl7XHJcbiAgfVxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICB0aGlzLmFjdGl2YXRlZFJvdXRlPy5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgIHRoaXMuZGF0YVVzZXIgPSBwYXJhbXM7XHJcblxyXG4gICAgLy8gUmUtY2hlY2sgZGF0ZSBhZnRlciBwYXJhbXMgbG9hZFxyXG4gICAgdGhpcy5pbml0aWFsaXplRmlsdGVycygpO1xyXG4gIH0pO1xyXG5cclxuICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIik7XHJcbiAgICB0aGlzLnVzZXJzID0gdXNlckRhdGE7XHJcbiAgfVxyXG59XHJcblxyXG5pbml0aWFsaXplRmlsdGVycygpOiB2b2lkIHtcclxuICBjb25zdCBjbGllbnRGcm9tUm91dGUgPSB0aGlzLmRhdGFVc2VyPy5jbGllbnQ7XHJcbiAgY29uc3QgY2xpZW50RnJvbUhlYWRlciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIilcclxuICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIikuY2xpZW50XHJcbiAgICA6IG51bGw7XHJcbiAgY29uc3QgY2xpZW50RnJvbVVzZXIgPSB0aGlzLnVzZXJzPy5jbGllbnRJZDtcclxuXHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKVxyXG4gICAgPyBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiKVxyXG4gICAgOiB7fTtcclxuXHJcbiAgdGhpcy5oZWFkZXJGaWx0ZXJzID0gaGVhZGVyRmlsdGVycztcclxuXHJcbiAgLy8gRGV0ZXJtaW5lIGZpbmFsIGNsaWVudCBJRFxyXG4gIGNvbnN0IGZpbmFsQ2xpZW50ID0gY2xpZW50RnJvbVJvdXRlID8/IGNsaWVudEZyb21IZWFkZXIgPz8gY2xpZW50RnJvbVVzZXI7XHJcblxyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IGZpbmFsQ2xpZW50O1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSBmaW5hbENsaWVudCA/IFtmaW5hbENsaWVudF0gOiBbXTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gaGVhZGVyRmlsdGVycy5jbGllbnROYW1lIHx8IFwiXCI7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLmRhdGFVc2VyPy5zdG9yZUlkID8/IGhlYWRlckZpbHRlcnMuc3RvcmUgPz8gXCJcIjtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgPSBoZWFkZXJGaWx0ZXJzLnN0b3JlTmFtZSB8fCBcIlwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZ3JvdXAgPSBoZWFkZXJGaWx0ZXJzLmdyb3VwO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5sb2NhdGlvbiA9IGhlYWRlckZpbHRlcnMubG9jYXRpb247XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNvdW50cnkgPSBoZWFkZXJGaWx0ZXJzLmNvdW50cnk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVzID0gaGVhZGVyRmlsdGVycy5zdG9yZXMgPz8gXCJcIjtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy56b25lTmFtZSA9IGhlYWRlckZpbHRlcnMuem9uZU5hbWUgPz8gXCJcIjtcclxuICAvLyDinIUgSGFuZGxlIHF1ZXJ5IHBhcmFtIGRhdGUgaWYgcHJlc2VudFxyXG4gIGlmICh0aGlzLmRhdGFVc2VyPy5kYXRlKSB7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRhVXNlci5kYXRlO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogZGF0ZSxcclxuICAgICAgZW5kRGF0ZTogZGF0ZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKGRhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmRheWpzKGRhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgfTtcclxuXHJcbiAgfSBlbHNlIGlmIChoZWFkZXJGaWx0ZXJzPy5kYXRlPy5zdGFydERhdGUgJiYgaGVhZGVyRmlsdGVycz8uZGF0ZT8uZW5kRGF0ZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgfTtcclxuXHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIERlZmF1bHQgdG8geWVzdGVyZGF5XHJcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpO1xyXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB5ZXN0ZXJkYXkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgZW5kRGF0ZTogeWVzdGVyZGF5LmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBmb3JtYXR0ZWREYXRlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB5ZXN0ZXJkYXkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogeWVzdGVyZGF5LmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gU2F2ZSBvbmx5IGlmIHZhbGlkXHJcbiAgaWYgKGZpbmFsQ2xpZW50ICYmIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGU/LnN0YXJ0RGF0ZSAmJiB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxufVxyXG5cclxuXHJcbiAgb25DbGllbnRTZWxlY3QoZXZlbnQ6YW55KXtcclxuICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBldmVudFxyXG4gIH1cclxuXHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OmFueSl7XHJcbiAgICBpZih0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHsgICAgICAgIFxyXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCg5MCwgJ2RheXMnKSkgO1xyXG4gICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG59XHJcbmRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBldmVudC5lbmREYXRlXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGV2ZW50LmVuZERhdGVcclxuICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhldmVudC5lbmREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGRhdGV0aW1lO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTsgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICB9XHJcblxyXG5jb25zdCBjbGllbnRJZCA9IHRoaXMudXNlcnM/LmNsaWVudElkID8/IHRoaXMuZGF0YVVzZXI/LmNsaWVudCA/PyB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQ7XHJcbnRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IGNsaWVudElkO1xyXG50aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY2xpZW50SWQgPyBbY2xpZW50SWRdIDogW3RoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudF07XHJcbnRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlO1xyXG50aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgfHwgJyc7XHJcblxyXG4gIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICk7XHJcbnRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gXHJcbn1cclxuQXBwbHkoKSB7XHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgKTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycyA9IGhlYWRlckZpbHRlcnM7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLnNlbGVjdGVkQ2xpZW50LnN0b3JlSWQ7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcbn1cclxuIiwiXHJcbjxkaXYgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwid2lkdGg6MTY1cHggIWltcG9ydGFudFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgW29wZW5zXT1cIidsZWZ0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAgW2F1dG9BcHBseV09XCJ0cnVlXCIvPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PiAtLT4iXX0=
|